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 cpVect k1, k2;
00037
00038 cpVect jAcc;
00039 cpFloat jMaxLen;
00040 cpVect bias;
00041 } cpGrooveJoint;
00042
00044 cpGrooveJoint* cpGrooveJointAlloc(void);
00046 cpGrooveJoint* cpGrooveJointInit(cpGrooveJoint *joint, cpBody *a, cpBody *b, cpVect groove_a, cpVect groove_b, cpVect anchr2);
00048 cpConstraint* cpGrooveJointNew(cpBody *a, cpBody *b, cpVect groove_a, cpVect groove_b, cpVect anchr2);
00049
00050 CP_DefineConstraintGetter(cpGrooveJoint, cpVect, grv_a, GrooveA);
00052 void cpGrooveJointSetGrooveA(cpConstraint *constraint, cpVect value);
00053 CP_DefineConstraintGetter(cpGrooveJoint, cpVect, grv_b, GrooveB);
00055 void cpGrooveJointSetGrooveB(cpConstraint *constraint, cpVect value);
00056 CP_DefineConstraintProperty(cpGrooveJoint, cpVect, anchr2, Anchr2);
00057