00001 #ifndef IPSA_SOJOINTSLIDER_H
00002 #define IPSA_SOJOINTSLIDER_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00027 #include "SoJoint.h"
00028 #include <Inventor/fields/SoSFVec3f.h>
00029 #include <Inventor/fields/SoMFFloat.h>
00030 #include <Inventor/fields/SoSFFloat.h>
00031
00032 class IPSA_IMPORT_EXPORT SoJointSlider : public SoJoint
00033 {
00034 SO_KIT_HEADER(SoJointSlider);
00035
00036 public:
00037
00038 SoJointSlider(const SbString& BodyOne = "", const SbString& BodyTwo = "", const SbString& nodeName = "");
00039
00040 static void initClass();
00041 virtual void setParams();
00042
00043 SoSFFloat getPosition();
00044 SoSFFloat getPositionRate();
00045
00046 virtual void setForce(dReal force1 = 0.0f);
00047
00048 SoSFVec3f soAxis;
00049 SoSFFloat soForce;
00050
00051 SoSFFloat LoStop;
00052 SoSFFloat HiStop;
00053 SoSFFloat Velocity;
00054 SoSFFloat MaxForce;
00055 SoSFFloat FudgeFactor;
00056 SoSFFloat Bounce;
00057 SoSFFloat CFM;
00058 SoSFFloat StopERP;
00059 SoSFFloat StopCFM;
00060
00061 protected:
00062 virtual void createOdeJoint(const dWorldID soWorldId);
00063 virtual void updateOdeJointProperties(const SbMatrix& modelMatrix);
00064 virtual SoNode* createVisualisation();
00065
00066 float initVelocity;
00067 float initMaxForce;
00068 float initForce;
00069
00070 };
00071
00072 #endif