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 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 void ClearSelection() { selectedKeypoints.Clear(); pointToRemove = null; triToRemove = null; }