public void InCircleTest() { var a = new CdtSite(new Point()); var b = new CdtSite(new Point(2, 0)); var c = new CdtSite(new Point(1, 2)); var s = new CdtSite(new Point(1, 1)); Assert.IsTrue(CdtSweeper.InCircle(s, a, b, c)); MoveSites(a, b, c, s); Assert.IsTrue(CdtSweeper.InCircle(s, a, b, c)); RotateSites(a, b, c, s); Assert.IsTrue(CdtSweeper.InCircle(s, a, b, c)); a = new CdtSite(new Point()); b = new CdtSite(new Point(2, 0)); c = new CdtSite(new Point(1, 2)); s = new CdtSite(new Point(1, -1)); Assert.IsTrue(!CdtSweeper.InCircle(s, a, b, c)); MoveSites(a, b, c, s); Assert.IsTrue(!CdtSweeper.InCircle(s, a, b, c)); RotateSites(a, b, c, s); Assert.IsTrue(!CdtSweeper.InCircle(s, a, b, c)); a = new CdtSite(new Point()); b = new CdtSite(new Point(1, 0)); c = new CdtSite(new Point(5, 5)); s = new CdtSite(new Point(3, 1)); Assert.IsTrue(CdtSweeper.InCircle(s, a, b, c)); MoveSites(a, b, c, s); Assert.IsTrue(CdtSweeper.InCircle(s, a, b, c)); RotateSites(a, b, c, s); Assert.IsTrue(CdtSweeper.InCircle(s, a, b, c)); Assert.IsTrue(CdtSweeper.InCircle(s, c, a, b)); a = new CdtSite(new Point()); b = new CdtSite(new Point(1, 0)); c = new CdtSite(new Point(5, 5)); s = new CdtSite(new Point(4, 1)); Assert.IsTrue(!CdtSweeper.InCircle(s, a, b, c)); MoveSites(a, b, c, s); Assert.IsTrue(!CdtSweeper.InCircle(s, a, b, c)); RotateSites(a, b, c, s); Assert.IsTrue(!CdtSweeper.InCircle(s, a, b, c)); a = new CdtSite(new Point()); b = new CdtSite(new Point(1, 0)); c = new CdtSite(new Point(5, 5)); s = new CdtSite(new Point(3, 0.5)); Assert.IsTrue(!CdtSweeper.InCircle(s, a, b, c)); MoveSites(a, b, c, s); Assert.IsTrue(!CdtSweeper.InCircle(s, a, b, c)); RotateSites(a, b, c, s); Assert.IsTrue(!CdtSweeper.InCircle(s, a, b, c)); Assert.IsTrue(!CdtSweeper.InCircle(s, c, a, b)); }
void TestTriangle(CdtTriangle triangle, Set <CdtSite> usedSites) { var tsites = triangle.Sites; foreach (var site in usedSites) { if (!tsites.Contains(site)) { Assert.IsTrue(SeparatedByConstrainedEdge(triangle, site) || !CdtSweeper.InCircle(site, tsites[0], tsites[1], tsites[2])); // { // List<ICurve> redCurves = new List<ICurve>(); // redCurves.Add(new Ellipse(2, 2, site.Point)); // List<ICurve> blueCurves = new List<ICurve>(); // blueCurves.Add(Circumcircle(tsites[0].Point, tsites[1].Point, tsites[2].Point)); // ShowFront(Triangles, front, redCurves, blueCurves); // } } } }