From 22f8c1b0a35e8c7d581813a2372424665d948e90 Mon Sep 17 00:00:00 2001 From: Lynix Date: Thu, 23 Apr 2015 14:22:58 +0200 Subject: [PATCH] Physics/PhysObject: Added Set(Angular)Velocity methods Former-commit-id: cd506b93ad3be1f2c5972b784bef53e02a9211ef --- include/Nazara/Physics/PhysObject.hpp | 2 ++ src/Nazara/Physics/PhysObject.cpp | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/include/Nazara/Physics/PhysObject.hpp b/include/Nazara/Physics/PhysObject.hpp index 92c71a2bb..d6ede942c 100644 --- a/include/Nazara/Physics/PhysObject.hpp +++ b/include/Nazara/Physics/PhysObject.hpp @@ -49,12 +49,14 @@ class NAZARA_API NzPhysObject : NzNonCopyable bool IsMoveable() const; bool IsSleeping() const; + void SetAngularVelocity(const NzVector3f& angularVelocity); void SetGeom(NzPhysGeomRef geom); void SetGravityFactor(float gravityFactor); void SetMass(float mass); void SetMassCenter(const NzVector3f& center); void SetPosition(const NzVector3f& position); void SetRotation(const NzQuaternionf& rotation); + void SetVelocity(const NzVector3f& velocity); NzPhysObject& operator=(const NzPhysObject& object); NzPhysObject& operator=(NzPhysObject&& object); diff --git a/src/Nazara/Physics/PhysObject.cpp b/src/Nazara/Physics/PhysObject.cpp index 5b0e34c24..74f9f0c15 100644 --- a/src/Nazara/Physics/PhysObject.cpp +++ b/src/Nazara/Physics/PhysObject.cpp @@ -217,6 +217,11 @@ bool NzPhysObject::IsSleeping() const return NewtonBodyGetSleepState(m_body) != 0; } +void NzPhysObject::SetAngularVelocity(const NzVector3f& angularVelocity) +{ + NewtonBodySetOmega(m_body, angularVelocity); +} + void NzPhysObject::SetGeom(NzPhysGeomRef geom) { if (m_geom != geom) @@ -276,6 +281,11 @@ void NzPhysObject::SetRotation(const NzQuaternionf& rotation) UpdateBody(); } +void NzPhysObject::SetVelocity(const NzVector3f& velocity) +{ + NewtonBodySetVelocity(m_body, velocity); +} + NzPhysObject& NzPhysObject::operator=(const NzPhysObject& object) { NzPhysObject physObj(object);