mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 01:44:06 -04:00
More PyODE-like feedback system
This commit is contained in:
parent
34729b3495
commit
5d5a131026
@ -52,6 +52,20 @@ get_joint_type() const {
|
||||
return dJointGetType(_id);
|
||||
}
|
||||
|
||||
INLINE void OdeJoint::
|
||||
set_feedback(bool flag) {
|
||||
if (flag) {
|
||||
if (dJointGetFeedback(_id) != NULL) {
|
||||
return;
|
||||
}
|
||||
OdeJointFeedback* feedback = new OdeJointFeedback;
|
||||
dJointSetFeedback(_id, (dJointFeedback*) feedback);
|
||||
} else if (dJointFeedback* feedback = dJointGetFeedback(_id)) {
|
||||
dJointSetFeedback(_id, NULL);
|
||||
delete feedback;
|
||||
}
|
||||
}
|
||||
|
||||
INLINE void OdeJoint::
|
||||
set_feedback(OdeJointFeedback *feedback) {
|
||||
dJointSetFeedback(_id, feedback);
|
||||
|
@ -23,14 +23,13 @@
|
||||
#include "odeWorld.h" // Needed for derived classes
|
||||
#include "odeJointGroup.h"
|
||||
|
||||
BEGIN_PUBLISH
|
||||
class EXPCL_PANDAODE OdeJointFeedback : public dJointFeedback {
|
||||
PUBLISHED:
|
||||
INLINE const LVector3f get_force1() const { return LVector3f(f1[0], f1[1], f1[2]); };
|
||||
INLINE const LVector3f get_force2() const { return LVector3f(f2[0], f2[1], f2[2]); };
|
||||
INLINE const LVector3f get_torque1() const { return LVector3f(t1[0], t1[1], t1[2]); };
|
||||
INLINE const LVector3f get_torque2() const { return LVector3f(t2[0], t2[1], t2[2]); };
|
||||
};
|
||||
END_PUBLISH
|
||||
|
||||
// Strange, we should be forced to include this by get_body()
|
||||
class OdeBody;
|
||||
@ -85,6 +84,7 @@ PUBLISHED:
|
||||
INLINE int get_joint_type() const;
|
||||
OdeBody get_body(int index) const;
|
||||
INLINE void set_feedback(OdeJointFeedback *);
|
||||
INLINE void set_feedback(bool flag = true);
|
||||
INLINE OdeJointFeedback *get_feedback();
|
||||
|
||||
void attach_bodies(const OdeBody &body1, const OdeBody &body2);
|
||||
|
Loading…
x
Reference in New Issue
Block a user