/** * PANDA 3D SOFTWARE * Copyright (c) Carnegie Mellon University. All rights reserved. * * All use of this software is subject to the terms of the revised BSD * license. You should have received a copy of this license along * with this source code in a file named "LICENSE." * * @file odeAMotorJoint.I * @author joswilso * @date 2006-12-27 */ INLINE void OdeAMotorJoint:: set_num_axes(int num) { dJointSetAMotorNumAxes(_id, num); } INLINE void OdeAMotorJoint:: set_axis(int anum, int rel, dReal x, dReal y, dReal z) { dJointSetAMotorAxis(_id, anum, rel, x, y, z); } INLINE void OdeAMotorJoint:: set_axis(int anum, int rel, const LVecBase3f &axis) { dJointSetAMotorAxis(_id, anum, rel, axis[0], axis[1], axis[2]); } INLINE void OdeAMotorJoint:: set_angle(int anum, dReal angle) { dJointSetAMotorAngle(_id, anum, angle); } INLINE void OdeAMotorJoint:: set_mode(int mode) { dJointSetAMotorMode(_id, mode); } INLINE void OdeAMotorJoint:: add_torques(dReal torque1, dReal torque2, dReal torque3) { dJointAddAMotorTorques(_id, torque1, torque2, torque3); } INLINE int OdeAMotorJoint:: get_num_axes() const { return dJointGetAMotorNumAxes(_id); } INLINE LVecBase3f OdeAMotorJoint:: get_axis(int anum) const { dVector3 result; dJointGetAMotorAxis(_id, anum, result); return LVecBase3f(result[0], result[1], result[2]); } INLINE int OdeAMotorJoint:: get_axis_rel(int anum) const { return dJointGetAMotorAxisRel(_id, anum); } INLINE dReal OdeAMotorJoint:: get_angle(int anum) const { return dJointGetAMotorAngle(_id, anum); } INLINE dReal OdeAMotorJoint:: get_angle_rate(int anum) const { return dJointGetAMotorAngleRate(_id, anum); } INLINE int OdeAMotorJoint:: get_mode() const { return dJointGetAMotorMode(_id); } INLINE void OdeAMotorJoint:: set_param_lo_stop(int axis, dReal val) { nassertv( _id != 0 ); nassertv( 0 <= axis && axis <= 2 ); if ( axis == 0 ) { dJointSetAMotorParam(_id, dParamLoStop, val); } else if ( axis == 1 ) { dJointSetAMotorParam(_id, dParamLoStop, val); } else if ( axis == 2 ) { dJointSetAMotorParam(_id, dParamLoStop, val); } } INLINE void OdeAMotorJoint:: set_param_hi_stop(int axis, dReal val) { nassertv( _id != 0 ); nassertv( 0 <= axis && axis <= 2 ); if ( axis == 0 ) { dJointSetAMotorParam(_id, dParamHiStop, val); } else if ( axis == 1 ) { dJointSetAMotorParam(_id, dParamHiStop, val); } else if ( axis == 2 ) { dJointSetAMotorParam(_id, dParamHiStop, val); } } INLINE void OdeAMotorJoint:: set_param_vel(int axis, dReal val) { nassertv( _id != 0 ); nassertv( 0 <= axis && axis <= 2 ); if ( axis == 0 ) { dJointSetAMotorParam(_id, dParamVel, val); } else if ( axis == 1 ) { dJointSetAMotorParam(_id, dParamVel, val); } else if ( axis == 2 ) { dJointSetAMotorParam(_id, dParamVel, val); } } INLINE void OdeAMotorJoint:: set_param_f_max(int axis, dReal val) { nassertv( _id != 0 ); nassertv( 0 <= axis && axis <= 2 ); if ( axis == 0 ) { dJointSetAMotorParam(_id, dParamFMax, val); } else if ( axis == 1 ) { dJointSetAMotorParam(_id, dParamFMax, val); } else if ( axis == 2 ) { dJointSetAMotorParam(_id, dParamFMax, val); } } INLINE void OdeAMotorJoint:: set_param_fudge_factor(int axis, dReal val) { nassertv( _id != 0 ); nassertv( 0 <= axis && axis <= 2 ); if ( axis == 0 ) { dJointSetAMotorParam(_id, dParamFudgeFactor, val); } else if ( axis == 1 ) { dJointSetAMotorParam(_id, dParamFudgeFactor, val); } else if ( axis == 2 ) { dJointSetAMotorParam(_id, dParamFudgeFactor, val); } } INLINE void OdeAMotorJoint:: set_param_bounce(int axis, dReal val) { nassertv( _id != 0 ); nassertv( 0 <= axis && axis <= 2 ); if ( axis == 0 ) { dJointSetAMotorParam(_id, dParamBounce, val); } else if ( axis == 1 ) { dJointSetAMotorParam(_id, dParamBounce, val); } else if ( axis == 2 ) { dJointSetAMotorParam(_id, dParamBounce, val); } } INLINE void OdeAMotorJoint:: set_param_CFM(int axis, dReal val) { nassertv( _id != 0 ); nassertv( 0 <= axis && axis <= 2 ); if ( axis == 0 ) { dJointSetAMotorParam(_id, dParamCFM, val); } else if ( axis == 1 ) { dJointSetAMotorParam(_id, dParamCFM, val); } else if ( axis == 2 ) { dJointSetAMotorParam(_id, dParamCFM, val); } } INLINE void OdeAMotorJoint:: set_param_stop_ERP(int axis, dReal val) { nassertv( _id != 0 ); nassertv( 0 <= axis && axis <= 2 ); if ( axis == 0 ) { dJointSetAMotorParam(_id, dParamStopERP, val); } else if ( axis == 1 ) { dJointSetAMotorParam(_id, dParamStopERP, val); } else if ( axis == 2 ) { dJointSetAMotorParam(_id, dParamStopERP, val); } } INLINE void OdeAMotorJoint:: set_param_stop_CFM(int axis, dReal val) { nassertv( _id != 0 ); nassertv( 0 <= axis && axis <= 2 ); if ( axis == 0 ) { dJointSetAMotorParam(_id, dParamStopCFM, val); } else if ( axis == 1 ) { dJointSetAMotorParam(_id, dParamStopCFM, val); } else if ( axis == 2 ) { dJointSetAMotorParam(_id, dParamStopCFM, val); } } INLINE dReal OdeAMotorJoint:: get_param_lo_stop(int axis) const { nassertr( _id != 0, 0 ); nassertr( 0 <= axis && axis <= 2, 0 ); if ( axis == 0 ) { return dJointGetAMotorParam(_id, dParamLoStop); } else if ( axis == 1 ) { return dJointGetAMotorParam(_id, dParamLoStop); } else if ( axis == 2 ) { return dJointGetAMotorParam(_id, dParamLoStop); } return 0; } INLINE dReal OdeAMotorJoint:: get_param_hi_stop(int axis) const { nassertr( _id != 0, 0 ); nassertr( 0 <= axis && axis <= 2, 0 ); if ( axis == 0 ) { return dJointGetAMotorParam(_id, dParamHiStop); } else if ( axis == 1 ) { return dJointGetAMotorParam(_id, dParamHiStop); } else if ( axis == 2 ) { return dJointGetAMotorParam(_id, dParamHiStop); } return 0; } INLINE dReal OdeAMotorJoint:: get_param_vel(int axis) const { nassertr( _id != 0, 0 ); nassertr( 0 <= axis && axis <= 2, 0 ); if ( axis == 0 ) { return dJointGetAMotorParam(_id, dParamVel); } else if ( axis == 1 ) { return dJointGetAMotorParam(_id, dParamVel); } else if ( axis == 2 ) { return dJointGetAMotorParam(_id, dParamVel); } return 0; } INLINE dReal OdeAMotorJoint:: get_param_f_max(int axis) const { nassertr( _id != 0, 0 ); nassertr( 0 <= axis && axis <= 2, 0 ); if ( axis == 0 ) { return dJointGetAMotorParam(_id, dParamFMax); } else if ( axis == 1 ) { return dJointGetAMotorParam(_id, dParamFMax); } else if ( axis == 2 ) { return dJointGetAMotorParam(_id, dParamFMax); } return 0; } INLINE dReal OdeAMotorJoint:: get_param_fudge_factor(int axis) const { nassertr( _id != 0, 0 ); nassertr( 0 <= axis && axis <= 2, 0 ); if ( axis == 0 ) { return dJointGetAMotorParam(_id, dParamFudgeFactor); } else if ( axis == 1 ) { return dJointGetAMotorParam(_id, dParamFudgeFactor); } else if ( axis == 2 ) { return dJointGetAMotorParam(_id, dParamFudgeFactor); } return 0; } INLINE dReal OdeAMotorJoint:: get_param_bounce(int axis) const { nassertr( _id != 0, 0 ); nassertr( 0 <= axis && axis <= 2, 0 ); if ( axis == 0 ) { return dJointGetAMotorParam(_id, dParamBounce); } else if ( axis == 1 ) { return dJointGetAMotorParam(_id, dParamBounce); } else if ( axis == 2 ) { return dJointGetAMotorParam(_id, dParamBounce); } return 0; } INLINE dReal OdeAMotorJoint:: get_param_CFM(int axis) const { nassertr( _id != 0, 0 ); nassertr( 0 <= axis && axis <= 2, 0 ); if ( axis == 0 ) { return dJointGetAMotorParam(_id, dParamCFM); } else if ( axis == 1 ) { return dJointGetAMotorParam(_id, dParamCFM); } else if ( axis == 2 ) { return dJointGetAMotorParam(_id, dParamCFM); } return 0; } INLINE dReal OdeAMotorJoint:: get_param_stop_ERP(int axis) const { nassertr( _id != 0, 0 ); nassertr( 0 <= axis && axis <= 2, 0 ); if ( axis == 0 ) { return dJointGetAMotorParam(_id, dParamStopERP); } else if ( axis == 1 ) { return dJointGetAMotorParam(_id, dParamStopERP); } else if ( axis == 2 ) { return dJointGetAMotorParam(_id, dParamStopERP); } return 0; } INLINE dReal OdeAMotorJoint:: get_param_stop_CFM(int axis) const { nassertr( _id != 0, 0 ); nassertr( 0 <= axis && axis <= 2, 0 ); if ( axis == 0 ) { return dJointGetAMotorParam(_id, dParamStopCFM); } else if ( axis == 1 ) { return dJointGetAMotorParam(_id, dParamStopCFM); } else if ( axis == 2 ) { return dJointGetAMotorParam(_id, dParamStopCFM); } return 0; }