public static bool TestOverlap(AYLineMask ylMask, TriangleMask triMask) { VectorFP a = (VectorFP)triMask._pos + triMask._p0; VectorFP b = (VectorFP)triMask._pos + triMask._p1; VectorFP c = (VectorFP)triMask._pos + triMask._p2; if (ylMask.IntersectsLine(a, b) || ylMask.IntersectsLine(b, c) || ylMask.IntersectsLine(a, c)) { return true; } VectorFP q = triMask.Barycentric((VectorFP)ylMask._pos + ylMask._p); return (q.X >= 0 && q.Y >= 0 && (q.X + q.Y) <= 1); }
public static bool TestOverlap(AXLine xlMask, AYLineMask ylMask) { return ylMask.IntersectsLine(xlMask.LeftPoint, xlMask.RightPoint); }
public static bool TestOverlap(AYLineMask ylMask, LineMask lnMask) { VectorFP c = (VectorFP)lnMask._pos + lnMask._p0; VectorFP d = c + new VectorFP(lnMask._w, lnMask._h); return ylMask.IntersectsLine(c, d); }
public static bool TestOverlap(AXLineMask xlMask, AYLineMask ylMask) { VectorFP c = (VectorFP)xlMask._pos + xlMask._p; VectorFP d = c + new VectorFP(xlMask._w, 0); return ylMask.IntersectsLine(c, d); }