Physics2D/PhysWorld2D: Add damping control

This commit is contained in:
Jérôme Leclercq 2017-09-08 09:41:08 +02:00
parent 15c37d1524
commit b4d0854028
2 changed files with 12 additions and 0 deletions

View File

@ -40,6 +40,7 @@ namespace Nz
PhysWorld2D(PhysWorld2D&&) = delete; ///TODO PhysWorld2D(PhysWorld2D&&) = delete; ///TODO
~PhysWorld2D(); ~PhysWorld2D();
float GetDamping() const;
Vector2f GetGravity() const; Vector2f GetGravity() const;
cpSpace* GetHandle() const; cpSpace* GetHandle() const;
float GetStepSize() const; float GetStepSize() const;
@ -55,6 +56,7 @@ namespace Nz
void RegisterCallbacks(unsigned int collisionId, const Callback& callbacks); void RegisterCallbacks(unsigned int collisionId, const Callback& callbacks);
void RegisterCallbacks(unsigned int collisionIdA, unsigned int collisionIdB, const Callback& callbacks); void RegisterCallbacks(unsigned int collisionIdA, unsigned int collisionIdB, const Callback& callbacks);
void SetDamping(float dampingValue);
void SetGravity(const Vector2f& gravity); void SetGravity(const Vector2f& gravity);
void SetStepSize(float stepSize); void SetStepSize(float stepSize);

View File

@ -21,6 +21,11 @@ namespace Nz
cpSpaceFree(m_handle); cpSpaceFree(m_handle);
} }
float PhysWorld2D::GetDamping() const
{
return float(cpSpaceGetDamping(m_handle));
}
Vector2f PhysWorld2D::GetGravity() const Vector2f PhysWorld2D::GetGravity() const
{ {
cpVect gravity = cpSpaceGetGravity(m_handle); cpVect gravity = cpSpaceGetGravity(m_handle);
@ -159,6 +164,11 @@ namespace Nz
InitCallbacks(cpSpaceAddCollisionHandler(m_handle, collisionIdA, collisionIdB), callbacks); InitCallbacks(cpSpaceAddCollisionHandler(m_handle, collisionIdA, collisionIdB), callbacks);
} }
void PhysWorld2D::SetDamping(float dampingValue)
{
cpSpaceSetDamping(m_handle, dampingValue);
}
void PhysWorld2D::SetGravity(const Vector2f& gravity) void PhysWorld2D::SetGravity(const Vector2f& gravity)
{ {
cpSpaceSetGravity(m_handle, cpv(gravity.x, gravity.y)); cpSpaceSetGravity(m_handle, cpv(gravity.x, gravity.y));