382
382
return ((ta > 0.0) && (ta < 1.0) && (tb > 0.0) && (tb < 1.0));
385
static inline CGPoint CGLineIntersectionPoint(CGPoint p0, CGPoint p1, CGPoint p2, CGPoint p3)
387
float d = CGPointCross(CGPointSub(p1,p0), CGPointSub(p3,p2));
392
// float a = CGPointCross(CGPointSub(p2,p0), CGPointSub(p3,p2));
393
float b = CGPointCross(CGPointSub(p2,p0), CGPointSub(p1,p0));
398
return CGPointAdd(p2, CGPointScale(CGPointSub(p3,p2), tb));
385
402
static inline long CGPointInTriangle(CGPoint p, CGPoint a0, CGPoint a1, CGPoint a2)
387
404
CGPoint v0 = CGPointSub(a1, a0);