Implement axis locking options for rigid bodies

Linear and angular motion of rigid bodies can now be restricted along
specific world-space axes.

Signed-off-by: Ibtehaj Nadeem <81370835+ibtehajn@users.noreply.github.com>
This commit is contained in:
ibtehajn
2021-07-28 13:22:24 +01:00
committed by Ibtehaj Nadeem
parent d38f17131e
commit fd07f907bc
5 changed files with 105 additions and 0 deletions
+8
View File
@@ -1466,6 +1466,14 @@ namespace PhysX
rigidDynamic->setRigidBodyFlag(physx::PxRigidBodyFlag::eKINEMATIC, configuration.m_kinematic);
rigidDynamic->setMaxAngularVelocity(configuration.m_maxAngularVelocity);
// Set axis locks.
rigidDynamic->setRigidDynamicLockFlag(physx::PxRigidDynamicLockFlag::eLOCK_LINEAR_X, configuration.m_lockLinearX);
rigidDynamic->setRigidDynamicLockFlag(physx::PxRigidDynamicLockFlag::eLOCK_LINEAR_Y, configuration.m_lockLinearY);
rigidDynamic->setRigidDynamicLockFlag(physx::PxRigidDynamicLockFlag::eLOCK_LINEAR_Z, configuration.m_lockLinearZ);
rigidDynamic->setRigidDynamicLockFlag(physx::PxRigidDynamicLockFlag::eLOCK_ANGULAR_X, configuration.m_lockAngularX);
rigidDynamic->setRigidDynamicLockFlag(physx::PxRigidDynamicLockFlag::eLOCK_ANGULAR_Y, configuration.m_lockAngularY);
rigidDynamic->setRigidDynamicLockFlag(physx::PxRigidDynamicLockFlag::eLOCK_ANGULAR_Z, configuration.m_lockAngularZ);
return rigidDynamic;
}