00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00024
00025 const cpConstraintClass *cpGrooveJointGetClass(void);
00026
00028 typedef struct cpGrooveJoint {
00029 cpConstraint constraint;
00030 cpVect grv_n, grv_a, grv_b;
00031 cpVect anchr2;
00032
00033 cpVect grv_tn;
00034 cpFloat clamp;
00035 cpVect r1, r2;
00036 cpMat2x2 k;
00037
00038 cpVect jAcc;
00039 cpVect bias;
00040 } cpGrooveJoint;
00041
00043 cpGrooveJoint* cpGrooveJointAlloc(void);
00045 cpGrooveJoint* cpGrooveJointInit(cpGrooveJoint *joint, cpBody *a, cpBody *b, cpVect groove_a, cpVect groove_b, cpVect anchr2);
00047 cpConstraint* cpGrooveJointNew(cpBody *a, cpBody *b, cpVect groove_a, cpVect groove_b, cpVect anchr2);
00048
00049 CP_DefineConstraintGetter(cpGrooveJoint, cpVect, grv_a, GrooveA)
00051 void cpGrooveJointSetGrooveA(cpConstraint *constraint, cpVect value);
00052 CP_DefineConstraintGetter(cpGrooveJoint, cpVect, grv_b, GrooveB)
00054 void cpGrooveJointSetGrooveB(cpConstraint *constraint, cpVect value);
00055 CP_DefineConstraintProperty(cpGrooveJoint, cpVect, anchr2, Anchr2)
00056