00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef PHYSXREVOLUTEJOINT_H
00016 #define PHYSXREVOLUTEJOINT_H
00017
00018 #include "pandabase.h"
00019
00020 #include "physxJoint.h"
00021 #include "physx_includes.h"
00022
00023 class PhysxRevoluteJointDesc;
00024 class PhysxSpringDesc;
00025 class PhysxMotorDesc;
00026 class PhysxJointLimitDesc;
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 class EXPCL_PANDAPHYSX PhysxRevoluteJoint : public PhysxJoint {
00037
00038 PUBLISHED:
00039 INLINE PhysxRevoluteJoint();
00040 INLINE ~PhysxRevoluteJoint();
00041
00042 void save_to_desc(PhysxRevoluteJointDesc &jointDesc) const;
00043 void load_from_desc(const PhysxRevoluteJointDesc &jointDesc);
00044
00045 void set_spring(const PhysxSpringDesc &spring);
00046 void set_motor(const PhysxMotorDesc &motor);
00047 void set_limits(const PhysxJointLimitDesc &low, const PhysxJointLimitDesc &high);
00048 void set_flag(PhysxRevoluteJointFlag flag, bool value);
00049 void set_projection_mode(PhysxProjectionMode mode);
00050
00051 float get_angle() const;
00052 float get_velocity() const;
00053 bool get_flag(PhysxRevoluteJointFlag flag) const;
00054 PhysxProjectionMode get_projection_mode() const;
00055 PhysxMotorDesc get_motor() const;
00056 PhysxSpringDesc get_spring() const;
00057
00058
00059 public:
00060 INLINE NxJoint *ptr() const { return (NxJoint *)_ptr; };
00061
00062 void link(NxJoint *jointPtr);
00063 void unlink();
00064
00065 private:
00066 NxRevoluteJoint *_ptr;
00067
00068
00069 public:
00070 static TypeHandle get_class_type() {
00071 return _type_handle;
00072 }
00073 static void init_type() {
00074 PhysxJoint::init_type();
00075 register_type(_type_handle, "PhysxRevoluteJoint",
00076 PhysxJoint::get_class_type());
00077 }
00078 virtual TypeHandle get_type() const {
00079 return get_class_type();
00080 }
00081 virtual TypeHandle force_init_type() {
00082 init_type();
00083 return get_class_type();
00084 }
00085
00086 private:
00087 static TypeHandle _type_handle;
00088 };
00089
00090 #include "physxRevoluteJoint.I"
00091
00092 #endif // PHYSXREVOLUTEJOINT_H