187 lines
4.3 KiB
Text
187 lines
4.3 KiB
Text
|
/**
|
||
|
* 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 odeHingeJoint.I
|
||
|
* @author joswilso
|
||
|
* @date 2006-12-27
|
||
|
*/
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
set_anchor(dReal x, dReal y, dReal z) {
|
||
|
dJointSetHingeAnchor(_id, x, y, z);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
set_anchor(const LVecBase3f &anchor) {
|
||
|
dJointSetHingeAnchor(_id, anchor[0], anchor[1], anchor[2]);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
set_anchor_delta(dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az) {
|
||
|
dJointSetHingeAnchorDelta(_id, x, y, z, ax, ay, az);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
set_anchor_delta(const LVecBase3f &anchor, const LVecBase3f &vec) {
|
||
|
dJointSetHingeAnchorDelta(_id, anchor[0], anchor[1], anchor[2], vec[0], vec[1], vec[2]);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
set_axis(dReal x, dReal y, dReal z) {
|
||
|
dJointSetHingeAxis(_id, x, y, z);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
set_axis(const LVecBase3f &axis) {
|
||
|
dJointSetHingeAxis(_id, axis[0], axis[1], axis[2]);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
add_torque(dReal torque) {
|
||
|
dJointAddHingeTorque(_id, torque);
|
||
|
}
|
||
|
|
||
|
INLINE LVecBase3f OdeHingeJoint::
|
||
|
get_anchor() const {
|
||
|
dVector3 result;
|
||
|
dJointGetHingeAnchor(_id, result);
|
||
|
return LVecBase3f(result[0], result[1], result[2]);
|
||
|
}
|
||
|
|
||
|
INLINE LVecBase3f OdeHingeJoint::
|
||
|
get_anchor2() const {
|
||
|
dVector3 result;
|
||
|
dJointGetHingeAnchor2(_id, result);
|
||
|
return LVecBase3f(result[0], result[1], result[2]);
|
||
|
}
|
||
|
|
||
|
INLINE LVecBase3f OdeHingeJoint::
|
||
|
get_axis() const {
|
||
|
dVector3 result;
|
||
|
dJointGetHingeAxis(_id, result);
|
||
|
return LVecBase3f(result[0], result[1], result[2]);
|
||
|
}
|
||
|
|
||
|
INLINE dReal OdeHingeJoint::
|
||
|
get_angle() const {
|
||
|
return dJointGetHingeAngle(_id);
|
||
|
}
|
||
|
|
||
|
INLINE dReal OdeHingeJoint::
|
||
|
get_angle_rate() const {
|
||
|
return dJointGetHingeAngleRate(_id);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
set_param_lo_stop(dReal val) {
|
||
|
nassertv( _id != 0 );
|
||
|
dJointSetHingeParam(_id, dParamLoStop, val);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
set_param_hi_stop(dReal val) {
|
||
|
nassertv( _id != 0 );
|
||
|
dJointSetHingeParam(_id, dParamHiStop, val);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
set_param_vel(dReal val) {
|
||
|
nassertv( _id != 0 );
|
||
|
dJointSetHingeParam(_id, dParamVel, val);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
set_param_f_max(dReal val) {
|
||
|
nassertv( _id != 0 );
|
||
|
dJointSetHingeParam(_id, dParamFMax, val);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
set_param_fudge_factor(dReal val) {
|
||
|
nassertv( _id != 0 );
|
||
|
dJointSetHingeParam(_id, dParamFudgeFactor, val);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
set_param_bounce(dReal val) {
|
||
|
nassertv( _id != 0 );
|
||
|
dJointSetHingeParam(_id, dParamBounce, val);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
set_param_CFM(dReal val) {
|
||
|
nassertv( _id != 0 );
|
||
|
dJointSetHingeParam(_id, dParamCFM, val);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
set_param_stop_ERP(dReal val) {
|
||
|
nassertv( _id != 0 );
|
||
|
dJointSetHingeParam(_id, dParamStopERP, val);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeHingeJoint::
|
||
|
set_param_stop_CFM(dReal val) {
|
||
|
nassertv( _id != 0 );
|
||
|
dJointSetHingeParam(_id, dParamStopCFM, val);
|
||
|
}
|
||
|
|
||
|
INLINE dReal OdeHingeJoint::
|
||
|
get_param_lo_stop() const {
|
||
|
nassertr( _id != 0, 0 );
|
||
|
return dJointGetHingeParam(_id, dParamLoStop);
|
||
|
}
|
||
|
|
||
|
INLINE dReal OdeHingeJoint::
|
||
|
get_param_hi_stop() const {
|
||
|
nassertr( _id != 0, 0 );
|
||
|
return dJointGetHingeParam(_id, dParamHiStop);
|
||
|
}
|
||
|
|
||
|
INLINE dReal OdeHingeJoint::
|
||
|
get_param_vel() const {
|
||
|
nassertr( _id != 0, 0 );
|
||
|
return dJointGetHingeParam(_id, dParamVel);
|
||
|
}
|
||
|
|
||
|
INLINE dReal OdeHingeJoint::
|
||
|
get_param_f_max() const {
|
||
|
nassertr( _id != 0, 0 );
|
||
|
return dJointGetHingeParam(_id, dParamFMax);
|
||
|
}
|
||
|
|
||
|
INLINE dReal OdeHingeJoint::
|
||
|
get_param_fudge_factor() const {
|
||
|
nassertr( _id != 0, 0 );
|
||
|
return dJointGetHingeParam(_id, dParamFudgeFactor);
|
||
|
}
|
||
|
|
||
|
INLINE dReal OdeHingeJoint::
|
||
|
get_param_bounce() const {
|
||
|
nassertr( _id != 0, 0 );
|
||
|
return dJointGetHingeParam(_id, dParamBounce);
|
||
|
}
|
||
|
|
||
|
INLINE dReal OdeHingeJoint::
|
||
|
get_param_CFM() const {
|
||
|
nassertr( _id != 0, 0 );
|
||
|
return dJointGetHingeParam(_id, dParamCFM);
|
||
|
}
|
||
|
|
||
|
INLINE dReal OdeHingeJoint::
|
||
|
get_param_stop_ERP() const {
|
||
|
nassertr( _id != 0, 0 );
|
||
|
return dJointGetHingeParam(_id, dParamStopERP);
|
||
|
}
|
||
|
|
||
|
INLINE dReal OdeHingeJoint::
|
||
|
get_param_stop_CFM() const {
|
||
|
nassertr( _id != 0, 0 );
|
||
|
return dJointGetHingeParam(_id, dParamStopCFM);
|
||
|
}
|