diff options
Diffstat (limited to 'PhysX_3.4/Source/PhysXExtensions/src/ExtJoint.h')
| -rw-r--r-- | PhysX_3.4/Source/PhysXExtensions/src/ExtJoint.h | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/PhysX_3.4/Source/PhysXExtensions/src/ExtJoint.h b/PhysX_3.4/Source/PhysXExtensions/src/ExtJoint.h index 9a8b1d9d..d6428f0f 100644 --- a/PhysX_3.4/Source/PhysXExtensions/src/ExtJoint.h +++ b/PhysX_3.4/Source/PhysXExtensions/src/ExtJoint.h @@ -202,17 +202,13 @@ namespace Ext mPxConstraint->markDirty(); } - PxTransform getBodyPose(const PxRigidActor* actor) const + static PxTransform getGlobalPose(const PxRigidActor* actor) { if(!actor) return PxTransform(PxIdentity); - else if(actor->is<PxRigidStatic>()) - return actor->getGlobalPose(); - else - return actor->getGlobalPose() * static_cast<const PxRigidBody*>(actor)->getCMassLocalPose(); + return actor->getGlobalPose(); } - void getActorVelocity(const PxRigidActor* actor, PxVec3& linear, PxVec3& angular) const { if(!actor || actor->is<PxRigidStatic>()) @@ -230,8 +226,8 @@ namespace Ext { PxRigidActor* actor0, * actor1; mPxConstraint->getActors(actor0, actor1); - PxTransform t0 = getBodyPose(actor0) * mLocalPose[0], - t1 = getBodyPose(actor1) * mLocalPose[1]; + const PxTransform t0 = getGlobalPose(actor0) * mLocalPose[0]; + const PxTransform t1 = getGlobalPose(actor1) * mLocalPose[1]; return t0.transformInv(t1); } |