Beispiel #1
0
 public Node(float x, float y, Plan.Tri tri, bool shouldTurnInPlace)
 {
     X   = x;
     Y   = y;
     Tri = tri;
     ShouldTurnInPlace = shouldTurnInPlace;
 }
Beispiel #2
0
        public void Tri_GetAdjacentTris_Should_Work()
        {
            var p0 = new Plan.Point(0, 0);
            var p1 = new Plan.Point(1, 0);
            var p2 = new Plan.Point(0, 1);
            var p3 = new Plan.Point(3, 0);
            var p4 = new Plan.Point(0, 3);
            var p5 = new Plan.Point(3, 3);
            var p6 = new Plan.Point(0, -1);
            var t0 = new Plan.Tri(new HashSet <Plan.Point>()
            {
                p0, p1, p2
            });
            var t1 = new Plan.Tri(new HashSet <Plan.Point>()
            {
                p1, p2, p3
            });
            var t2 = new Plan.Tri(new HashSet <Plan.Point>()
            {
                p2, p3, p4
            });
            var t3 = new Plan.Tri(new HashSet <Plan.Point>()
            {
                p3, p4, p5
            });
            var t4 = new Plan.Tri(new HashSet <Plan.Point>()
            {
                p0, p2, p6
            });
            var expectedAdjacentToT0 = new HashSet <Plan.Tri>()
            {
                t1, t4
            };
            var expectedAdjacentToT3 = new HashSet <Plan.Tri>()
            {
                t2
            };
            HashSet <Plan.Tri> adjacentToT0, adjacentToT3;

            adjacentToT0 = t0.GetAdjacentTris();
            adjacentToT3 = t3.GetAdjacentTris();

            adjacentToT0.Should().BeEquivalentTo(expectedAdjacentToT0);
            adjacentToT3.Should().BeEquivalentTo(expectedAdjacentToT3);
        }
Beispiel #3
0
        public void Tri_GetSharedPoints_Should_Work()
        {
            var p0 = new Plan.Point(0, 0);
            var p1 = new Plan.Point(1, 0);
            var p2 = new Plan.Point(0, 1);
            var p3 = new Plan.Point(3, 0);
            var t0 = new Plan.Tri(new HashSet <Plan.Point>()
            {
                p0, p1, p2
            });
            var t1 = new Plan.Tri(new HashSet <Plan.Point>()
            {
                p1, p2, p3
            });
            var expectedSharedPoints = new Plan.Point[] { p1, p2 };

            Plan.Point[] sharedPoints;

            sharedPoints = t0.GetSharedPoints(t1);

            sharedPoints.Should().BeEquivalentTo(expectedSharedPoints);
        }
Beispiel #4
0
        public void Tri_ContainsPoint_Should_Work()
        {
            var tri = new Plan.Tri(new HashSet <Plan.Point>()
            {
                new Plan.Point(0, 0),
                new Plan.Point(4, 0),
                new Plan.Point(4, 2),
            });
            bool b0, b1, b2, b3, b4;

            b0 = tri.ContainsPoint(1, 0.1f);
            b1 = tri.ContainsPoint(3.5f, 1.5f);
            b2 = tri.ContainsPoint(1, 1.5f);
            b3 = tri.ContainsPoint(5, 1);
            b4 = tri.ContainsPoint(2, -0.1f);

            b0.Should().BeTrue();
            b1.Should().BeTrue();
            b2.Should().BeFalse();
            b3.Should().BeFalse();
            b4.Should().BeFalse();
        }
Beispiel #5
0
        public void Remove(int x, int y)
        {
            selectedKeypoints.Clear();

            var p = GetPointAtPixel(x, y);

            if (p != null)
            {
                if (p == pointToRemove)
                {
                    Plan.RemovePoint(p);
                    pointToRemove = null;
                }
                else
                {
                    pointToRemove = p;
                }
            }
            else
            {
                var t = GetTriAtPixel(x, y);

                if (t != null)
                {
                    if (t == triToRemove)
                    {
                        Plan.RemoveTri(t);
                        triToRemove = null;
                    }
                    else
                    {
                        triToRemove = t;
                    }
                }
            }
        }
Beispiel #6
0
 public Node(float x, float y, Plan.Tri tri) : this(x, y, tri, false)
 {
 }
Beispiel #7
0
 public void ClearSelection()
 {
     selectedKeypoints.Clear();
     pointToRemove = null;
     triToRemove   = null;
 }