historical/toontown-classic.git/panda/include/odeHinge2Joint.I

344 lines
8.6 KiB
Text
Raw Normal View History

2024-01-16 11:20:27 -06:00
/**
* 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 odeHinge2Joint.I
* @author joswilso
* @date 2006-12-27
*/
INLINE void OdeHinge2Joint::
set_anchor(dReal x, dReal y, dReal z) {
dJointSetHinge2Anchor(_id, x, y, z);
}
INLINE void OdeHinge2Joint::
set_anchor(const LVecBase3f &anchor) {
dJointSetHinge2Anchor(_id, anchor[0], anchor[1], anchor[2]);
}
INLINE void OdeHinge2Joint::
set_axis1(dReal x, dReal y, dReal z) {
dJointSetHinge2Axis1(_id, x, y, z);
}
INLINE void OdeHinge2Joint::
set_axis1(const LVecBase3f &axis) {
dJointSetHinge2Axis1(_id, axis[0], axis[1], axis[2]);
}
INLINE void OdeHinge2Joint::
set_axis2(dReal x, dReal y, dReal z) {
dJointSetHinge2Axis2(_id, x, y, z);
}
INLINE void OdeHinge2Joint::
set_axis2(const LVecBase3f &axis) {
dJointSetHinge2Axis2(_id, axis[0], axis[1], axis[2]);
}
INLINE void OdeHinge2Joint::
add_torques(dReal torque1, dReal torque2) {
dJointAddHinge2Torques(_id, torque1, torque2);
}
INLINE LVecBase3f OdeHinge2Joint::
get_anchor() const {
dVector3 result;
dJointGetHinge2Anchor(_id, result);
return LVecBase3f(result[0], result[1], result[2]);
}
INLINE LVecBase3f OdeHinge2Joint::
get_anchor2() const {
dVector3 result;
dJointGetHinge2Anchor2(_id, result);
return LVecBase3f(result[0], result[1], result[2]);
}
INLINE LVecBase3f OdeHinge2Joint::
get_axis1() const {
dVector3 result;
dJointGetHinge2Axis1(_id, result);
return LVecBase3f(result[0], result[1], result[2]);
}
INLINE LVecBase3f OdeHinge2Joint::
get_axis2() const {
dVector3 result;
dJointGetHinge2Axis2(_id, result);
return LVecBase3f(result[0], result[1], result[2]);
}
INLINE dReal OdeHinge2Joint::
get_angle1() const {
return dJointGetHinge2Angle1(_id);
}
INLINE dReal OdeHinge2Joint::
get_angle1_rate() const {
return dJointGetHinge2Angle1Rate(_id);
}
INLINE dReal OdeHinge2Joint::
get_angle2_rate() const {
return dJointGetHinge2Angle2Rate(_id);
}
INLINE void OdeHinge2Joint::
set_param_lo_stop(int axis, dReal val) {
nassertv( _id != 0 );
nassertv( 0 <= axis && axis <= 1 );
if ( axis == 0 ) {
dJointSetHinge2Param(_id, dParamLoStop, val);
} else if ( axis == 1 ) {
dJointSetHinge2Param(_id, dParamLoStop2, val);
}
}
INLINE void OdeHinge2Joint::
set_param_hi_stop(int axis, dReal val) {
nassertv( _id != 0 );
nassertv( 0 <= axis && axis <= 1 );
if ( axis == 0 ) {
dJointSetHinge2Param(_id, dParamHiStop, val);
} else if ( axis == 1 ) {
dJointSetHinge2Param(_id, dParamHiStop2, val);
}
}
INLINE void OdeHinge2Joint::
set_param_vel(int axis, dReal val) {
nassertv( _id != 0 );
nassertv( 0 <= axis && axis <= 1 );
if ( axis == 0 ) {
dJointSetHinge2Param(_id, dParamVel, val);
} else if ( axis == 1 ) {
dJointSetHinge2Param(_id, dParamVel2, val);
}
}
INLINE void OdeHinge2Joint::
set_param_f_max(int axis, dReal val) {
nassertv( _id != 0 );
nassertv( 0 <= axis && axis <= 1 );
if ( axis == 0 ) {
dJointSetHinge2Param(_id, dParamFMax, val);
} else if ( axis == 1 ) {
dJointSetHinge2Param(_id, dParamFMax2, val);
}
}
INLINE void OdeHinge2Joint::
set_param_fudge_factor(int axis, dReal val) {
nassertv( _id != 0 );
nassertv( 0 <= axis && axis <= 1 );
if ( axis == 0 ) {
dJointSetHinge2Param(_id, dParamFudgeFactor, val);
} else if ( axis == 1 ) {
dJointSetHinge2Param(_id, dParamFudgeFactor2, val);
}
}
INLINE void OdeHinge2Joint::
set_param_bounce(int axis, dReal val) {
nassertv( _id != 0 );
nassertv( 0 <= axis && axis <= 1 );
if ( axis == 0 ) {
dJointSetHinge2Param(_id, dParamBounce, val);
} else if ( axis == 1 ) {
dJointSetHinge2Param(_id, dParamBounce2, val);
}
}
INLINE void OdeHinge2Joint::
set_param_CFM(int axis, dReal val) {
nassertv( _id != 0 );
nassertv( 0 <= axis && axis <= 1 );
if ( axis == 0 ) {
dJointSetHinge2Param(_id, dParamCFM, val);
} else if ( axis == 1 ) {
dJointSetHinge2Param(_id, dParamCFM2, val);
}
}
INLINE void OdeHinge2Joint::
set_param_stop_ERP(int axis, dReal val) {
nassertv( _id != 0 );
nassertv( 0 <= axis && axis <= 1 );
if ( axis == 0 ) {
dJointSetHinge2Param(_id, dParamStopERP, val);
} else if ( axis == 1 ) {
dJointSetHinge2Param(_id, dParamStopERP2, val);
}
}
INLINE void OdeHinge2Joint::
set_param_stop_CFM(int axis, dReal val) {
nassertv( _id != 0 );
nassertv( 0 <= axis && axis <= 1 );
if ( axis == 0 ) {
dJointSetHinge2Param(_id, dParamStopCFM, val);
} else if ( axis == 1 ) {
dJointSetHinge2Param(_id, dParamStopCFM2, val);
}
}
INLINE void OdeHinge2Joint::
set_param_suspension_ERP(int axis, dReal val) {
nassertv( _id != 0 );
nassertv( 0 <= axis && axis <= 1 );
if ( axis == 0 ) {
dJointSetHinge2Param(_id, dParamSuspensionERP, val);
} else if ( axis == 1 ) {
dJointSetHinge2Param(_id, dParamSuspensionERP2, val);
}
}
INLINE void OdeHinge2Joint::
set_param_suspension_CFM(int axis, dReal val) {
nassertv( _id != 0 );
nassertv( 0 <= axis && axis <= 1 );
if ( axis == 0 ) {
dJointSetHinge2Param(_id, dParamSuspensionCFM, val);
} else if ( axis == 1 ) {
dJointSetHinge2Param(_id, dParamSuspensionCFM2, val);
}
}
INLINE dReal OdeHinge2Joint::
get_param_lo_stop(int axis) const {
nassertr( _id != 0, 0 );
nassertr( 0 <= axis && axis <= 1, 0 );
if ( axis == 0 ) {
return dJointGetHinge2Param(_id, dParamLoStop);
} else if ( axis == 1 ) {
return dJointGetHinge2Param(_id, dParamLoStop2);
}
return 0;
}
INLINE dReal OdeHinge2Joint::
get_param_hi_stop(int axis) const {
nassertr( _id != 0, 0 );
nassertr( 0 <= axis && axis <= 1, 0 );
if ( axis == 0 ) {
return dJointGetHinge2Param(_id, dParamHiStop);
} else if ( axis == 1 ) {
return dJointGetHinge2Param(_id, dParamHiStop2);
}
return 0;
}
INLINE dReal OdeHinge2Joint::
get_param_vel(int axis) const {
nassertr( _id != 0, 0 );
nassertr( 0 <= axis && axis <= 1, 0 );
if ( axis == 0 ) {
return dJointGetHinge2Param(_id, dParamVel);
} else if ( axis == 1 ) {
return dJointGetHinge2Param(_id, dParamVel2);
}
return 0;
}
INLINE dReal OdeHinge2Joint::
get_param_f_max(int axis) const {
nassertr( _id != 0, 0 );
nassertr( 0 <= axis && axis <= 1, 0 );
if ( axis == 0 ) {
return dJointGetHinge2Param(_id, dParamFMax);
} else if ( axis == 1 ) {
return dJointGetHinge2Param(_id, dParamFMax2);
}
return 0;
}
INLINE dReal OdeHinge2Joint::
get_param_fudge_factor(int axis) const {
nassertr( _id != 0, 0 );
nassertr( 0 <= axis && axis <= 1, 0 );
if ( axis == 0 ) {
return dJointGetHinge2Param(_id, dParamFudgeFactor);
} else if ( axis == 1 ) {
return dJointGetHinge2Param(_id, dParamFudgeFactor2);
}
return 0;
}
INLINE dReal OdeHinge2Joint::
get_param_bounce(int axis) const {
nassertr( _id != 0, 0 );
nassertr( 0 <= axis && axis <= 1, 0 );
if ( axis == 0 ) {
return dJointGetHinge2Param(_id, dParamBounce);
} else if ( axis == 1 ) {
return dJointGetHinge2Param(_id, dParamBounce2);
}
return 0;
}
INLINE dReal OdeHinge2Joint::
get_param_CFM(int axis) const {
nassertr( _id != 0, 0 );
nassertr( 0 <= axis && axis <= 1, 0 );
if ( axis == 0 ) {
return dJointGetHinge2Param(_id, dParamCFM);
} else if ( axis == 1 ) {
return dJointGetHinge2Param(_id, dParamCFM2);
}
return 0;
}
INLINE dReal OdeHinge2Joint::
get_param_stop_ERP(int axis) const {
nassertr( _id != 0, 0 );
nassertr( 0 <= axis && axis <= 1, 0 );
if ( axis == 0 ) {
return dJointGetHinge2Param(_id, dParamStopERP);
} else if ( axis == 1 ) {
return dJointGetHinge2Param(_id, dParamStopERP2);
}
return 0;
}
INLINE dReal OdeHinge2Joint::
get_param_stop_CFM(int axis) const {
nassertr( _id != 0, 0 );
nassertr( 0 <= axis && axis <= 1, 0 );
if ( axis == 0 ) {
return dJointGetHinge2Param(_id, dParamStopCFM);
} else if ( axis == 1 ) {
return dJointGetHinge2Param(_id, dParamStopCFM2);
}
return 0;
}
INLINE dReal OdeHinge2Joint::
get_param_suspension_ERP(int axis) const {
nassertr( _id != 0, 0 );
nassertr( 0 <= axis && axis <= 1, 0 );
if ( axis == 0 ) {
return dJointGetHinge2Param(_id, dParamSuspensionERP);
} else if ( axis == 1 ) {
return dJointGetHinge2Param(_id, dParamSuspensionERP2);
}
return 0;
}
INLINE dReal OdeHinge2Joint::
get_param_suspension_CFM(int axis) const {
nassertr( _id != 0, 0 );
nassertr( 0 <= axis && axis <= 1, 0 );
if ( axis == 0 ) {
return dJointGetHinge2Param(_id, dParamSuspensionCFM);
} else if ( axis == 1 ) {
return dJointGetHinge2Param(_id, dParamSuspensionCFM2);
}
return 0;
}