7#include <unordered_map>
70 MRVIEWER_API
virtual void drawSceneContextMenu_(
const std::vector<std::shared_ptr<Object>>& ,
const std::string& )
112 void drawObjectsList_();
114 float getDrawDropTargetHeight_()
const;
115 void reorderSceneIfNeeded_();
118 MRVIEWER_API
virtual void updateSceneWindowScrollIfNeeded_();
120 std::vector<Object*> getPreSelection_(
Object* meshclicked,
121 bool isShift,
bool isCtrl,
122 const std::vector<std::shared_ptr<Object>>& selected,
123 const std::vector<std::shared_ptr<Object>>& all );
124 void updateSelection_(
Object* objPtr,
const std::vector<std::shared_ptr<Object>>& selected,
const std::vector<std::shared_ptr<Object>>& all );
126 bool clickTrigger_ =
false;
127 bool allowSceneReorder_ =
true;
130 struct MoveAndScrollData
136 MoveAndScrollData upFirstSelected_;
137 MoveAndScrollData downLastSelected_;
138 MoveAndScrollData nextVisible_;
143 struct ScrollPositionPreservation
149 int framesTillFixScroll_ = 0;
151 bool dragObjectsMode_{
false };
153 bool dragModeTrigger_{
false };
named object in the data model
Definition MRObject.h:62
class for drawing a list of scene objects (and handling interaction with it)
Definition MRSceneObjectsListDrawer.h:19
auto height(const Box< V > &box)
returns size along y axis
Definition MRBox.h:361
auto depth(const Box< V > &box)
returns size along z axis
Definition MRBox.h:368
int index
Definition MRSceneObjectsListDrawer.h:132
void setObjectTreeState(const Object *obj, bool open)
set object collapse state (hiding children)
void setLeavesVisibility(bool visible)
set visible flag all selectable objects
void changeSelection(bool isDown, bool isShift)
void setNextFrameFixScroll(int skipFrames=1)
helper method for fix scroll position after change available height
std::unordered_map< const Object *, bool > sceneOpenCommands_
Definition MRSceneObjectsListDrawer.h:156
virtual void drawCustomObjectPrefixInScene_(const Object &, bool)
Definition MRSceneObjectsListDrawer.h:66
virtual void draw(float height)
void makeDragDropTarget_(Object &target, bool before, bool betweenLine, const std::string &uniqueStr)
bool needScroll
scroll position of new selected object in list of all
Definition MRSceneObjectsListDrawer.h:134
bool needDragDropTarget_()
checking the need to draw a target
void processItemClick_(Object &object, const std::vector< std::shared_ptr< Object > > &selected)
function that do click logic on object line (select/deselect/rename/open context)
void drawObjectVisibilityCheckbox_(Object &object, const std::string &uniqueStr)
draw visibility checkbox and call ImGui::SameLine at the end
void allowSceneReorder(bool allow)
set possibility change object order
bool drawObjectCollapsingHeader_(Object &object, const std::string &uniqueStr, bool hasRealChildren)
function that draws collapsing header and process click on it
void setShowNewSelectedObjects(bool show)
set flag of the object visibility activation after selection
Definition MRSceneObjectsListDrawer.h:28
void makeDragDropSource_(const std::vector< std::shared_ptr< Object > > &payload)
payload object will be moved
bool getDeselectNewHiddenObjects()
get flag of deselect object after hidden
Definition MRSceneObjectsListDrawer.h:35
void selectAllObjects()
select all selectable objects
void expandObjectTreeAndScroll(const Object *obj)
expands all objs parents in tree and scroll scene tree window so selection becomes visible
void changeVisible(bool isDown)
virtual void drawSceneContextMenu_(const std::vector< std::shared_ptr< Object > > &, const std::string &)
Definition MRSceneObjectsListDrawer.h:70
bool getShowNewSelectedObjects()
get flag of the object visibility activation after selection
Definition MRSceneObjectsListDrawer.h:30
float relativeMousePos
Definition MRSceneObjectsListDrawer.h:145
void setDeselectNewHiddenObjects(bool deselect)
set flag of deselect object after hidden
Definition MRSceneObjectsListDrawer.h:33
virtual bool drawObject_(Object &object, const std::string &uniqueStr, int depth)
override this to customize whole object line
virtual bool drawSkippedObject_(Object &object, const std::string &uniqueStr, int depth)
draw dummy container for skipped object
bool showNewSelectedObjects_
Definition MRSceneObjectsListDrawer.h:109
constexpr int sDefaultGroupState
Definition MRSceneObjectsListDrawer.h:159
int ImGuiTreeNodeFlags
Definition MRSceneObjectsListDrawer.h:78
virtual std::string objectLineStrId_(const Object &object, const std::string &uniqueStr)
float absLinePosRatio
Definition MRSceneObjectsListDrawer.h:146
bool deselectNewHiddenObjects_
Definition MRSceneObjectsListDrawer.h:110
virtual bool collapsingHeader_(const std::string &uniqueName, ImGuiTreeNodeFlags flags)
override this to customize CollapsingHeader draw
float posY
index of new selected object in list of all
Definition MRSceneObjectsListDrawer.h:133
virtual float drawCustomTreeObjectProperties_(Object &obj, bool onlyCalcHeight)
virtual ~SceneObjectsListDrawer()=default
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRSceneReorder.h:13