00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef _OGREBULLETDYNAMICS_SixDofSpringConstraint_H
00032 #define _OGREBULLETDYNAMICS_SixDofSpringConstraint_H
00033
00034 #include "OgreBulletDynamicsPreRequisites.h"
00035
00036 #include "OgreBulletDynamicsConstraint.h"
00037
00038
00039 namespace OgreBulletDynamics
00040 {
00041
00042
00043 class SixDofSpringConstraint : public TypedConstraint
00044 {
00045 public:
00046 SixDofSpringConstraint(RigidBody * rbA, RigidBody * rbB,
00047 const Ogre::Vector3& FrameInAVector, const Ogre::Quaternion& FrameInAOrientation,
00048 const Ogre::Vector3& FrameInBVector, const Ogre::Quaternion& FrameInBOrientation);
00049
00050 void setLinearLowerLimit(const Ogre::Vector3& linearLower);
00051 void setLinearUpperLimit(const Ogre::Vector3& linearUpper);
00052 void setAngularLowerLimit(const Ogre::Vector3& angularLower);
00053 void setAngularUpperLimit(const Ogre::Vector3& angularUpper);
00054
00055 void setLimit(const int axis, const Ogre::Real lo, const Ogre::Real hi);
00056
00057 void enableSpring(int index, bool onOff);
00058 void setStiffness(int index, const Ogre::Real stiffness);
00059 void setDamping(int index, const Ogre::Real damping);
00060 void setEquilibriumPoint(int index);
00061 void setEquilibriumPoint();
00063
00069 bool isLimited(int limitIndex);
00070
00071 virtual ~SixDofSpringConstraint();
00072
00073 };
00074 }
00075 #endif //_OGREBULLETDYNAMICS_SixDofSpringConstraint_H
00076