Example #1
0
        public override object Clone()
        {
            LineMask mask = new LineMask(_p0, _w, _h);
            mask._pos = _pos;

            return mask;
        }
Example #2
0
        public static bool TestOverlapEdge(PointMask ptMask, LineMask lnMask)
        {
            VectorFP p1 = (VectorFP)ptMask._pos + ptMask._point;

            return TestOverlapEdge(lnMask, p1.X, p1.Y);
        }
Example #3
0
        public static bool TestOverlapEdge(LineMask lnMask, FPInt x, FPInt y)
        {
            PointFP cp = lnMask.ClosestPoint(new PointFP(x, y));

            return x == cp.X && y == cp.Y;
        }
Example #4
0
 public static bool TestOverlap(TriangleMask triMask, LineMask lnMask)
 {
     return TestOverlap(lnMask, triMask);
 }
Example #5
0
 public static bool TestOverlap(PointMask ptMask, LineMask lnMask)
 {
     return false;
 }
Example #6
0
 public static bool TestOverlap(AABBMask rMask, LineMask lnMask)
 {
     return TestOverlap(lnMask, rMask);
 }
Example #7
0
        public static bool TestOverlap(LineMask lnMask, TriangleMask triMask)
        {
            VectorFP a = (VectorFP)triMask._pos + triMask._p0;
            VectorFP b = (VectorFP)triMask._pos + triMask._p1;
            VectorFP c = (VectorFP)triMask._pos + triMask._p2;

            //TestResult t = lnMask.LineIntersect(a, b);

            if (lnMask.IntersectsLine(a, b) || lnMask.IntersectsLine(b, c) || lnMask.IntersectsLine(a, c)) {
                return true;
            }

            // Check for containment
            VectorFP r = triMask.Barycentric((VectorFP)lnMask._pos + lnMask._p0);

            return (r.X >= 0 && r.Y >= 0 && (r.X + r.Y) <= 1);
        }
Example #8
0
        public static bool TestOverlap(LineMask lnMask, AABBMask rMask)
        {
            VectorFP p0 = (VectorFP)lnMask._pos + lnMask._p0;
            VectorFP p1 = new VectorFP(p0.X + lnMask._w, p0.Y + lnMask._h);

            return rMask.IntersectsLine(p0, p1);
        }
Example #9
0
        public static bool TestOverlap(LineMask lnMask1, LineMask lnMask2)
        {
            VectorFP a = (VectorFP)lnMask1._pos + lnMask1._p0;
            VectorFP b = a + new VectorFP(lnMask1._w, lnMask1._h);

            return lnMask2.IntersectsLine(a, b);
        }
Example #10
0
 public static bool TestOverlap(LineMask lnMask, AYLine ylMask)
 {
     return TestOverlap(ylMask, lnMask);
 }
Example #11
0
 public static bool TestOverlap(LineMask lnMask, AXLine xlMask)
 {
     return TestOverlap(xlMask, lnMask);
 }
Example #12
0
 public static bool TestOverlap(LineMask lnMask, CircleMask cMask)
 {
     return TestOverlap(cMask, lnMask);
 }
Example #13
0
 // Line -- [____] Collision Tests
 public static bool TestOverlap(LineMask lnMask, PointMask ptMask)
 {
     return TestOverlap(ptMask, lnMask);
 }
Example #14
0
        public static bool TestOverlap(AYLine ylMask, LineMask lnMask)
        {
            VectorFP c = (VectorFP)lnMask._pos + lnMask._p0;
            VectorFP d = c + new VectorFP(lnMask._w, lnMask._h);

            return ylMask.IntersectsLine(c, d);
        }
Example #15
0
        public static bool TestOverlap(CircleMask cMask, LineMask lnMask)
        {
            VectorFP c = (VectorFP)cMask._pos + cMask._p;
            VectorFP p = lnMask.ClosestPoint(c);

            p = p - c;
            FPInt p2 = p.LengthSquared();
            FPInt r2 = cMask._radius * cMask._radius;

            return (p2 < r2);
        }