From ce6fcab8f32ba76759177153949846229bd64f8a Mon Sep 17 00:00:00 2001 From: josh Date: Mon, 19 Oct 2009 02:53:52 +0000 Subject: [PATCH] add absolute/relative force/torque addition functions git-svn-id: svn://anubis/misc/OdeWorld@187 bd8a9e45-a331-0410-811e-c64571078777 --- OdeWorld.cc | 24 ++++++++++++++++++++++++ OdeWorld.h | 4 ++++ 2 files changed, 28 insertions(+) diff --git a/OdeWorld.cc b/OdeWorld.cc index fc5f437..00effa2 100644 --- a/OdeWorld.cc +++ b/OdeWorld.cc @@ -509,3 +509,27 @@ void OdeWorld::Object::getPosition(double * x, double * y, double * z) *z = m_position[2]; } } + +void OdeWorld::Object::addForce(dReal fx, dReal fy, dReal fz) +{ + if (m_body != 0) + dBodyAddForce(m_body, fx, fy, fz); +} + +void OdeWorld::Object::addRelForce(dReal fx, dReal fy, dReal fz) +{ + if (m_body != 0) + dBodyAddRelForce(m_body, fx, fy, fz); +} + +void OdeWorld::Object::addTorque(dReal fx, dReal fy, dReal fz) +{ + if (m_body != 0) + dBodyAddTorque(m_body, fx, fy, fz); +} + +void OdeWorld::Object::addRelTorque(dReal fx, dReal fy, dReal fz) +{ + if (m_body != 0) + dBodyAddRelTorque(m_body, fx, fy, fz); +} diff --git a/OdeWorld.h b/OdeWorld.h index 46bdaba..cf199cf 100644 --- a/OdeWorld.h +++ b/OdeWorld.h @@ -33,6 +33,10 @@ class OdeWorld void addCylinder(const std::vector args); void addCCylinder(const std::vector args); void addPlane(const std::vector args); + void addForce(dReal fx, dReal fy, dReal fz); + void addRelForce(dReal fx, dReal fy, dReal fz); + void addTorque(dReal fx, dReal fy, dReal fz); + void addRelTorque(dReal fx, dReal fy, dReal fz); protected: bool m_is_static;