85 lines
1.7 KiB
Text
85 lines
1.7 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 odeJoint.I
|
||
|
* @author joswilso
|
||
|
* @date 2006-12-27
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Returns true if the ID is 0, meaning the OdeJoint does not point to a valid
|
||
|
* joint. It is an error to call a method on an empty joint. Note that an
|
||
|
* empty OdeJoint also evaluates to False.
|
||
|
*/
|
||
|
INLINE bool OdeJoint::
|
||
|
is_empty() const {
|
||
|
return (_id == 0);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the underlying dJointID.
|
||
|
*/
|
||
|
INLINE dJointID OdeJoint::
|
||
|
get_id() const {
|
||
|
return _id;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
INLINE void OdeJoint::
|
||
|
set_data(void *data) {
|
||
|
dJointSetData(_id, data);
|
||
|
}
|
||
|
|
||
|
INLINE void *OdeJoint::
|
||
|
get_data() {
|
||
|
return dJointGetData(_id);
|
||
|
}
|
||
|
*/
|
||
|
|
||
|
INLINE int OdeJoint::
|
||
|
get_joint_type() const {
|
||
|
return dJointGetType(_id);
|
||
|
}
|
||
|
|
||
|
INLINE void OdeJoint::
|
||
|
set_feedback(bool flag) {
|
||
|
if (flag) {
|
||
|
if (dJointGetFeedback(_id) != nullptr) {
|
||
|
return;
|
||
|
}
|
||
|
OdeJointFeedback* feedback = new OdeJointFeedback;
|
||
|
dJointSetFeedback(_id, (dJointFeedback*) feedback);
|
||
|
} else if (dJointFeedback* feedback = dJointGetFeedback(_id)) {
|
||
|
dJointSetFeedback(_id, nullptr);
|
||
|
delete feedback;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
INLINE void OdeJoint::
|
||
|
set_feedback(OdeJointFeedback *feedback) {
|
||
|
dJointSetFeedback(_id, feedback);
|
||
|
}
|
||
|
|
||
|
INLINE OdeJointFeedback *OdeJoint::
|
||
|
get_feedback() {
|
||
|
return (OdeJointFeedback*) dJointGetFeedback(_id);
|
||
|
}
|
||
|
|
||
|
INLINE int OdeJoint::
|
||
|
compare_to(const OdeJoint &other) const {
|
||
|
if (_id != other._id) {
|
||
|
return _id < other._id ? -1 : 1;
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
INLINE bool OdeJoint::
|
||
|
operator == (const OdeJoint &other) const {
|
||
|
return _id == other._id;
|
||
|
}
|