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 {
70 LightMutexHolder holder(BulletWorld::get_global_lock());
72 return (PN_stdfloat)_constraint->getLowerLinLimit();
78PN_stdfloat BulletSliderConstraint::
79get_upper_linear_limit()
const {
80 LightMutexHolder holder(BulletWorld::get_global_lock());
82 return (PN_stdfloat)_constraint->getUpperLinLimit();
88PN_stdfloat BulletSliderConstraint::
89get_lower_angular_limit()
const {
90 LightMutexHolder holder(BulletWorld::get_global_lock());
92 return rad_2_deg(_constraint->getLowerAngLimit());
98PN_stdfloat BulletSliderConstraint::
99get_upper_angular_limit()
const {
100 LightMutexHolder holder(BulletWorld::get_global_lock());
102 return rad_2_deg(_constraint->getUpperAngLimit());
108void BulletSliderConstraint::
109set_lower_linear_limit(PN_stdfloat value) {
110 LightMutexHolder holder(BulletWorld::get_global_lock());
112 _constraint->setLowerLinLimit((btScalar)value);
118void BulletSliderConstraint::
119set_upper_linear_limit(PN_stdfloat value) {
120 LightMutexHolder holder(BulletWorld::get_global_lock());
122 _constraint->setUpperLinLimit((btScalar)value);
128void BulletSliderConstraint::
129set_lower_angular_limit(PN_stdfloat value) {
130 LightMutexHolder holder(BulletWorld::get_global_lock());
132 _constraint->setLowerAngLimit((btScalar)deg_2_rad(value));
138void BulletSliderConstraint::
139set_upper_angular_limit(PN_stdfloat value) {
140 LightMutexHolder holder(BulletWorld::get_global_lock());
142 _constraint->setUpperAngLimit((btScalar)deg_2_rad(value));
148PN_stdfloat BulletSliderConstraint::
149get_linear_pos()
const {
150 LightMutexHolder holder(BulletWorld::get_global_lock());
152 return (PN_stdfloat)_constraint->getLinearPos();
158PN_stdfloat BulletSliderConstraint::
159get_angular_pos()
const {
160 LightMutexHolder holder(BulletWorld::get_global_lock());
162 return (PN_stdfloat)_constraint->getAngularPos();
168void BulletSliderConstraint::
169set_powered_linear_motor(
bool on) {
170 LightMutexHolder holder(BulletWorld::get_global_lock());
172 _constraint->setPoweredLinMotor(on);
178void BulletSliderConstraint::
179set_target_linear_motor_velocity(PN_stdfloat target_velocity) {
180 LightMutexHolder holder(BulletWorld::get_global_lock());
182 _constraint->setTargetLinMotorVelocity((btScalar)target_velocity);
188void BulletSliderConstraint::
189set_max_linear_motor_force(PN_stdfloat max_force) {
190 LightMutexHolder holder(BulletWorld::get_global_lock());
192 _constraint->setMaxLinMotorForce((btScalar)max_force);
198bool BulletSliderConstraint::
199get_powered_linear_motor()
const {
200 LightMutexHolder holder(BulletWorld::get_global_lock());
202 return _constraint->getPoweredLinMotor();
208PN_stdfloat BulletSliderConstraint::
209get_target_linear_motor_velocity()
const {
210 LightMutexHolder holder(BulletWorld::get_global_lock());
212 return (PN_stdfloat)_constraint->getTargetLinMotorVelocity();
218PN_stdfloat BulletSliderConstraint::
219get_max_linear_motor_force()
const {
220 LightMutexHolder holder(BulletWorld::get_global_lock());
222 return (PN_stdfloat)_constraint->getMaxLinMotorForce();
228void BulletSliderConstraint::
229set_powered_angular_motor(
bool on) {
230 LightMutexHolder holder(BulletWorld::get_global_lock());
232 _constraint->setPoweredAngMotor(on);
238void BulletSliderConstraint::
239set_target_angular_motor_velocity(PN_stdfloat target_velocity) {
240 LightMutexHolder holder(BulletWorld::get_global_lock());
242 _constraint->setTargetAngMotorVelocity((btScalar)target_velocity);
248void BulletSliderConstraint::
249set_max_angular_motor_force(PN_stdfloat max_force) {
250 LightMutexHolder holder(BulletWorld::get_global_lock());
252 _constraint->setMaxAngMotorForce((btScalar)max_force);
258bool BulletSliderConstraint::
259get_powered_angular_motor()
const {
260 LightMutexHolder holder(BulletWorld::get_global_lock());
262 return _constraint->getPoweredAngMotor();
268PN_stdfloat BulletSliderConstraint::
269get_target_angular_motor_velocity()
const {
270 LightMutexHolder holder(BulletWorld::get_global_lock());
272 return (PN_stdfloat)_constraint->getTargetAngMotorVelocity();
278PN_stdfloat BulletSliderConstraint::
279get_max_angular_motor_force()
const {
280 LightMutexHolder holder(BulletWorld::get_global_lock());
282 return (PN_stdfloat)_constraint->getMaxAngMotorForce();
288void BulletSliderConstraint::
290 LightMutexHolder holder(BulletWorld::get_global_lock());
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);
303 LightMutexHolder holder(BulletWorld::get_global_lock());
305 return btTrans_to_TransformState(_constraint->getFrameOffsetA());
313 LightMutexHolder holder(BulletWorld::get_global_lock());
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.
TypeHandle is the identifier used to differentiate C++ class types.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.