Exemple #1
0
        private static void FillAdvancingFront(DTSweepContext tcx, AdvancingFrontNode n)
        {
            AdvancingFrontNode advancingFrontNode = n.Next;

            while (advancingFrontNode.HasNext)
            {
                bool flag = DTSweep.LargeHole_DontFill(advancingFrontNode);
                if (flag)
                {
                    break;
                }
                DTSweep.Fill(tcx, advancingFrontNode);
                advancingFrontNode = advancingFrontNode.Next;
            }
            advancingFrontNode = n.Prev;
            while (advancingFrontNode.HasPrev)
            {
                bool flag2 = DTSweep.LargeHole_DontFill(advancingFrontNode);
                if (flag2)
                {
                    break;
                }
                FP   x     = DTSweep.HoleAngle(advancingFrontNode);
                bool flag3 = x > DTSweep.PI_div2 || x < -DTSweep.PI_div2;
                if (flag3)
                {
                    break;
                }
                DTSweep.Fill(tcx, advancingFrontNode);
                advancingFrontNode = advancingFrontNode.Prev;
            }
            bool flag4 = n.HasNext && n.Next.HasNext;

            if (flag4)
            {
                FP   x     = DTSweep.BasinAngle(n);
                bool flag5 = x < DTSweep.PI_3div4;
                if (flag5)
                {
                    DTSweep.FillBasin(tcx, n);
                }
            }
        }