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_SPHERICALJOINT_H
00032 #define PX_SPHERICALJOINT_H
00033
00037 #include "extensions/PxJoint.h"
00038 #include "extensions/PxJointLimit.h"
00039
00040 #if !PX_DOXYGEN
00041 namespace physx
00042 {
00043 #endif
00044
00045 class PxSphericalJoint;
00046
00059 PxSphericalJoint* PxSphericalJointCreate(PxPhysics& physics,
00060 PxRigidActor* actor0, const PxTransform& localFrame0,
00061 PxRigidActor* actor1, const PxTransform& localFrame1);
00062
00063
00070 struct PxSphericalJointFlag
00071 {
00072 enum Enum
00073 {
00074 eLIMIT_ENABLED = 1<<1
00075 };
00076 };
00077 typedef PxFlags<PxSphericalJointFlag::Enum, PxU16> PxSphericalJointFlags;
00078 PX_FLAGS_OPERATORS(PxSphericalJointFlag::Enum, PxU16)
00079
00080
00095 class PxSphericalJoint : public PxJoint
00096 {
00097 public:
00098
00099
00111 virtual PxJointLimitCone getLimitCone() const = 0;
00112
00121 virtual void setLimitCone(const PxJointLimitCone &limit) = 0;
00122
00133 virtual void setSphericalJointFlags(PxSphericalJointFlags flags) = 0;
00134
00144 virtual void setSphericalJointFlag(PxSphericalJointFlag::Enum flag, bool value) = 0;
00145
00154 virtual PxSphericalJointFlags getSphericalJointFlags(void) const = 0;
00155
00175 virtual void setProjectionLinearTolerance(PxReal tolerance) = 0;
00176
00177
00186 virtual PxReal getProjectionLinearTolerance() const = 0;
00187
00191 virtual const char* getConcreteTypeName() const { return "PxSphericalJoint"; }
00192
00193 protected:
00194
00195
00196
00200 PX_INLINE PxSphericalJoint(PxType concreteType, PxBaseFlags baseFlags) : PxJoint(concreteType, baseFlags) {}
00201
00205 PX_INLINE PxSphericalJoint(PxBaseFlags baseFlags) : PxJoint(baseFlags) {}
00206
00210 virtual bool isKindOf(const char* name) const { return !::strcmp("PxSphericalJoint", name) || PxJoint::isKindOf(name); }
00211
00212
00213
00214 };
00215
00216 #if !PX_DOXYGEN
00217 }
00218 #endif
00219
00221 #endif