Example #1
0
 private static void FillLeftAboveEdgeEvent(DTSweepContext tcx, DTSweepConstraint edge, AdvancingFrontNode node)
 {
     while (node.Prev.Point.X > edge.P.X)
     {
         Orientation orientation = TriangulationUtil.Orient2d(edge.Q, node.Prev.Point, edge.P);
         bool        flag        = orientation == Orientation.CW;
         if (flag)
         {
             DTSweep.FillLeftBelowEdgeEvent(tcx, edge, node);
         }
         else
         {
             node = node.Prev;
         }
     }
 }
Example #2
0
        private static void FillLeftBelowEdgeEvent(DTSweepContext tcx, DTSweepConstraint edge, AdvancingFrontNode node)
        {
            bool flag = node.Point.X > edge.P.X;

            if (flag)
            {
                bool flag2 = TriangulationUtil.Orient2d(node.Point, node.Prev.Point, node.Prev.Prev.Point) == Orientation.CW;
                if (flag2)
                {
                    DTSweep.FillLeftConcaveEdgeEvent(tcx, edge, node);
                }
                else
                {
                    DTSweep.FillLeftConvexEdgeEvent(tcx, edge, node);
                    DTSweep.FillLeftBelowEdgeEvent(tcx, edge, node);
                }
            }
        }