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