support ccd (#3757)

This commit is contained in:
jiaxin.lai
2021-07-23 16:14:07 +08:00
committed by GitHub
parent 3651d75008
commit 28e81111d7
5 changed files with 13 additions and 1 deletions

View File

@@ -99,6 +99,11 @@ void PhysXRigidBody::useGravity(bool v) {
getSharedBody().getImpl().rigidDynamic->setActorFlag(PxActorFlag::eDISABLE_GRAVITY, !v);
}
void PhysXRigidBody::useCCD(bool v) {
if (getSharedBody().isStatic()) return;
getSharedBody().getImpl().rigidDynamic->setRigidBodyFlag(physx::PxRigidBodyFlag::eENABLE_CCD, v);
}
void PhysXRigidBody::setLinearFactor(float x, float y, float z) {
if (getSharedBody().isStatic()) return;
getSharedBody().getImpl().rigidDynamic->setRigidDynamicLockFlag(physx::PxRigidDynamicLockFlag::eLOCK_LINEAR_X, x == 0.);

View File

@@ -53,6 +53,7 @@ public:
void setLinearDamping(float v) override;
void setAngularDamping(float v) override;
void useGravity(bool v) override;
void useCCD(bool v) override;
void setLinearFactor(float x, float y, float z) override;
void setAngularFactor(float x, float y, float z) override;
void setAllowSleep(bool v) override;

View File

@@ -82,6 +82,10 @@ void RigidBody::setAngularDamping(float v) {
_impl->setAngularDamping(v);
}
void RigidBody::useCCD(bool v) {
_impl->useCCD(v);
}
void RigidBody::useGravity(bool v) {
_impl->useGravity(v);
}

View File

@@ -48,6 +48,7 @@ public:
void setLinearDamping(float v) override;
void setAngularDamping(float v) override;
void useGravity(bool v) override;
void useCCD(bool v) override;
void setLinearFactor(float x, float y, float z) override;
void setAngularFactor(float x, float y, float z) override;
void setAllowSleep(bool v) override;

View File

@@ -50,7 +50,8 @@ public:
virtual void setMass(float v) = 0;
virtual void setLinearDamping(float v) = 0;
virtual void setAngularDamping(float v) = 0;
virtual void useGravity(bool v) = 0;
virtual void useGravity(bool v) = 0;
virtual void useCCD(bool v) = 0;
virtual void setLinearFactor(float x, float y, float z) = 0;
virtual void setAngularFactor(float x, float y, float z) = 0;
virtual void setAllowSleep(bool v) = 0;