AnimatLab  2
Test
OsgMouseSpring.h
1 #pragma once
2 
3 namespace OsgAnimatSim
4 {
5  namespace Visualization
6  {
7 
9 {
10  protected:
11  osg::ref_ptr<osg::Geode> m_gdeLine;
12  osg::ref_ptr<osg::Geometry> m_linesGeom;
13  osg::ref_ptr<osg::LineWidth> m_lineWidth;
14  osg::Vec3 m_v3Start;
15  osg::Vec3 m_v3End;
16  osg::ref_ptr<osg::Vec3Array> m_aryLines;
17  osg::Vec3 m_v3Grab;
18  RigidBody *m_lpRB;
19  OsgMovableItem *m_osgRB;
20 
21  void Update();
22 
23  public:
24  OsgMouseSpring(void);
25  ~OsgMouseSpring(void);
26 
27  osg::Node* GetNode(){return m_gdeLine.get();};
28  void SetStart(osg::Vec3 v3Start);
29  osg::Vec3 GetStart() { return m_v3Start; };
30 
31  void SetEnd(osg::Vec3 v3End);
32  osg::Vec3 GetEnd() { return m_v3End; };
33 
34  void SetGrabPosition(osg::Vec3 v3Grab) {m_v3Grab = v3Grab;};
35  osg::Vec3 GetGrabPosition() {return m_v3Grab;}
36 
37  void SetRigidBody (RigidBody *lpRB)
38  {
39  m_lpRB = lpRB;
40  m_osgRB = dynamic_cast<OsgMovableItem *>(lpRB);
41  };
42  RigidBody* GetRigidBody() {return m_lpRB;};
43  OsgMovableItem* GetMovableItem() {return m_osgRB;};
44 
45  void Visible(bool bVal);
46  void Initialize();
47 };
48 
49  }// end Visualization
50 }// end OsgAnimatSim
Classes for implementing the cm-labs vortex physics engine for AnimatLab.