MeshLib C++ Docs
Loading...
Searching...
No Matches
MRMoveObjectByMouse.h
Go to the documentation of this file.
1#pragma once
5#include "MRMesh/MRPlane3.h"
7#include "MRCommonPlugins/exports.h"
8#include "imgui.h"
9
10namespace MR
11{
14
15
16class Object;
17
18class MoveObjectByMouse : public StateListenerPlugin<DragStartListener, DragListener, DragEndListener, PostDrawListener>
19{
20public:
23
24 MRCOMMONPLUGINS_API static MoveObjectByMouse* instance();
25
26 virtual bool onDisable_() override;
27 virtual void drawDialog( ImGuiContext* ) override;
28
29 virtual bool blocking() const override { return false; };
30
31private:
33 enum class XfMode { Move, Rotate, Scale };
35 enum class XfTarget { Picked, Selected };
36
37 virtual bool onDragStart_( MouseButton btn, int modifiers ) override;
38 virtual bool onDrag_( int x, int y ) override;
39 virtual bool onDragEnd_( MouseButton btn, int modifiers ) override;
40 virtual void postDraw_() override;
41
43 class MoveObjectByMouseWithSelected : public MoveObjectByMouseImpl
44 {
45 protected:
46 virtual ObjAndPick pickObjects_( std::vector<std::shared_ptr<Object>>& objects, int modifiers ) const override;
47 virtual TransformMode modeFromPickModifiers_( int modifiers ) const override;
48 virtual void setStartPoint_( const ObjAndPick& pick, Vector3f& startPoint ) const override;
49 public:
53 } moveByMouse_;
54};
55
56}
Definition MRMoveObjectByMouse.h:19
Definition MRStatePlugin.h:139
MouseButton
Definition MRMouse.h:12
virtual ObjAndPick pickObjects_(std::vector< std::shared_ptr< Object > > &objects, int modifiers) const override
UI::RadioButtonOrModifierState modXfTarget
XfMode.
Definition MRMoveObjectByMouse.h:52
TransformMode
Transformation mode.
Definition MRMoveObjectByMouseImpl.h:63
virtual bool onDisable_() override
Selected
object itself is selected and all its ancestors are selectable
Definition MRObjectsAccess.h:21
UI::RadioButtonOrModifierState modXfMode
Options are provided externally rather than directly from modifiers.
Definition MRMoveObjectByMouse.h:51
static MRCOMMONPLUGINS_API MoveObjectByMouse * instance()
virtual void setStartPoint_(const ObjAndPick &pick, Vector3f &startPoint) const override
virtual TransformMode modeFromPickModifiers_(int modifiers) const override
virtual bool blocking() const override
true if this item is blocking (only one blocking item can be active at once)
Definition MRMoveObjectByMouse.h:29
virtual void drawDialog(ImGuiContext *) override
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRUIStyle.h:288