[Opal-commits] opal/src/ODE ODEJoint.cpp,1.25,1.26 ODEJoint.h,1.29,1.30 ODESolid.cpp,1.71,1.72
Status: Inactive
Brought to you by:
tylerstreeter
|
From: tylerstreeter <tyl...@us...> - 2005-02-26 10:22:34
|
Update of /cvsroot/opal/opal/src/ODE In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27565/src/ODE Modified Files: ODEJoint.cpp ODEJoint.h ODESolid.cpp Log Message: finished overhauling xml loader Index: ODEJoint.h =================================================================== RCS file: /cvsroot/opal/opal/src/ODE/ODEJoint.h,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** ODEJoint.h 25 Feb 2005 06:40:26 -0000 1.29 --- ODEJoint.h 26 Feb 2005 10:22:24 -0000 1.30 *************** *** 49,53 **** virtual void OPAL_CALL init(const JointData& data); ! virtual real OPAL_CALL getState(int axisNum)const; virtual real OPAL_CALL getVelocity(int axisNum)const; --- 49,55 ---- virtual void OPAL_CALL init(const JointData& data); ! virtual real OPAL_CALL getAngle(int axisNum)const; ! ! virtual real OPAL_CALL getDistance(int axisNum)const; virtual real OPAL_CALL getVelocity(int axisNum)const; *************** *** 73,77 **** real value); ! virtual void OPAL_CALL internal_setMaxForce(int axisNum, real value); --- 75,79 ---- real value); ! virtual void OPAL_CALL internal_setMaxTorque(int axisNum, real value); Index: ODESolid.cpp =================================================================== RCS file: /cvsroot/opal/opal/src/ODE/ODESolid.cpp,v retrieving revision 1.71 retrieving revision 1.72 diff -C2 -d -r1.71 -r1.72 *** ODESolid.cpp 25 Feb 2005 06:40:26 -0000 1.71 --- ODESolid.cpp 26 Feb 2005 10:22:24 -0000 1.72 *************** *** 43,46 **** --- 43,47 ---- mSpaceID = spaceID; mIsPlaceable = true; + mCollisionCount = 0; if (!mData.isStatic) *************** *** 53,58 **** } ! setTransform(Matrix44r()); ! mCollisionCount = 0; } --- 54,58 ---- } ! init(mData); } *************** *** 102,105 **** --- 102,107 ---- void ODESolid::init(const SolidData& data) { + // The order of function calls here is important. + // Destroy the old Shapes. mData.destroyShapes(); Index: ODEJoint.cpp =================================================================== RCS file: /cvsroot/opal/opal/src/ODE/ODEJoint.cpp,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** ODEJoint.cpp 25 Feb 2005 06:40:26 -0000 1.25 --- ODEJoint.cpp 26 Feb 2005 10:22:24 -0000 1.26 *************** *** 134,138 **** defaults::ode::jointFudgeFactor); break; ! case HINGE_2_JOINT: // Create an ODE hinge2 Joint. mJointID = dJointCreateHinge2(mWorldID, 0); --- 134,138 ---- defaults::ode::jointFudgeFactor); break; ! case WHEEL_JOINT: // Create an ODE hinge2 Joint. mJointID = dJointCreateHinge2(mWorldID, 0); *************** *** 198,202 **** } ! real ODEJoint::getState(int axisNum)const { assert(axisNum >= 0 && axisNum < mNumAxes); --- 198,202 ---- } ! real ODEJoint::getAngle(int axisNum)const { assert(axisNum >= 0 && axisNum < mNumAxes); *************** *** 226,232 **** break; case SLIDER_JOINT: ! value = (real)dJointGetSliderPosition(mJointID); break; ! case HINGE_2_JOINT: if (0 == axisNum) { --- 226,232 ---- break; case SLIDER_JOINT: ! value = 0; break; ! case WHEEL_JOINT: if (0 == axisNum) { *************** *** 251,254 **** --- 251,289 ---- } + real ODEJoint::getDistance(int axisNum)const + { + assert(axisNum >= 0 && axisNum < mNumAxes); + + real value = 0; + + switch(mData.getType()) + { + case HINGE_JOINT: + value = 0; + break; + case UNIVERSAL_JOINT: + value = 0; + break; + case BALL_JOINT: + value = 0; + break; + case SLIDER_JOINT: + value = (real)dJointGetSliderPosition(mJointID); + break; + case WHEEL_JOINT: + value = 0; + break; + case FIXED_JOINT: + // Fixed Joints don't have any kind of state info. + assert(false); + break; + default: + assert(false); + break; + } + + return value; + } + real ODEJoint::getVelocity(int axisNum)const { *************** *** 281,285 **** value = (real)dJointGetSliderPositionRate(mJointID); break; ! case HINGE_2_JOINT: if (0 == axisNum) { --- 316,320 ---- value = (real)dJointGetSliderPositionRate(mJointID); break; ! case WHEEL_JOINT: if (0 == axisNum) { *************** *** 343,347 **** // ODE's Hinge2 Joint also has a suspension parameter. Use axis 1 // for this since axis 1 doesn't use limits anyway. ! if (1 == axisNum && HINGE_2_JOINT == mData.getType()) { setJointParam(dParamSuspensionERP, value); --- 378,382 ---- // ODE's Hinge2 Joint also has a suspension parameter. Use axis 1 // for this since axis 1 doesn't use limits anyway. ! if (1 == axisNum && WHEEL_JOINT == mData.getType()) { setJointParam(dParamSuspensionERP, value); *************** *** 406,410 **** } ! void ODEJoint::internal_setMaxForce(int axisNum, real value) { assert(axisNum >= 0 && axisNum < mNumAxes); --- 441,445 ---- } ! void ODEJoint::internal_setMaxTorque(int axisNum, real value) { assert(axisNum >= 0 && axisNum < mNumAxes); *************** *** 490,494 **** newAxis[2]); break; ! case HINGE_2_JOINT: if (0 == axisNum) { --- 525,529 ---- newAxis[2]); break; ! case WHEEL_JOINT: if (0 == axisNum) { *************** *** 546,550 **** // Slider Joints don't have an anchor point. break; ! case HINGE_2_JOINT: dJointSetHinge2Anchor(mJointID, newAnchor[0], newAnchor[1], newAnchor[2]); --- 581,585 ---- // Slider Joints don't have an anchor point. break; ! case WHEEL_JOINT: dJointSetHinge2Anchor(mJointID, newAnchor[0], newAnchor[1], newAnchor[2]); *************** *** 740,744 **** dJointSetSliderParam(mJointID, parameter, value); break; ! case HINGE_2_JOINT: dJointSetHinge2Param(mJointID, parameter, value); break; --- 775,779 ---- dJointSetSliderParam(mJointID, parameter, value); break; ! case WHEEL_JOINT: dJointSetHinge2Param(mJointID, parameter, value); break; *************** *** 770,774 **** // value = (real)dJointGetSliderParam(mJointID, parameter); // break; ! // case HINGE_2_JOINT: // value = (real)dJointGetHinge2Param(mJointID, parameter); // break; --- 805,809 ---- // value = (real)dJointGetSliderParam(mJointID, parameter); // break; ! // case WHEEL_JOINT: // value = (real)dJointGetHinge2Param(mJointID, parameter); // break; |