Choreonoid  1.5
RotationDragger.h
Go to the documentation of this file.
1 
5 #ifndef CNOID_BASE_ROTATIN_DRAGGER_H
6 #define CNOID_BASE_ROTATIN_DRAGGER_H
7 
8 #include "SceneDragger.h"
9 #include "SceneDragProjector.h"
10 #include "exportdecl.h"
11 
12 namespace cnoid {
13 
15 {
16 public:
18 
20  RotationDragger(const RotationDragger& org);
21  RotationDragger(const RotationDragger& org, SgCloneMap& cloneMap);
22 
23  virtual SgObject* clone(SgCloneMap& cloneMap) const;
24 
25  enum Axis { RX = 1, RY = 2, RZ = 4 };
26 
27  void setDraggableAxes(int axisSet);
28  int draggableAxes() const { return draggableAxes_; }
29 
30  void setRadius(double r);
31 
33  return sigRotationStarted_;
34  }
39  return sigRotationDragged_;
40  }
42  return sigRotationFinished_;
43  }
44 
45  bool isDragging() const;
46  const AngleAxis& draggedAngleAxis() const;
47  Affine3 draggedPosition() const;
48 
49  virtual bool onButtonPressEvent(const SceneWidgetEvent& event);
50  virtual bool onButtonReleaseEvent(const SceneWidgetEvent& event);
51  virtual bool onPointerMoveEvent(const SceneWidgetEvent& event);
52  virtual void onPointerLeaveEvent(const SceneWidgetEvent& event);
53 
54 private:
55  int draggableAxes_;
56  SgScaleTransformPtr scale;
57  SceneDragProjector dragProjector;
58  Signal<void()> sigRotationStarted_;
59  Signal<void(const AngleAxis& rotation)> sigRotationDragged_;
60  Signal<void()> sigRotationFinished_;
61 };
62 
64 
65 }
66 
67 #endif
Eigen::AngleAxisd AngleAxis
Definition: EigenTypes.h:66
SignalProxy< void()> sigRotationStarted()
Definition: RotationDragger.h:32
SignalProxy< void()> sigRotationFinished()
Definition: RotationDragger.h:41
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Definition: RotationDragger.h:17
Definition: SceneDragger.h:13
Eigen::Affine3d Affine3
Definition: EigenTypes.h:64
Definition: SceneDragProjector.h:15
ref_ptr< RotationDragger > RotationDraggerPtr
Definition: RotationDragger.h:63
Definition: SceneGraph.h:56
Axis
Definition: RotationDragger.h:25
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
SignalProxy< void(const AngleAxis &rotation)> sigRotationDragged()
Definition: RotationDragger.h:38
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
Definition: RotationDragger.h:14
Definition: Signal.h:380
int draggableAxes() const
Definition: RotationDragger.h:28
Definition: SceneWidgetEditable.h:16
Definition: SceneGraph.h:79