Browse Source

Fix joint feedback exposure

rdb 16 years ago
parent
commit
cce6604f25
2 changed files with 14 additions and 7 deletions
  1. 3 5
      panda/src/ode/odeJoint.I
  2. 11 2
      panda/src/ode/odeJoint.h

+ 3 - 5
panda/src/ode/odeJoint.I

@@ -52,17 +52,15 @@ get_joint_type() const {
   return dJointGetType(_id);
   return dJointGetType(_id);
 }
 }
 
 
-/*
 INLINE void OdeJoint::
 INLINE void OdeJoint::
-set_feedback(dJointFeedback *feedback) {
+set_feedback(OdeJointFeedback *feedback) {
   dJointSetFeedback(_id, feedback);
   dJointSetFeedback(_id, feedback);
 }
 }
 
 
-INLINE dJointFeedback *OdeJoint::
+INLINE OdeJointFeedback *OdeJoint::
 get_feedback() {
 get_feedback() {
-  return dJointGetFeedback(_id);
+  return (OdeJointFeedback*) dJointGetFeedback(_id);
 }
 }
-*/
 
 
 INLINE int OdeJoint::
 INLINE int OdeJoint::
 compare_to(const OdeJoint &other) const {
 compare_to(const OdeJoint &other) const {

+ 11 - 2
panda/src/ode/odeJoint.h

@@ -23,6 +23,15 @@
 #include "odeWorld.h"      // Needed for derived classes
 #include "odeWorld.h"      // Needed for derived classes
 #include "odeJointGroup.h"
 #include "odeJointGroup.h"
 
 
+BEGIN_PUBLISH
+class EXPCL_PANDAODE OdeJointFeedback : public dJointFeedback {
+  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()
 // Strange, we should be forced to include this by get_body()
 class OdeBody; 
 class OdeBody; 
 
 
@@ -75,8 +84,8 @@ PUBLISHED:
   /* INLINE void *get_data(); */
   /* INLINE void *get_data(); */
   INLINE int get_joint_type() const;
   INLINE int get_joint_type() const;
   OdeBody get_body(int index) const;
   OdeBody get_body(int index) const;
-  /* INLINE void set_feedback(dJointFeedback *); */
-  /* INLINE dJointFeedback *get_feedback(); */
+  INLINE void set_feedback(OdeJointFeedback *);
+  INLINE OdeJointFeedback *get_feedback();
    
    
   void attach_bodies(const OdeBody &body1, const OdeBody &body2);
   void attach_bodies(const OdeBody &body1, const OdeBody &body2);
   void attach_body(const OdeBody &body, int index);
   void attach_body(const OdeBody &body, int index);