Addons updated to new doc format
[io.git] / addons / ODE / source / IoODEContactJoint.c
blob7a600eef81c541aade9fd511bc4c3cfbe5c52e03
1 //metadoc ODEJoint copyright Jonathan Wright, 2006
2 //metadoc ODEJoint license BSD revised
3 /*metadoc ODEJoint description
4 ODEJoint binding
5 */
7 #include "IoODEJoint_internal.h"
8 #include "IoODEContactJoint.h"
9 #include "IoODEBody.h"
10 #include "IoState.h"
11 #include "IoSeq.h"
12 #include "IoVector_ode.h"
13 #include "GLIncludes.h"
15 /* ----------------------------------------------------------- */
17 IoTag *IoODEContactJoint_newTag(void *state)
19 IoTag *tag = IoTag_newWithName_("ODEContactJoint");
20 IoTag_state_(tag, state);
21 IoTag_freeFunc_(tag, (IoTagFreeFunc *)IoODEContactJoint_free);
22 IoTag_markFunc_(tag, (IoTagMarkFunc *)IoODEContactJoint_mark);
23 IoTag_cloneFunc_(tag, (IoTagCloneFunc *)IoODEContactJoint_rawClone);
24 return tag;
27 IoODEContactJoint *IoODEContactJoint_proto(void *state)
29 IoObject *self = IoObject_new(state);
30 IoObject_tag_(self, IoODEContactJoint_newTag(state));
32 IoODEJoint_protoCommon(self);
34 IoState_registerProtoWithFunc_(state, self, IoODEContactJoint_proto);
37 IoMethodTable methodTable[] = {
38 ODE_COMMON_JOINT_METHODS
40 {NULL, NULL},
42 IoObject_addMethodTable_(self, methodTable);
44 return self;
47 IoODEContactJoint *IoODEContactJoint_rawClone(IoODEContactJoint *proto)
49 IoObject *self = IoODEJoint_rawClone(proto);
51 if(DATA(proto)->jointGroup)
53 IoODEJointGroup *jointGroup = DATA(proto)->jointGroup;
55 JOINTGROUP = jointGroup;
57 return self;
60 void IoODEContactJoint_free(IoODEContactJoint *self)
62 IoODEJoint_free(self);
65 void IoODEContactJoint_mark(IoODEContactJoint *self)
67 IoODEJoint_mark(self);
70 IoODEContactJoint *IoODEContactJoint_new(void *state, IoODEJointGroup *jointGroup, dJointID jointId)
72 IoODEContactJoint *self = IoODEJoint_newProtoCommon(state, IoODEContactJoint_proto, jointGroup);
74 JOINTID = jointId;
75 IoODEJointGroup_addJoint(JOINTGROUP, self);
77 return self;
80 /* ----------------------------------------------------------- */