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();
float GetDamping() const;
Vector2f GetGravity() const;
cpSpace* GetHandle() const;
float GetStepSize() const;
@ -55,6 +56,7 @@ namespace Nz
void RegisterCallbacks(unsigned int collisionId, const Callback& callbacks);
void RegisterCallbacks(unsigned int collisionIdA, unsigned int collisionIdB, const Callback& callbacks);
void SetDamping(float dampingValue);
void SetGravity(const Vector2f& gravity);
void SetStepSize(float stepSize);

View File

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