21 TypeHandle BulletSliderConstraint::_type_handle;
26 BulletSliderConstraint::
31 btRigidBody *ptr_a = btRigidBody::upcast(node_a->get_object());
32 btTransform trans_a = TransformState_to_btTrans(frame_a);
34 _constraint =
new btSliderConstraint(*ptr_a, trans_a, use_frame_a);
40 BulletSliderConstraint::
47 btRigidBody *ptr_a = btRigidBody::upcast(node_a->get_object());
48 btTransform trans_a = TransformState_to_btTrans(frame_a);
50 btRigidBody *ptr_b = btRigidBody::upcast(node_b->get_object());
51 btTransform trans_b = TransformState_to_btTrans(frame_b);
53 _constraint =
new btSliderConstraint(*ptr_a, *ptr_b, trans_a, trans_b, use_frame_a);
59 btTypedConstraint *BulletSliderConstraint::
68 PN_stdfloat BulletSliderConstraint::
69 get_lower_linear_limit()
const {
72 return (PN_stdfloat)_constraint->getLowerLinLimit();
78 PN_stdfloat BulletSliderConstraint::
79 get_upper_linear_limit()
const {
82 return (PN_stdfloat)_constraint->getUpperLinLimit();
88 PN_stdfloat BulletSliderConstraint::
89 get_lower_angular_limit()
const {
92 return rad_2_deg(_constraint->getLowerAngLimit());
98 PN_stdfloat BulletSliderConstraint::
99 get_upper_angular_limit()
const {
102 return rad_2_deg(_constraint->getUpperAngLimit());
108 void BulletSliderConstraint::
109 set_lower_linear_limit(PN_stdfloat value) {
112 _constraint->setLowerLinLimit((btScalar)value);
118 void BulletSliderConstraint::
119 set_upper_linear_limit(PN_stdfloat value) {
122 _constraint->setUpperLinLimit((btScalar)value);
128 void BulletSliderConstraint::
129 set_lower_angular_limit(PN_stdfloat value) {
132 _constraint->setLowerAngLimit((btScalar)deg_2_rad(value));
138 void BulletSliderConstraint::
139 set_upper_angular_limit(PN_stdfloat value) {
142 _constraint->setUpperAngLimit((btScalar)deg_2_rad(value));
148 PN_stdfloat BulletSliderConstraint::
149 get_linear_pos()
const {
152 return (PN_stdfloat)_constraint->getLinearPos();
158 PN_stdfloat BulletSliderConstraint::
159 get_angular_pos()
const {
162 return (PN_stdfloat)_constraint->getAngularPos();
168 void BulletSliderConstraint::
169 set_powered_linear_motor(
bool on) {
172 _constraint->setPoweredLinMotor(on);
178 void BulletSliderConstraint::
179 set_target_linear_motor_velocity(PN_stdfloat target_velocity) {
182 _constraint->setTargetLinMotorVelocity((btScalar)target_velocity);
188 void BulletSliderConstraint::
189 set_max_linear_motor_force(PN_stdfloat max_force) {
192 _constraint->setMaxLinMotorForce((btScalar)max_force);
198 bool BulletSliderConstraint::
199 get_powered_linear_motor()
const {
202 return _constraint->getPoweredLinMotor();
208 PN_stdfloat BulletSliderConstraint::
209 get_target_linear_motor_velocity()
const {
212 return (PN_stdfloat)_constraint->getTargetLinMotorVelocity();
218 PN_stdfloat BulletSliderConstraint::
219 get_max_linear_motor_force()
const {
222 return (PN_stdfloat)_constraint->getMaxLinMotorForce();
228 void BulletSliderConstraint::
229 set_powered_angular_motor(
bool on) {
232 _constraint->setPoweredAngMotor(on);
238 void BulletSliderConstraint::
239 set_target_angular_motor_velocity(PN_stdfloat target_velocity) {
242 _constraint->setTargetAngMotorVelocity((btScalar)target_velocity);
248 void BulletSliderConstraint::
249 set_max_angular_motor_force(PN_stdfloat max_force) {
252 _constraint->setMaxAngMotorForce((btScalar)max_force);
258 bool BulletSliderConstraint::
259 get_powered_angular_motor()
const {
262 return _constraint->getPoweredAngMotor();
268 PN_stdfloat BulletSliderConstraint::
269 get_target_angular_motor_velocity()
const {
272 return (PN_stdfloat)_constraint->getTargetAngMotorVelocity();
278 PN_stdfloat BulletSliderConstraint::
279 get_max_angular_motor_force()
const {
282 return (PN_stdfloat)_constraint->getMaxAngMotorForce();
288 void BulletSliderConstraint::
292 btTransform frame_a = TransformState_to_btTrans(ts_a);
293 btTransform frame_b = TransformState_to_btTrans(ts_b);
295 _constraint->setFrames(frame_a, frame_b);
302 get_frame_a()
const {
305 return btTrans_to_TransformState(_constraint->getFrameOffsetA());
312 get_frame_b()
const {
315 return btTrans_to_TransformState(_constraint->getFrameOffsetB());
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Similar to MutexHolder, but for a light mutex.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
TypeHandle is the identifier used to differentiate C++ class types.