gVirtualXRay  2.0.10
VirtualX-RayImagingLibraryonGPU
OpenSceneGraphBinder.h
Go to the documentation of this file.
1 #ifndef __OpenSceneGraphBinder_h
2 #define __OpenSceneGraphBinder_h
3 
4 #ifdef HAS_OPENSCENEGRAPH
5 #include <osg/Node>
6 #include <osg/Group>
7 #include <osg/MatrixTransform>
8 #endif
9 
10 #ifndef __GeodeFinder_h
12 #endif
13 
14 #ifndef __SceneGraphBinder_h
16 #endif
17 
18 
19 //******************************************************************************
20 // namespace
21 //******************************************************************************
22 namespace gVirtualXRay {
23 
24 
26 {
27 public:
29  OpenSceneGraphBinder(const OpenSceneGraphBinder& aSceneGraph);
30  OpenSceneGraphBinder(const std::string& aFileName, RATIONAL_NUMBER aUnitOfLength);
31  OpenSceneGraphBinder(const char* aFileName, RATIONAL_NUMBER aUnitOfLength);
32 
33 #ifdef HAS_OPENSCENEGRAPH
34  OpenSceneGraphBinder(osg::Group* apSceneGraph);
35 #endif
36 
37  virtual ~OpenSceneGraphBinder();
38 
40 
41 
42  virtual void loadSceneGraph(const char* aFileName, RATIONAL_NUMBER aUnitOfLength);
43 
44 
45 #ifdef HAS_OPENSCENEGRAPH
46  void setSceneGraph(osg::Group* apSceneGraph);
47 #endif
48 
49  virtual void updateMatrices();
50 
51 
52  virtual void scale(const char* aNodeLabel,
53  const gVirtualXRay::VEC3& aScalingFactorSet);
54 
55 
56  virtual void rotate(const char* aNodeLabel,
57  float aRotationAngleInDegrees,
58  const gVirtualXRay::VEC3& aRotationAxis);
59 
60  virtual void translate(const char* aNodeLabel,
61  const VEC3& aTranslationVector);
62 
63  virtual gVirtualXRay::MATRIX4 getTransformationMatrix(const char* aNodeLabel) const;
64 
65  virtual void moveToCentre();
66  virtual void moveToCenter();
67 
69  virtual MATRIX4 getNodeTransformationMatrix(const char* aNodeLabel) const;
70 
71  virtual void setRootNodeTransformationMatrix(const MATRIX4& aTransformationMatrix);
72  virtual void setNodeTransformationMatrix(const char* aNodeLabel, const MATRIX4& aTransformationMatrix);
73 
74 
75 #ifdef HAS_OPENSCENEGRAPH
76  osg::Node* findNode(const char* aNodeLabel);
77  const osg::Node* findNode(const char* aNodeLabel) const;
78 #endif
79 
80 
81 private:
82 
83 #ifdef HAS_OPENSCENEGRAPH
84  osg::Group* m_p_scene_graph;
85  GeodeFinder m_geode_finder;
86 #endif
87 };
88 
89 
90 } // namespace gVirtualXRay
91 
92 
93 #endif // __OpenSceneGraphBinder_h
virtual void setNodeTransformationMatrix(const char *aNodeLabel, const MATRIX4 &aTransformationMatrix)
virtual gVirtualXRay::MATRIX4 getTransformationMatrix(const char *aNodeLabel) const
virtual void loadSceneGraph(const char *aFileName, RATIONAL_NUMBER aUnitOfLength)
virtual MATRIX4 getRootNodeTransformationMatrix() const
virtual void rotate(const char *aNodeLabel, float aRotationAngleInDegrees, const gVirtualXRay::VEC3 &aRotationAxis)
float RATIONAL_NUMBER
Type of data used to store real numbers.
Definition: Types.h:107
virtual MATRIX4 getNodeTransformationMatrix(const char *aNodeLabel) const
virtual void setRootNodeTransformationMatrix(const MATRIX4 &aTransformationMatrix)
virtual void translate(const char *aNodeLabel, const VEC3 &aTranslationVector)
OpenSceneGraphBinder & operator=(const OpenSceneGraphBinder &aSceneGraph)
virtual void scale(const char *aNodeLabel, const gVirtualXRay::VEC3 &aScalingFactorSet)