public Node(float x, float y, Plan.Tri tri, bool shouldTurnInPlace) { X = x; Y = y; Tri = tri; ShouldTurnInPlace = shouldTurnInPlace; }
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); }
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); }
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(); }
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; } } } }
public Node(float x, float y, Plan.Tri tri) : this(x, y, tri, false) { }
public void ClearSelection() { selectedKeypoints.Clear(); pointToRemove = null; triToRemove = null; }