AnimatLab  2
Test
OsgHingeLimit.h
1 
2 #pragma once
3 
4 namespace OsgAnimatSim
5 {
6  namespace Environment
7  {
8  namespace Joints
9  {
10  class ANIMAT_OSG_PORT OsgHingeLimit
11  {
12  protected:
13  ConstraintLimit *m_lpThisLimit;
14 
15  osg::ref_ptr<osg::Geometry> m_osgFlap;
16  osg::ref_ptr<osg::MatrixTransform> m_osgFlapTranslateMT;
17  osg::ref_ptr<osg::MatrixTransform> m_osgFlapRotateMT;
18 
19  osg::ref_ptr<osg::Material> m_osgFlapMat;
20  osg::ref_ptr<osg::StateSet> m_osgFlapSS;
21 
22  public:
23  OsgHingeLimit();
24  virtual ~OsgHingeLimit();
25 
26  virtual void SetConstraintLimit(ConstraintLimit *lpLimit) {m_lpThisLimit = lpLimit;};
27 
28  virtual void LimitAlpha(float fltA);
29  virtual void SetLimitPos(float fltHeight);
30 
31  osg::Geometry *FlapGeometry() {return m_osgFlap.get();};
32  osg::MatrixTransform *FlapTranslateMT() {return m_osgFlapTranslateMT.get();};
33  osg::MatrixTransform *FlapRotateMT() {return m_osgFlapRotateMT.get();};
34  osg::Material *FlapMat() {return m_osgFlapMat.get();};
35  osg::StateSet *FlapSS() {return m_osgFlapSS.get();};
36 
37  virtual void SetupLimitGraphics(float fltFlapWidth, float fltCylinderHeight);
38  virtual void DeleteLimitGraphics();
39  };
40 
41  } // Joints
42  } // Environment
43 } //OsgAnimatSim
Classes for implementing the cm-labs vortex physics engine for AnimatLab.