private static void EdgeEvent(DTSweepContext tcx, DTSweepConstraint edge, AdvancingFrontNode node) { try { tcx.EdgeEvent.ConstrainedEdge = edge; tcx.EdgeEvent.Right = (edge.P.X > edge.Q.X); bool flag = DTSweep.IsEdgeSideOfTriangle(node.Triangle, edge.P, edge.Q); if (!flag) { DTSweep.FillEdgeEvent(tcx, edge, node); DTSweep.EdgeEvent(tcx, edge.P, edge.Q, node.Triangle, edge.Q); } } catch (PointOnEdgeException ex) { Debug.WriteLine("Skipping Edge: " + ex.Message); } }
private static void EdgeEvent(DTSweepContext tcx, TriangulationPoint ep, TriangulationPoint eq, DelaunayTriangle triangle, TriangulationPoint point) { bool flag = DTSweep.IsEdgeSideOfTriangle(triangle, ep, eq); if (!flag) { TriangulationPoint triangulationPoint = triangle.PointCCW(point); Orientation orientation = TriangulationUtil.Orient2d(eq, triangulationPoint, ep); bool flag2 = orientation == Orientation.Collinear; if (flag2) { bool flag3 = triangle.Contains(eq, triangulationPoint); if (!flag3) { throw new PointOnEdgeException("EdgeEvent - Point on constrained edge not supported yet"); } triangle.MarkConstrainedEdge(eq, triangulationPoint); tcx.EdgeEvent.ConstrainedEdge.Q = triangulationPoint; triangle = triangle.NeighborAcross(point); DTSweep.EdgeEvent(tcx, ep, triangulationPoint, triangle, triangulationPoint); bool isDebugEnabled = tcx.IsDebugEnabled; if (isDebugEnabled) { Debug.WriteLine("EdgeEvent - Point on constrained edge"); } } else { TriangulationPoint triangulationPoint2 = triangle.PointCW(point); Orientation orientation2 = TriangulationUtil.Orient2d(eq, triangulationPoint2, ep); bool flag4 = orientation2 == Orientation.Collinear; if (flag4) { bool flag5 = triangle.Contains(eq, triangulationPoint2); if (!flag5) { throw new PointOnEdgeException("EdgeEvent - Point on constrained edge not supported yet"); } triangle.MarkConstrainedEdge(eq, triangulationPoint2); tcx.EdgeEvent.ConstrainedEdge.Q = triangulationPoint2; triangle = triangle.NeighborAcross(point); DTSweep.EdgeEvent(tcx, ep, triangulationPoint2, triangle, triangulationPoint2); bool isDebugEnabled2 = tcx.IsDebugEnabled; if (isDebugEnabled2) { Debug.WriteLine("EdgeEvent - Point on constrained edge"); } } else { bool flag6 = orientation == orientation2; if (flag6) { bool flag7 = orientation == Orientation.CW; if (flag7) { triangle = triangle.NeighborCCW(point); } else { triangle = triangle.NeighborCW(point); } DTSweep.EdgeEvent(tcx, ep, eq, triangle, point); } else { DTSweep.FlipEdgeEvent(tcx, ep, eq, triangle, point); } } } } }