static CCPoint ccpNeg(const CCPoint& v); static CCPoint ccpAdd(const CCPoint& v1, const CCPoint& v2); static CCPoint ccpSub(const CCPoint& v1, const CCPoint& v2); static CCPoint ccpMult(const CCPoint& v, const CGFloat s); static CCPoint ccpMidpoint(const CCPoint& v1, const CCPoint& v2); static CGFloat ccpDot(const CCPoint& v1, const CCPoint& v2); static CGFloat ccpCross(const CCPoint& v1, const CCPoint& v2); static CCPoint ccpPerp(const CCPoint& v); static CCPoint ccpRPerp(const CCPoint& v); static CCPoint ccpProject(const CCPoint& v1, const CCPoint& v2); static CCPoint ccpRotate(const CCPoint& v1, const CCPoint& v2); static CCPoint ccpUnrotate(const CCPoint& v1, const CCPoint& v2); static CGFloat ccpLengthSQ(const CCPoint& v); CGFloat ccpLength(const CCPoint& v); CGFloat ccpDistance(const CCPoint& v1, const CCPoint& v2); CCPoint ccpNormalize(const CCPoint& v); CCPoint ccpForAngle(const CGFloat a); CGFloat ccpToAngle(const CCPoint& v); float clampf(float value, float min_inclusive, float max_inclusive); CCPoint ccpClamp(const CCPoint& p, const CCPoint& from, const CCPoint& to); CCPoint ccpFromSize(const CCSize& s); CCPoint ccpLerp(const CCPoint& a, const CCPoint& b, float alpha); bool ccpFuzzyEqual(const CCPoint& a, const CCPoint& b, float variance); CCPoint ccpCompMult(const CCPoint& a, const CCPoint& b); float ccpAngleSigned(const CCPoint& a, const CCPoint& b); float ccpAngle(const CCPoint& a, const CCPoint& b); CCPoint ccpRotateByAngle(const CCPoint& v, const CCPoint& pivot, float angle); bool ccpLineIntersect(const CCPoint& p1, const CCPoint& p2, const CCPoint& p3, const CCPoint& p4, float *s, float *t); bool ccpSegmentIntersect(const CCPoint& A, const CCPoint& B, const CCPoint& C, const CCPoint& D); CCPoint ccpIntersectPoint(const CCPoint& A, const CCPoint& B, const CCPoint& C, const CCPoint& D);