00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef __BULLET_SLIDER_CONSTRAINT_H__
00016 #define __BULLET_SLIDER_CONSTRAINT_H__
00017
00018 #include "pandabase.h"
00019
00020 #include "bullet_includes.h"
00021 #include "bullet_utils.h"
00022 #include "bulletConstraint.h"
00023
00024 #include "transformState.h"
00025
00026 class BulletRigidBodyNode;
00027
00028
00029
00030
00031
00032 class EXPCL_PANDABULLET BulletSliderConstraint : public BulletConstraint {
00033
00034 PUBLISHED:
00035 BulletSliderConstraint(const BulletRigidBodyNode *node_a,
00036 CPT(TransformState) frame_a,
00037 bool useFrame_a);
00038 BulletSliderConstraint(const BulletRigidBodyNode *node_a,
00039 const BulletRigidBodyNode *node_b,
00040 CPT(TransformState) frame_a,
00041 CPT(TransformState) frame_b,
00042 bool use_frame_a);
00043 INLINE ~BulletSliderConstraint();
00044
00045 PN_stdfloat get_linear_pos() const;
00046 PN_stdfloat get_angular_pos() const;
00047
00048
00049 PN_stdfloat get_lower_linear_limit() const;
00050 PN_stdfloat get_upper_linear_limit() const;
00051 PN_stdfloat get_lower_angular_limit() const;
00052 PN_stdfloat get_upper_angular_limit() const;
00053 void set_lower_linear_limit(PN_stdfloat value);
00054 void set_upper_linear_limit(PN_stdfloat value);
00055 void set_lower_angular_limit(PN_stdfloat value);
00056 void set_upper_angular_limit(PN_stdfloat value);
00057
00058
00059 void set_powered_linear_motor(bool on);
00060 void set_target_linear_motor_velocity (PN_stdfloat target_velocity);
00061 void set_max_linear_motor_force(PN_stdfloat max_force);
00062 bool get_powered_linear_motor() const;
00063 PN_stdfloat get_target_linear_motor_velocity() const;
00064 PN_stdfloat get_max_linear_motor_force() const;
00065
00066
00067 void set_powered_angular_motor(bool on);
00068 void set_target_angular_motor_velocity (PN_stdfloat target_velocity);
00069 void set_max_angular_motor_force(PN_stdfloat max_force);
00070 bool get_powered_angular_motor() const;
00071 PN_stdfloat get_target_angular_motor_velocity() const;
00072 PN_stdfloat get_max_angular_motor_force() const;
00073
00074 public:
00075 virtual btTypedConstraint *ptr() const;
00076
00077 private:
00078 btSliderConstraint *_constraint;
00079
00080
00081 public:
00082 static TypeHandle get_class_type() {
00083 return _type_handle;
00084 }
00085 static void init_type() {
00086 BulletConstraint::init_type();
00087 register_type(_type_handle, "BulletSliderConstraint",
00088 BulletConstraint::get_class_type());
00089 }
00090 virtual TypeHandle get_type() const {
00091 return get_class_type();
00092 }
00093 virtual TypeHandle force_init_type() {
00094 init_type();
00095 return get_class_type();
00096 }
00097
00098 private:
00099 static TypeHandle _type_handle;
00100 };
00101
00102 #include "bulletSliderConstraint.I"
00103
00104 #endif // __BULLET_SLIDER_CONSTRAINT_H__