AnimatLab  2
Test
OsgPrismatic.cpp
Go to the documentation of this file.
1 
7 #include "StdAfx.h"
8 #include "OsgMovableItem.h"
9 #include "OsgBody.h"
10 #include "OsgRigidBody.h"
11 #include "OsgJoint.h"
12 #include "OsgPrismaticLimit.h"
13 #include "OsgPrismatic.h"
14 #include "OsgStructure.h"
15 #include "OsgUserData.h"
16 #include "OsgUserDataVisitor.h"
17 #include "OsgDragger.h"
18 
19 namespace OsgAnimatSim
20 {
21  namespace Environment
22  {
23  namespace Joints
24  {
25 
33 {
34 }
35 
43 {
44 }
45 
46 
47 void OsgPrismatic::DeletePrismaticGraphics(osg::ref_ptr<osg::MatrixTransform> osgJointMT, OsgPrismaticLimit *lpUpperLimit, OsgPrismaticLimit *lpLowerLimit, OsgPrismaticLimit *lpPosFlap)
48 {
49  if(osgJointMT.valid())
50  {
51  if(lpUpperLimit && lpUpperLimit->BoxMT()) osgJointMT->removeChild(lpUpperLimit->BoxMT());
52  if(lpUpperLimit && lpUpperLimit->CylinderMT()) osgJointMT->removeChild(lpUpperLimit->CylinderMT());
53 
54  if(lpLowerLimit && lpLowerLimit->BoxMT()) osgJointMT->removeChild(lpLowerLimit->BoxMT());
55  if(lpLowerLimit && lpLowerLimit->CylinderMT()) osgJointMT->removeChild(lpLowerLimit->CylinderMT());
56 
57  if(lpPosFlap && lpPosFlap->BoxMT()) osgJointMT->removeChild(lpPosFlap->BoxMT());
58  }
59 }
60 
61 void OsgPrismatic::CreatePrismaticGraphics(float fltBoxSize, float fltRadius,
62  osg::ref_ptr<osg::MatrixTransform> osgJointMT, OsgPrismaticLimit *lpUpperLimit,
63  OsgPrismaticLimit *lpLowerLimit, OsgPrismaticLimit *lpPosFlap)
64 {
65  lpUpperLimit->SetupLimitGraphics(fltBoxSize, fltRadius);
66  lpLowerLimit->SetupLimitGraphics(fltBoxSize, fltRadius);
67  lpPosFlap->SetupLimitGraphics(fltBoxSize, fltRadius);
68 
69  osgJointMT->addChild(lpUpperLimit->BoxMT());
70  osgJointMT->addChild(lpUpperLimit->CylinderMT());
71 
72  osgJointMT->addChild(lpLowerLimit->BoxMT());
73  osgJointMT->addChild(lpLowerLimit->CylinderMT());
74 
75  osgJointMT->addChild(lpPosFlap->BoxMT());
76 }
77 
78  } // Joints
79  } // Environment
80 } //OsgAnimatSim
Declares the vs prismatic class.
Classes for implementing the cm-labs vortex physics engine for AnimatLab.
Declares the vortex structure class.