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