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 PX_PHYSICS_NX_ARTICULATION_JOINT_RC
00032 #define PX_PHYSICS_NX_ARTICULATION_JOINT_RC
00033
00036 #if 1
00037 #include "PxPhysXConfig.h"
00038 #include "common/PxBase.h"
00039 #include "PxArticulationJoint.h"
00040
00041 #if !PX_DOXYGEN
00042 namespace physx
00043 {
00044 #endif
00045
00055 class PxArticulationJointReducedCoordinate : public PxArticulationJointBase
00056 {
00057 public:
00058
00059 virtual void setJointType(PxArticulationJointType::Enum jointType) = 0;
00060 virtual PxArticulationJointType::Enum
00061 getJointType() const = 0;
00062
00063 virtual void setMotion(PxArticulationAxis::Enum axis, PxArticulationMotion::Enum motion) = 0;
00064 virtual PxArticulationMotion::Enum
00065 getMotion(PxArticulationAxis::Enum axis) const = 0;
00066
00067 virtual void setLimit(PxArticulationAxis::Enum axis, const PxReal lowLimit, const PxReal highLimit) = 0;
00068 virtual void getLimit(PxArticulationAxis::Enum axis, PxReal& lowLimit, PxReal& highLimit) = 0;
00069 virtual void setDrive(PxArticulationAxis::Enum axis, const PxReal stiffness, const PxReal damping, const PxReal maxForce, bool isAccelerationDrive = false) = 0;
00070 virtual void getDrive(PxArticulationAxis::Enum axis, PxReal& stiffness, PxReal& damping, PxReal& maxForce, bool& isAcceleration) = 0;
00071 virtual void setDriveTarget(PxArticulationAxis::Enum axis, const PxReal target) = 0;
00072 virtual void setDriveVelocity(PxArticulationAxis::Enum axis, const PxReal targetVel) = 0;
00073 virtual PxReal getDriveTarget(PxArticulationAxis::Enum axis) = 0;
00074 virtual PxReal getDriveVelocity(PxArticulationAxis::Enum axis) = 0;
00075
00076
00077 virtual void setFrictionCoefficient(const PxReal coefficient) = 0;
00078
00079 virtual PxReal getFrictionCoefficient() const = 0;
00080
00081 virtual const char* getConcreteTypeName() const { return "PxArticulationJointReducedCoordinate"; }
00082
00083 protected:
00084 PX_INLINE PxArticulationJointReducedCoordinate(PxType concreteType, PxBaseFlags baseFlags) : PxArticulationJointBase(concreteType, baseFlags) {}
00085 PX_INLINE PxArticulationJointReducedCoordinate(PxBaseFlags baseFlags) : PxArticulationJointBase(baseFlags) {}
00086 virtual ~PxArticulationJointReducedCoordinate() {}
00087 virtual bool isKindOf(const char* name) const { return !::strcmp("PxArticulationJointReducedCoordinate", name) || PxBase::isKindOf(name); }
00088 };
00089
00090 #if !PX_DOXYGEN
00091 }
00092 #endif
00093
00094 #endif
00095
00097 #endif