mirror of
https://github.com/cocos/cocos-engine.git
synced 2026-10-02 21:51:34 +08:00
support ccd (#3757)
This commit is contained in:
@@ -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.);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user