6#include <unordered_map>
21 MRVIEWER_API
void draw(
float height,
float scaling );
68 MRVIEWER_API
virtual void drawSceneContextMenu_(
const std::vector<std::shared_ptr<Object>>& ,
const std::string& )
81 void drawObjectsList_();
82 bool drawObject_(
Object&
object,
const std::string& uniqueStr );
83 void drawObjectVisibilityCheckbox_(
Object&
object,
const std::string& uniqueStr );
84 bool drawObjectCollapsingHeader_(
Object&
object,
const std::string& uniqueStr,
bool hasRealChildren );
87 void makeDragDropSource_(
const std::vector<std::shared_ptr<Object>>& payload );
89 bool needDragDropTarget_();
93 void makeDragDropTarget_(
Object& target,
bool before,
bool betweenLine,
const std::string& uniqueStr );
94 float getDrawDropTargetHeight_()
const {
return 4.f * menuScaling_; }
95 void reorderSceneIfNeeded_();
98 MRVIEWER_API
virtual void updateSceneWindowScrollIfNeeded_();
100 std::vector<Object*> getPreSelection_(
Object* meshclicked,
101 bool isShift,
bool isCtrl,
102 const std::vector<std::shared_ptr<Object>>& selected,
103 const std::vector<std::shared_ptr<Object>>& all );
104 void updateSelection_(
Object* objPtr,
const std::vector<std::shared_ptr<Object>>& selected,
const std::vector<std::shared_ptr<Object>>& all );
106 float menuScaling_ = 1.f;
108 bool showInfoInObjectTree_ =
false;
109 bool showNewSelectedObjects_ =
true;
110 bool deselectNewHiddenObjects_ =
false;
112 bool dragTrigger_ =
false;
113 bool clickTrigger_ =
false;
114 bool allowSceneReorder_ =
true;
117 struct MoveAndScrollData
121 bool needScroll =
false;
123 MoveAndScrollData upFirstSelected_;
124 MoveAndScrollData downLastSelected_;
125 MoveAndScrollData nextVisible_;
129 std::vector<Object*> who;
130 Object* to{
nullptr };
131 bool before{
false };
132 } sceneReorderCommand_;
135 struct ScrollPositionPreservation
137 float relativeMousePos{ 0.0f };
138 float absLinePosRatio{ 0.0f };
141 bool nextFrameFixScroll_{
false };
143 bool dragObjectsMode_{
false };
145 std::unordered_map<const Object*, bool> sceneOpenCommands_;
named object in the data model
Definition MRObject.h:60
class for drawing a list of scene objects (and handling interaction with it)
Definition MRSceneObjectsListDrawer.h:15
MRVIEWER_API void selectAllObjects()
MRVIEWER_API void draw(float height, float scaling)
virtual MRVIEWER_API float drawCustomTreeObjectProperties_(Object &obj, bool onlyCalcHeight)
MRVIEWER_API void allowSceneReorder(bool allow)
set possibility change object order
virtual MRVIEWER_API void drawSceneContextMenu_(const std::vector< std::shared_ptr< Object > > &, const std::string &)
Definition MRSceneObjectsListDrawer.h:68
MRVIEWER_API void setObjectTreeState(const Object *obj, bool open)
set object collapse state (hiding children)
bool getShowInfoInObjectTree() const
returns flag show detailed information in the object tree
Definition MRSceneObjectsListDrawer.h:26
MRVIEWER_API void setLeavesVisibility(bool visible)
MRVIEWER_API void setNextFrameFixScroll()
helper method for fix scroll position after change available height
Definition MRSceneObjectsListDrawer.h:59
void setShowNewSelectedObjects(bool show)
set flag of the object visibility activation after selection
Definition MRSceneObjectsListDrawer.h:29
bool getDeselectNewHiddenObjects()
get flag of deselect object after hidden
Definition MRSceneObjectsListDrawer.h:36
MRVIEWER_API void changeSelection(bool isDown, bool isShift)
virtual MRVIEWER_API bool collapsingHeader_(const std::string &uniqueName, ImGuiTreeNodeFlags flags)
override this to customize CollapsingHeader draw
bool getShowNewSelectedObjects()
get flag of the object visibility activation after selection
Definition MRSceneObjectsListDrawer.h:31
void setShowInfoInObjectTree(bool value)
set flag show detailed information in the object tree
Definition MRSceneObjectsListDrawer.h:24
void setDeselectNewHiddenObjects(bool deselect)
set flag of deselect object after hidden
Definition MRSceneObjectsListDrawer.h:34
int ImGuiTreeNodeFlags
Definition MRSceneObjectsListDrawer.h:76
virtual MRVIEWER_API void drawCustomObjectPrefixInScene_(const Object &)
Definition MRSceneObjectsListDrawer.h:64
MRVIEWER_API void changeVisible(bool isDown)
virtual ~SceneObjectsListDrawer()=default
Definition MRCameraOrientationPlugin.h:7