1 /* copyright: Jonathan Wright, 2006
2 * All rights reserved. See _BSDLicense.txt.
5 #ifndef IoODEHinge_DEFINED
6 #define IoODEHinge_DEFINED 1
8 #include "IoODEJoint.h"
9 #include "IoODEJointGroup.h"
11 typedef IoODEJoint IoODEHinge
;
13 IoODEHinge
*IoODEHinge_rawClone(IoODEHinge
*self
);
14 IoODEHinge
*IoODEHinge_proto(void *state
);
15 IoODEHinge
*IoODEHinge_newProto(void *state
, IoODEJointGroup
*jointGroup
);
17 void IoODEHinge_free(IoODEHinge
*self
);
18 void IoODEHinge_mark(IoODEHinge
*self
);
20 /* ----------------------------------------------------------- */
22 IoObject
*IoODEHinge_setAnchor(IoODEHinge
*self
, IoObject
*locals
, IoMessage
*m
);
23 //IoObject *IoODEHinge_setAnchor2(IoODEHinge *self, IoObject *locals, IoMessage *m);
25 IoObject
*IoODEHinge_getParam(IoODEHinge
*self
, IoObject
*locals
, IoMessage
*m
, int parameter
);
26 IoObject
*IoODEHinge_setParam(IoODEHinge
*self
, IoObject
*locals
, IoMessage
*m
, int parameter
);
29 PARAM(dParamLoStop, lowStop, setLowStop) \
30 PARAM(dParamHiStop, highStop, setHighStop) \
31 PARAM(dParamVel, velocity, setVelocity) \
32 PARAM(dParamFMax, maxForce, setMaxForce) \
33 PARAM(dParamFudgeFactor, fudgeFactor, setFudgeFactor) \
34 PARAM(dParamBounce, bounce, setBounce) \
35 PARAM(dParamCFM, cfm, setCfm) \
36 PARAM(dParamStopERP, stopErp, setStopErp) \
37 PARAM(dParamStopCFM, stopCfm, setStopCfm)
39 #define PARAM(X, _N, _SETN) \
40 IoObject *IoODEHinge_##_N(IoODEHinge *self, IoObject *locals, IoMessage *m); \
41 IoObject *IoODEHinge_##_SETN(IoODEHinge *self, IoObject *locals, IoMessage *m);
45 IoObject
*IoODEHinge_anchor(IoODEHinge
*self
, IoObject
*locals
, IoMessage
*m
);
46 IoObject
*IoODEHinge_anchor2(IoODEHinge
*self
, IoObject
*locals
, IoMessage
*m
);
47 IoObject
*IoODEHinge_axis(IoODEHinge
*self
, IoObject
*locals
, IoMessage
*m
);
48 IoObject
*IoODEHinge_angle(IoODEHinge
*self
, IoObject
*locals
, IoMessage
*m
);
49 IoObject
*IoODEHinge_angleRate(IoODEHinge
*self
, IoObject
*locals
, IoMessage
*m
);
51 IoObject
*IoODEHinge_setAnchor(IoODEHinge
*self
, IoObject
*locals
, IoMessage
*m
);
52 IoObject
*IoODEHinge_setAxis(IoODEHinge
*self
, IoObject
*locals
, IoMessage
*m
);
53 IoObject
*IoODEHinge_addTorque(IoODEHinge
*self
, IoObject
*locals
, IoMessage
*m
);