Choreonoid  1.5
TranslationDragger.h
Go to the documentation of this file.
1 
5 #ifndef CNOID_BASE_TRANSLATION_DRAGGER_H
6 #define CNOID_BASE_TRANSLATION_DRAGGER_H
7 
8 #include "SceneDragger.h"
9 #include "SceneDragProjector.h"
10 #include <cnoid/SceneDrawables>
11 #include "exportdecl.h"
12 
13 namespace cnoid {
14 
16 {
17 public:
19 
20  TranslationDragger(bool setDefaultAxes = true);
22  TranslationDragger(const TranslationDragger& org, SgCloneMap& cloneMap);
23 
24  virtual SgObject* clone(SgCloneMap& cloneMap) const;
25 
26  enum Axis { TX = 1, TY = 2, TZ = 4 };
27 
28  void setDraggableAxes(int axisSet);
29  int draggableAxes() const { return draggableAxes_; }
30 
31  void addCustomAxis(int axis, SgNode* node);
32  void clearCustomAxes();
33 
34  double radius() const;
35  void setRadius(double r);
36 
38  return sigTranslationStarted_;
39  }
41  return sigTranslationDragged_;
42  }
44  return sigTranslationFinished_;
45  }
46 
47  virtual bool isDragging() const;
48  virtual Affine3 draggedPosition() const;
49 
50  const Vector3& draggedTranslation() const;
51 
52  virtual bool onButtonPressEvent(const SceneWidgetEvent& event);
53  virtual bool onButtonReleaseEvent(const SceneWidgetEvent& event);
54  virtual bool onPointerMoveEvent(const SceneWidgetEvent& event);
55  virtual void onPointerLeaveEvent(const SceneWidgetEvent& event);
56 
57 private:
58  int draggableAxes_;
59  SgScaleTransformPtr defaultAxesScale;
60  SgGroupPtr customAxes;
61  SgMaterialPtr axisMaterials[3];
62  SceneDragProjector dragProjector;
63  double axisCylinderNormalizedRadius;
64  Signal<void()> sigTranslationStarted_;
65  Signal<void()> sigTranslationDragged_;
66  Signal<void()> sigTranslationFinished_;
67 };
68 
70 
71 }
72 
73 #endif
SignalProxy< void()> sigTranslationStarted()
Definition: TranslationDragger.h:37
SignalProxy< void()> sigTranslationFinished()
Definition: TranslationDragger.h:43
Definition: SceneGraph.h:142
Definition: SceneDragger.h:13
Eigen::Affine3d Affine3
Definition: EigenTypes.h:64
Definition: SceneDragProjector.h:15
Axis
Definition: TranslationDragger.h:26
Definition: SceneGraph.h:56
SignalProxy< void()> sigTranslationDragged()
Definition: TranslationDragger.h:40
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Definition: TranslationDragger.h:18
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
Definition: TranslationDragger.h:15
ref_ptr< TranslationDragger > TranslationDraggerPtr
Definition: TranslationDragger.h:69
int draggableAxes() const
Definition: TranslationDragger.h:29
Eigen::Vector3d Vector3
Definition: EigenTypes.h:58
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
Definition: Signal.h:380
Definition: SceneWidgetEditable.h:16
Definition: SceneGraph.h:79