19TypeHandle BulletSphericalConstraint::_type_handle;
24BulletSphericalConstraint::
26 const LPoint3 &pivot_a) {
28 btRigidBody *ptr_a = btRigidBody::upcast(node_a->get_object());
29 btVector3 pos_a = LVecBase3_to_btVector3(pivot_a);
31 _constraint =
new btPoint2PointConstraint(*ptr_a, pos_a);
37BulletSphericalConstraint::
40 const LPoint3 &pivot_a,
41 const LPoint3 &pivot_b) {
43 btRigidBody *ptr_a = btRigidBody::upcast(node_a->get_object());
44 btVector3 pos_a = LVecBase3_to_btVector3(pivot_a);
46 btRigidBody *ptr_b = btRigidBody::upcast(node_b->get_object());
47 btVector3 pos_b = LVecBase3_to_btVector3(pivot_b);
49 _constraint =
new btPoint2PointConstraint(*ptr_a, *ptr_b, pos_a, pos_b);
55btTypedConstraint *BulletSphericalConstraint::
64void BulletSphericalConstraint::
65set_pivot_a(
const LPoint3 &pivot_a) {
66 LightMutexHolder holder(BulletWorld::get_global_lock());
68 nassertv(!pivot_a.is_nan());
69 _constraint->setPivotA(LVecBase3_to_btVector3(pivot_a));
75void BulletSphericalConstraint::
76set_pivot_b(
const LPoint3 &pivot_b) {
77 LightMutexHolder holder(BulletWorld::get_global_lock());
79 nassertv(!pivot_b.is_nan());
80 _constraint->setPivotB(LVecBase3_to_btVector3(pivot_b));
86LPoint3 BulletSphericalConstraint::
87get_pivot_in_a()
const {
88 LightMutexHolder holder(BulletWorld::get_global_lock());
90 return btVector3_to_LPoint3(_constraint->getPivotInA());
96LPoint3 BulletSphericalConstraint::
97get_pivot_in_b()
const {
98 LightMutexHolder holder(BulletWorld::get_global_lock());
100 return btVector3_to_LPoint3(_constraint->getPivotInB());
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.