Choreonoid  1.5
PositionDragger.h
Go to the documentation of this file.
1 
5 #ifndef CNOID_BASE_POSITION_DRAGGER_H
6 #define CNOID_BASE_POSITION_DRAGGER_H
7 
8 #include "SceneDragger.h"
9 #include "exportdecl.h"
10 
11 namespace cnoid {
12 
13 class TranslationDragger;
14 class RotationDragger;
15 class PositionDraggerImpl;
16 
23 {
24 public:
26 
28  PositionDragger(const PositionDragger& org);
29  PositionDragger(const PositionDragger& org, SgCloneMap& cloneMap);
30 
31  virtual SgObject* clone(SgCloneMap& cloneMap) const;
32 
33  enum Axis { TX = 1 << 0, TY = 1 << 1, TZ = 1 << 2,
34  TRANSLATION_AXES = (TX | TY | TZ),
35  RX = 1 << 3, RY = 1 << 4, RZ = 1 << 5,
36  ROTATION_AXES = (RX | RY | RZ),
37  ALL_AXES = (TX | TY | TZ | RX | RY | RZ)
38  };
39 
40  void setDraggableAxes(int axisSet);
41  int draggableAxes() const;
42  SignalProxy<void(int axisSet)> sigDraggableAxesChanged();
43 
44  void setRadius(double r, double translationAxisRatio = 2.0f);
45  void adjustSize();
46  void adjustSize(const BoundingBox& bb);
47  void setContentsDragEnabled(bool on);
48  bool isContentsDragEnabled() const;
49  void setDraggerAlwaysShown(bool on);
50  bool isDraggerAlwaysShown() const;
51  void setDraggerAlwaysHidden(bool on);
52  bool isDraggerAlwaysHidden() const;
53 
54  void setUndoEnabled(bool on);
55  bool isUndoEnabled() const;
56  void storeCurrentPositionToHistory();
57 
58  TranslationDragger* translationDragger();
59  RotationDragger* rotationDragger();
60 
61  SignalProxy<void()> sigDragStarted();
62  SignalProxy<void()> sigPositionDragged();
63  SignalProxy<void()> sigDragFinished();
64 
65  virtual bool isDragging() const;
66  virtual Affine3 draggedPosition() const;
67 
68  virtual bool onButtonPressEvent(const SceneWidgetEvent& event);
69  virtual bool onButtonReleaseEvent(const SceneWidgetEvent& event);
70  virtual bool onPointerMoveEvent(const SceneWidgetEvent& event);
71  virtual void onPointerLeaveEvent(const SceneWidgetEvent& event);
72  virtual void onFocusChanged(const SceneWidgetEvent& event, bool on);
73  virtual void onSceneModeChanged(const SceneWidgetEvent& event);
74  virtual bool onUndoRequest();
75  virtual bool onRedoRequest();
76 
77 private:
78  PositionDraggerImpl* impl;
79 
80 };
81 
83 
84 }
85 
86 #endif
Definition: SceneDragger.h:13
Definition: PositionDragger.h:22
Eigen::Affine3d Affine3
Definition: EigenTypes.h:64
Definition: BoundingBox.h:17
Definition: SceneGraph.h:56
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
Axis
Definition: PositionDragger.h:33
Definition: TranslationDragger.h:15
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
Definition: RotationDragger.h:14
Definition: Signal.h:380
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Definition: PositionDragger.h:25
ref_ptr< PositionDragger > PositionDraggerPtr
Definition: PositionDragger.h:82
Definition: SceneWidgetEditable.h:16
Definition: SceneGraph.h:79