/* Simple test of cpConstraintIsGearJoint(). */ void test_cpConstraintIsGearJoint(void) { cpConstraint *isGear = cpGearJointNew(body1, body2, 1, 1); cpConstraint *isNotGear = cpGrooveJointNew(body1, body2, cpv(0, 0), cpv(0, 0), cpv(3, 3)); CU_ASSERT(cpConstraintIsGearJoint(isGear)); CU_ASSERT_FALSE(cpConstraintIsGearJoint(isNotGear)); }
void cpGearJointSetPhase(cpConstraint *constraint, cpFloat phase) { cpAssertHard(cpConstraintIsGearJoint(constraint), "Constraint is not a ratchet joint."); cpConstraintActivateBodies(constraint); ((cpGearJoint *)constraint)->phase = phase; }
void cpGearJointSetRatio(cpConstraint *constraint, cpFloat ratio) { cpAssertHard(cpConstraintIsGearJoint(constraint), "Constraint is not a ratchet joint."); cpConstraintActivateBodies(constraint); ((cpGearJoint *)constraint)->ratio = ratio; ((cpGearJoint *)constraint)->ratio_inv = 1.0f/ratio; }
cpFloat cpGearJointGetRatio(const cpConstraint *constraint) { cpAssertHard(cpConstraintIsGearJoint(constraint), "Constraint is not a ratchet joint."); return ((cpGearJoint *)constraint)->ratio; }