#include <joint.h>
Inherited by BallJoint, FixedJoint, and OneAxisJoint.
Public Member Functions | |
Joint (Primitive *part1, Primitive *part2, const osg::Vec3 &anchor) | |
virtual | ~Joint () |
virtual void | init (const OdeHandle &odeHandle, const OsgHandle &osgHandle, bool withVisual=true, double visualSize=0.2, bool ignoreColl=true) |
initialises (and creates) the joint. | |
virtual void | update ()=0 |
should syncronise the Ode stuff and the OSG notes (if any) | |
virtual void | setParam (int parameter, double value)=0 |
sets the ODE joint parameter (see ODE manual) | |
virtual double | getParam (int parameter) const =0 |
return the ODE joint parameter (see ODE manual) | |
dJointID | getJoint () const |
const Primitive * | getPart1 () const |
Primitive * | getPart1 () |
const Primitive * | getPart2 () const |
Primitive * | getPart2 () |
const osg::Vec3 | getAnchor () const |
virtual int | getNumberAxes () const =0 |
returns the number of Axes | |
virtual std::list< double > | getPositions () const |
returns the positions of all Axes | |
virtual std::list< double > | getPositionRates () const |
returns the position rates of all Axes | |
virtual int | getPositions (double *sensorarray) const |
stores the positions of all Axes into sensorarray and returns the number of written entries | |
virtual int | getPositionRates (double *sensorarray) const |
stores the position rates of all Axes into sensorarray and returns the number of written entries | |
Static Public Member Functions | |
static osg::Matrix | anchorAxisPose (const osg::Vec3 &anchor, const Axis &axis) |
Public Attributes | |
OdeHandle | odeHandle |
Protected Attributes | |
dJointID | joint |
Primitive * | part1 |
Primitive * | part2 |
osg::Vec3 | anchor |
~Joint | ( | ) | [virtual] |
const osg::Vec3 getAnchor | ( | ) | const [inline] |
dJointID getJoint | ( | ) | const [inline] |
virtual int getNumberAxes | ( | ) | const [pure virtual] |
returns the number of Axes
Implemented in OneAxisJoint, TwoAxisJoint, FixedJoint, and BallJoint.
virtual double getParam | ( | int | parameter | ) | const [pure virtual] |
return the ODE joint parameter (see ODE manual)
Implemented in FixedJoint, HingeJoint, Hinge2Joint, UniversalJoint, BallJoint, and SliderJoint.
Primitive* getPart1 | ( | ) | [inline] |
const Primitive* getPart1 | ( | ) | const [inline] |
Primitive* getPart2 | ( | ) | [inline] |
const Primitive* getPart2 | ( | ) | const [inline] |
virtual int getPositionRates | ( | double * | sensorarray | ) | const [inline, virtual] |
stores the position rates of all Axes into sensorarray and returns the number of written entries
Reimplemented in OneAxisJoint, and TwoAxisJoint.
virtual std::list<double> getPositionRates | ( | ) | const [inline, virtual] |
returns the position rates of all Axes
Reimplemented in OneAxisJoint, and TwoAxisJoint.
virtual int getPositions | ( | double * | sensorarray | ) | const [inline, virtual] |
stores the positions of all Axes into sensorarray and returns the number of written entries
Reimplemented in OneAxisJoint, and TwoAxisJoint.
virtual std::list<double> getPositions | ( | ) | const [inline, virtual] |
returns the positions of all Axes
Reimplemented in OneAxisJoint, and TwoAxisJoint.
void init | ( | const OdeHandle & | odeHandle, | |
const OsgHandle & | osgHandle, | |||
bool | withVisual = true , |
|||
double | visualSize = 0.2 , |
|||
bool | ignoreColl = true | |||
) | [virtual] |
initialises (and creates) the joint.
If visual is true then the joints is also drawn. visualSize is the size of the visual representation. If ignoreColl is true then the pair of connected parts is ignored at collision handling. The member variable odeHandle is set to the given handle. (To be overloaded, but this init should be called always from children!)
Reimplemented in FixedJoint, HingeJoint, Hinge2Joint, UniversalJoint, BallJoint, and SliderJoint.
virtual void setParam | ( | int | parameter, | |
double | value | |||
) | [pure virtual] |
sets the ODE joint parameter (see ODE manual)
Implemented in FixedJoint, HingeJoint, Hinge2Joint, UniversalJoint, BallJoint, and SliderJoint.
virtual void update | ( | ) | [pure virtual] |
should syncronise the Ode stuff and the OSG notes (if any)
Implemented in FixedJoint, HingeJoint, Hinge2Joint, UniversalJoint, BallJoint, and SliderJoint.
dJointID joint [protected] |