diff --git a/OdeWorld.cc b/OdeWorld.cc index 96acb03..342c2a9 100644 --- a/OdeWorld.cc +++ b/OdeWorld.cc @@ -108,6 +108,13 @@ void OdeWorld::enableAllBodies() } } +dJointID OdeWorld::createAMotor(dBodyID b1, dBodyID b2) +{ + dJointID j = dJointCreateAMotor(m_world, 0); + dJointAttach(j, b1, b2); + return j; +} + void OdeWorld::destroyBody(dBodyID body) { m_bodies.erase(body); diff --git a/OdeWorld.h b/OdeWorld.h index 8c2b900..f47db25 100644 --- a/OdeWorld.h +++ b/OdeWorld.h @@ -72,6 +72,31 @@ class OdeWorld void step(); void enableAllBodies(); dWorldID getWorldID() { return m_world; } + dJointID createAMotor(dBodyID b1, dBodyID b2); + void setAMotorNumAxes(dJointID j, int num_axes) + { + dJointSetAMotorNumAxes(j, num_axes); + } + void setAMotorLoStop(dJointID j, dReal val) + { + dJointSetAMotorParam(j, dParamLoStop, val); + } + void setAMotorHiStop(dJointID j, dReal val) + { + dJointSetAMotorParam(j, dParamHiStop, val); + } + void setAMotorVel(dJointID j, dReal val) + { + dJointSetAMotorParam(j, dParamVel, val); + } + void setAMotorFMax(dJointID j, dReal val) + { + dJointSetAMotorParam(j, dParamFMax, val); + } + void setAMotorBounce(dJointID j, dReal val) + { + dJointSetAMotorParam(j, dParamBounce, val); + } friend void OdeWorld_collide_callback(void * data, dGeomID o1, dGeomID o2);