3 docCopyright("Jonathan Wright", 2006)
4 docLicense("BSD revised")
5 docDescription("ODEJoint binding")
8 #include "IoODEJoint_internal.h"
9 #include "IoODEContactJoint.h"
10 #include "IoODEBody.h"
13 #include "IoVector_ode.h"
14 #include "GLIncludes.h"
16 /* ----------------------------------------------------------- */
18 IoTag
*IoODEContactJoint_newTag(void *state
)
20 IoTag
*tag
= IoTag_newWithName_("ODEContactJoint");
21 IoTag_state_(tag
, state
);
22 IoTag_freeFunc_(tag
, (IoTagFreeFunc
*)IoODEContactJoint_free
);
23 IoTag_markFunc_(tag
, (IoTagMarkFunc
*)IoODEContactJoint_mark
);
24 IoTag_cloneFunc_(tag
, (IoTagCloneFunc
*)IoODEContactJoint_rawClone
);
28 IoODEContactJoint
*IoODEContactJoint_proto(void *state
)
30 IoObject
*self
= IoObject_new(state
);
31 IoObject_tag_(self
, IoODEContactJoint_newTag(state
));
33 IoODEJoint_protoCommon(self
);
35 IoState_registerProtoWithFunc_(state
, self
, IoODEContactJoint_proto
);
38 IoMethodTable methodTable
[] = {
39 ODE_COMMON_JOINT_METHODS
43 IoObject_addMethodTable_(self
, methodTable
);
48 IoODEContactJoint
*IoODEContactJoint_rawClone(IoODEContactJoint
*proto
)
50 IoObject
*self
= IoODEJoint_rawClone(proto
);
52 if(DATA(proto
)->jointGroup
)
54 IoODEJointGroup
*jointGroup
= DATA(proto
)->jointGroup
;
56 JOINTGROUP
= jointGroup
;
61 void IoODEContactJoint_free(IoODEContactJoint
*self
)
63 IoODEJoint_free(self
);
66 void IoODEContactJoint_mark(IoODEContactJoint
*self
)
68 IoODEJoint_mark(self
);
71 IoODEContactJoint
*IoODEContactJoint_new(void *state
, IoODEJointGroup
*jointGroup
, dJointID jointId
)
73 IoODEContactJoint
*self
= IoODEJoint_newProtoCommon(state
, IoODEContactJoint_proto
, jointGroup
);
76 IoODEJointGroup_addJoint(JOINTGROUP
, self
);
81 /* ----------------------------------------------------------- */