diff --git a/src/modules/physics/box2d/Joint.cpp b/src/modules/physics/box2d/Joint.cpp index a32f97372..14f617489 100644 --- a/src/modules/physics/box2d/Joint.cpp +++ b/src/modules/physics/box2d/Joint.cpp @@ -111,6 +111,11 @@ namespace box2d if (joint != NULL) world->world->DestroyJoint(joint); } + + bool Joint::isActive() const + { + return joint->IsActive(); + } } // box2d } // physics diff --git a/src/modules/physics/box2d/Joint.h b/src/modules/physics/box2d/Joint.h index f05beb735..ea6fe9b09 100644 --- a/src/modules/physics/box2d/Joint.h +++ b/src/modules/physics/box2d/Joint.h @@ -98,6 +98,8 @@ namespace box2d * Gets the reaction torque on body2. **/ float getReactionTorque(float dt); + + bool isActive() const; protected: diff --git a/src/modules/physics/box2d/MouseJoint.cpp b/src/modules/physics/box2d/MouseJoint.cpp index e3f239b8b..5fee8b23f 100644 --- a/src/modules/physics/box2d/MouseJoint.cpp +++ b/src/modules/physics/box2d/MouseJoint.cpp @@ -69,6 +69,26 @@ namespace box2d { return joint->GetMaxForce(); } + + void MouseJoint::setFrequency(float hz) + { + joint->SetFrequency(hz); + } + + float MouseJoint::getFrequency() const + { + return joint->GetFrequency(); + } + + void MouseJoint::setDampingRatio(float d) + { + joint->SetDampingRatio(d); + } + + float MouseJoint::getDampingRatio() const + { + return joint->GetDampingRatio(); + } } // box2d } // physics diff --git a/src/modules/physics/box2d/MouseJoint.h b/src/modules/physics/box2d/MouseJoint.h index 083b23b91..6b1429001 100644 --- a/src/modules/physics/box2d/MouseJoint.h +++ b/src/modules/physics/box2d/MouseJoint.h @@ -74,6 +74,28 @@ namespace box2d * to move the candidate body. **/ float getMaxForce() const; + + /** + * Sets the response speed. + **/ + void setFrequency(float hz); + + /** + * Gets the response speed. + **/ + float getFrequency() const; + + /** + * Sets the damping ratio. + * 0 = no damping, 1 = critical damping. + **/ + void setDampingRatio(float d); + + /** + * Gets the damping ratio. + * 0 = no damping, 1 = critical damping. + **/ + float getDampingRatio() const; }; } // box2d diff --git a/src/modules/physics/box2d/PrismaticJoint.h b/src/modules/physics/box2d/PrismaticJoint.h index 6a0fb3b1b..b7f96ed3d 100644 --- a/src/modules/physics/box2d/PrismaticJoint.h +++ b/src/modules/physics/box2d/PrismaticJoint.h @@ -63,7 +63,7 @@ namespace box2d /** * Enable/disable the joint motor. **/ - void setMotorEnabled(bool motor); + void enableMotor(bool motor); /** * Checks whether the motor is enabled. @@ -93,12 +93,12 @@ namespace box2d /** * Enable/disable the joint limit. **/ - void setLimitsEnabled(bool limit); + void enableLimit(bool limit); /** * Checks whether limits are enabled. **/ - bool isLimitsEnabled() const; + bool isLimitEnabled() const; /** * Sets the upper limit, usually in meters. diff --git a/src/modules/physics/box2d/PulleyJoint.h b/src/modules/physics/box2d/PulleyJoint.h index 9e16e8c33..a352c738a 100644 --- a/src/modules/physics/box2d/PulleyJoint.h +++ b/src/modules/physics/box2d/PulleyJoint.h @@ -66,11 +66,6 @@ namespace box2d **/ float getLength2() const; - /** - * Sets the pulley ratio. - **/ - void setRatio(float ratio); - /** * Gets the pulley ratio. **/ diff --git a/src/modules/physics/box2d/RevoluteJoint.cpp b/src/modules/physics/box2d/RevoluteJoint.cpp index 01276ca80..d725efa6e 100644 --- a/src/modules/physics/box2d/RevoluteJoint.cpp +++ b/src/modules/physics/box2d/RevoluteJoint.cpp @@ -56,7 +56,7 @@ namespace box2d return joint->GetJointSpeed(); } - void RevoluteJoint::setMotorEnabled(bool motor) + void RevoluteJoint::enableMotor(bool motor) { return joint->EnableMotor(motor); } @@ -86,12 +86,12 @@ namespace box2d return joint->GetMotorTorque(); } - void RevoluteJoint::setLimitsEnabled(bool limit) + void RevoluteJoint::enableLimit(bool limit) { joint->EnableLimit(limit); } - bool RevoluteJoint::isLimitsEnabled() const + bool RevoluteJoint::isLimitEnabled() const { return joint->IsLimitEnabled(); } diff --git a/src/modules/physics/box2d/RevoluteJoint.h b/src/modules/physics/box2d/RevoluteJoint.h index 359caa7fb..51acf26fe 100644 --- a/src/modules/physics/box2d/RevoluteJoint.h +++ b/src/modules/physics/box2d/RevoluteJoint.h @@ -63,7 +63,7 @@ namespace box2d /** * Enable/disable the joint motor. **/ - void setMotorEnabled(bool motor); + void enableMotor(bool motor); /** * Checks whether the motor is enabled. @@ -93,12 +93,12 @@ namespace box2d /** * Enable/disable the joint limit. **/ - void setLimitsEnabled(bool limit); + void enableLimit(bool limit); /** * Checks whether limits are enabled. **/ - bool isLimitsEnabled() const; + bool isLimitEnabled() const; /** * Sets the upper limit in degrees. diff --git a/src/modules/physics/box2d/wrap_DistanceJoint.cpp b/src/modules/physics/box2d/wrap_DistanceJoint.cpp index ac36b536b..94eeaa28c 100644 --- a/src/modules/physics/box2d/wrap_DistanceJoint.cpp +++ b/src/modules/physics/box2d/wrap_DistanceJoint.cpp @@ -81,8 +81,8 @@ namespace box2d { "getLength", w_DistanceJoint_getLength }, { "setFrequency", w_DistanceJoint_setFrequency }, { "getFrequency", w_DistanceJoint_getFrequency }, - { "setDamping", w_DistanceJoint_setDampingRatio }, - { "getDamping", w_DistanceJoint_getDampingRatio }, + { "setDampingRatio", w_DistanceJoint_setDampingRatio }, + { "getDampingRatio", w_DistanceJoint_getDampingRatio }, // From Joint. { "getType", w_Joint_getType }, { "getAnchors", w_Joint_getAnchors }, diff --git a/src/modules/physics/box2d/wrap_MouseJoint.cpp b/src/modules/physics/box2d/wrap_MouseJoint.cpp index 49b292e8a..8739b35f9 100644 --- a/src/modules/physics/box2d/wrap_MouseJoint.cpp +++ b/src/modules/physics/box2d/wrap_MouseJoint.cpp @@ -61,12 +61,46 @@ namespace box2d lua_pushnumber(L, t->getMaxForce()); return 1; } + + int w_MouseJoint_setFrequency(lua_State * L) + { + MouseJoint * t = luax_checkmousejoint(L, 1); + float arg1 = (float)luaL_checknumber(L, 2); + t->setFrequency(arg1); + return 0; + } + + int w_MouseJoint_getFrequency(lua_State * L) + { + MouseJoint * t = luax_checkmousejoint(L, 1); + lua_pushnumber(L, t->getFrequency()); + return 1; + } + + int w_MouseJoint_setDampingRatio(lua_State * L) + { + MouseJoint * t = luax_checkmousejoint(L, 1); + float arg1 = (float)luaL_checknumber(L, 2); + t->setDampingRatio(arg1); + return 0; + } + + int w_MouseJoint_getDampingRatio(lua_State * L) + { + MouseJoint * t = luax_checkmousejoint(L, 1); + lua_pushnumber(L, t->getDampingRatio()); + return 1; + } static const luaL_Reg functions[] = { { "setTarget", w_MouseJoint_setTarget }, { "getTarget", w_MouseJoint_getTarget }, { "setMaxForce", w_MouseJoint_setMaxForce }, { "getMaxForce", w_MouseJoint_getMaxForce }, + { "setFrequency", w_MouseJoint_setFrequency }, + { "getFrequency", w_MouseJoint_getFrequency }, + { "setDampingRatio", w_MouseJoint_setDampingRatio }, + { "getDampingRatio", w_MouseJoint_getDampingRatio }, // From Joint. { "getType", w_Joint_getType }, { "getAnchors", w_Joint_getAnchors }, diff --git a/src/modules/physics/box2d/wrap_MouseJoint.h b/src/modules/physics/box2d/wrap_MouseJoint.h index 0d261e678..6b99311f4 100644 --- a/src/modules/physics/box2d/wrap_MouseJoint.h +++ b/src/modules/physics/box2d/wrap_MouseJoint.h @@ -37,6 +37,10 @@ namespace box2d int w_MouseJoint_getTarget(lua_State * L); int w_MouseJoint_setMaxForce(lua_State * L); int w_MouseJoint_getMaxForce(lua_State * L); + int w_MouseJoint_setFrequency(lua_State * L); + int w_MouseJoint_getFrequency(lua_State * L); + int w_MouseJoint_setDampingRatio(lua_State * L); + int w_MouseJoint_getDampingRatio(lua_State * L); int luaopen_mousejoint(lua_State * L); } // box2d diff --git a/src/modules/physics/box2d/wrap_PrismaticJoint.cpp b/src/modules/physics/box2d/wrap_PrismaticJoint.cpp index 80146caac..2981af5f2 100644 --- a/src/modules/physics/box2d/wrap_PrismaticJoint.cpp +++ b/src/modules/physics/box2d/wrap_PrismaticJoint.cpp @@ -45,11 +45,11 @@ namespace box2d return 1; } - int w_PrismaticJoint_setMotorEnabled(lua_State * L) + int w_PrismaticJoint_enableMotor(lua_State * L) { PrismaticJoint * t = luax_checkprismaticjoint(L, 1); bool arg1 = luax_toboolean(L, 2); - t->setMotorEnabled(arg1); + t->enableMotor(arg1); return 0; } @@ -90,18 +90,18 @@ namespace box2d return 1; } - int w_PrismaticJoint_setLimitsEnabled(lua_State * L) + int w_PrismaticJoint_enableLimit(lua_State * L) { PrismaticJoint * t = luax_checkprismaticjoint(L, 1); bool arg1 = luax_toboolean(L, 2); - t->setLimitsEnabled(arg1); + t->enableLimit(arg1); return 0; } - int w_PrismaticJoint_isLimitsEnabled(lua_State * L) + int w_PrismaticJoint_isLimitEnabled(lua_State * L) { PrismaticJoint * t = luax_checkprismaticjoint(L, 1); - luax_pushboolean(L, t->isLimitsEnabled()); + luax_pushboolean(L, t->isLimitEnabled()); return 1; } @@ -154,14 +154,14 @@ namespace box2d static const luaL_Reg functions[] = { { "getJointTranslation", w_PrismaticJoint_getJointTranslation }, { "getJointSpeed", w_PrismaticJoint_getJointSpeed }, - { "setMotorEnabled", w_PrismaticJoint_setMotorEnabled }, + { "enableMotor", w_PrismaticJoint_enableMotor }, { "isMotorEnabled", w_PrismaticJoint_isMotorEnabled }, { "setMaxMotorForce", w_PrismaticJoint_setMaxMotorForce }, { "setMotorSpeed", w_PrismaticJoint_setMotorSpeed }, { "getMotorSpeed", w_PrismaticJoint_getMotorSpeed }, { "getMotorForce", w_PrismaticJoint_getMotorForce }, - { "setLimitsEnabled", w_PrismaticJoint_setLimitsEnabled }, - { "isLimitsEnabled", w_PrismaticJoint_isLimitsEnabled }, + { "enableLimit", w_PrismaticJoint_enableLimit }, + { "isLimitEnabled", w_PrismaticJoint_isLimitEnabled }, { "setUpperLimit", w_PrismaticJoint_setUpperLimit }, { "setLowerLimit", w_PrismaticJoint_setLowerLimit }, { "setLimits", w_PrismaticJoint_setLimits }, diff --git a/src/modules/physics/box2d/wrap_PrismaticJoint.h b/src/modules/physics/box2d/wrap_PrismaticJoint.h index d420e26cb..203edaea7 100644 --- a/src/modules/physics/box2d/wrap_PrismaticJoint.h +++ b/src/modules/physics/box2d/wrap_PrismaticJoint.h @@ -35,14 +35,14 @@ namespace box2d PrismaticJoint * luax_checkprismaticjoint(lua_State * L, int idx); int w_PrismaticJoint_getJointTranslation(lua_State * L); int w_PrismaticJoint_getJointSpeed(lua_State * L); - int w_PrismaticJoint_setMotorEnabled(lua_State * L); + int w_PrismaticJoint_enableMotor(lua_State * L); int w_PrismaticJoint_isMotorEnabled(lua_State * L); int w_PrismaticJoint_setMaxMotorForce(lua_State * L); int w_PrismaticJoint_setMotorSpeed(lua_State * L); int w_PrismaticJoint_getMotorSpeed(lua_State * L); int w_PrismaticJoint_getMotorForce(lua_State * L); - int w_PrismaticJoint_setLimitsEnabled(lua_State * L); - int w_PrismaticJoint_isLimitsEnabled(lua_State * L); + int w_PrismaticJoint_enableLimit(lua_State * L); + int w_PrismaticJoint_isLimitEnabled(lua_State * L); int w_PrismaticJoint_setUpperLimit(lua_State * L); int w_PrismaticJoint_setLowerLimit(lua_State * L); int w_PrismaticJoint_setLimits(lua_State * L); diff --git a/src/modules/physics/box2d/wrap_RevoluteJoint.cpp b/src/modules/physics/box2d/wrap_RevoluteJoint.cpp index 6545d125e..3e87b5b4e 100644 --- a/src/modules/physics/box2d/wrap_RevoluteJoint.cpp +++ b/src/modules/physics/box2d/wrap_RevoluteJoint.cpp @@ -45,11 +45,11 @@ namespace box2d return 1; } - int w_RevoluteJoint_setMotorEnabled(lua_State * L) + int w_RevoluteJoint_enableMotor(lua_State * L) { RevoluteJoint * t = luax_checkrevolutejoint(L, 1); bool arg1 = luax_toboolean(L, 2); - t->setMotorEnabled(arg1); + t->enableMotor(arg1); return 0; } @@ -90,18 +90,18 @@ namespace box2d return 1; } - int w_RevoluteJoint_setLimitsEnabled(lua_State * L) + int w_RevoluteJoint_enableLimit(lua_State * L) { RevoluteJoint * t = luax_checkrevolutejoint(L, 1); bool arg1 = luax_toboolean(L, 2); - t->setLimitsEnabled(arg1); + t->enableLimit(arg1); return 0; } - int w_RevoluteJoint_isLimitsEnabled(lua_State * L) + int w_RevoluteJoint_isLimitEnabled(lua_State * L) { RevoluteJoint * t = luax_checkrevolutejoint(L, 1); - luax_pushboolean(L, t->isLimitsEnabled()); + luax_pushboolean(L, t->isLimitEnabled()); return 1; } @@ -154,14 +154,14 @@ namespace box2d static const luaL_Reg functions[] = { { "getJointAngle", w_RevoluteJoint_getJointAngle }, { "getJointSpeed", w_RevoluteJoint_getJointSpeed }, - { "setMotorEnabled", w_RevoluteJoint_setMotorEnabled }, + { "enableMotor", w_RevoluteJoint_enableMotor }, { "isMotorEnabled", w_RevoluteJoint_isMotorEnabled }, { "setMaxMotorTorque", w_RevoluteJoint_setMaxMotorTorque }, { "setMotorSpeed", w_RevoluteJoint_setMotorSpeed }, { "getMotorSpeed", w_RevoluteJoint_getMotorSpeed }, { "getMotorTorque", w_RevoluteJoint_getMotorTorque }, - { "setLimitsEnabled", w_RevoluteJoint_setLimitsEnabled }, - { "isLimitsEnabled", w_RevoluteJoint_isLimitsEnabled }, + { "enableLimit", w_RevoluteJoint_enableLimit }, + { "isLimitEnabled", w_RevoluteJoint_isLimitEnabled }, { "setUpperLimit", w_RevoluteJoint_setUpperLimit }, { "setLowerLimit", w_RevoluteJoint_setLowerLimit }, { "setLimits", w_RevoluteJoint_setLimits }, diff --git a/src/modules/physics/box2d/wrap_RevoluteJoint.h b/src/modules/physics/box2d/wrap_RevoluteJoint.h index ad03ce4e1..1e13aec3a 100644 --- a/src/modules/physics/box2d/wrap_RevoluteJoint.h +++ b/src/modules/physics/box2d/wrap_RevoluteJoint.h @@ -35,14 +35,14 @@ namespace box2d RevoluteJoint * luax_checkrevolutejoint(lua_State * L, int idx); int w_RevoluteJoint_getJointAngle(lua_State * L); int w_RevoluteJoint_getJointSpeed(lua_State * L); - int w_RevoluteJoint_setMotorEnabled(lua_State * L); + int w_RevoluteJoint_enableMotor(lua_State * L); int w_RevoluteJoint_isMotorEnabled(lua_State * L); int w_RevoluteJoint_setMaxMotorTorque(lua_State * L); int w_RevoluteJoint_setMotorSpeed(lua_State * L); int w_RevoluteJoint_getMotorSpeed(lua_State * L); int w_RevoluteJoint_getMotorTorque(lua_State * L); - int w_RevoluteJoint_setLimitsEnabled(lua_State * L); - int w_RevoluteJoint_isLimitsEnabled(lua_State * L); + int w_RevoluteJoint_enableLimit(lua_State * L); + int w_RevoluteJoint_isLimitEnabled(lua_State * L); int w_RevoluteJoint_setUpperLimit(lua_State * L); int w_RevoluteJoint_setLowerLimit(lua_State * L); int w_RevoluteJoint_setLimits(lua_State * L);