more SystemCall fixes
[io/quag.git] / addons / ODE / source / IoODEContactJoint.c
blobce017e9074aba8a4b17f3940c706a58ce85b7a82
1 /*#io
2 ODEJoint ioDoc(
3 docCopyright("Jonathan Wright", 2006)
4 docLicense("BSD revised")
5 docDescription("ODEJoint binding")
6 */
8 #include "IoODEJoint_internal.h"
9 #include "IoODEContactJoint.h"
10 #include "IoODEBody.h"
11 #include "IoState.h"
12 #include "IoSeq.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);
25 return tag;
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
41 {NULL, NULL},
43 IoObject_addMethodTable_(self, methodTable);
45 return self;
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;
58 return self;
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);
75 JOINTID = jointId;
76 IoODEJointGroup_addJoint(JOINTGROUP, self);
78 return self;
81 /* ----------------------------------------------------------- */