示例#1
0
文件: Class794.cs 项目: 15831944/WW
        public static Polygon2D[] smethod_9(
            Interface28 xInterval,
            Interface28 yInterval,
            Polygon2D[] outer,
            Polygon2D[] holes,
            bool right,
            double epsilon)
        {
            if (xInterval.IsUnbound || yInterval.IsUnbound)
            {
                Bounds2D bounds2D = new Bounds2D();
                foreach (Polygon2D polygon2D in outer)
                {
                    bounds2D.Update((IList <Point2D>)polygon2D);
                }
                if (!bounds2D.Initialized)
                {
                    return((Polygon2D[])null);
                }
                if (xInterval.IsUnbound)
                {
                    xInterval = (Interface28) new Class438(xInterval.HasUnboundStart ? bounds2D.Min.X : xInterval.Start, xInterval.HasUnboundEnd ? bounds2D.Max.X : xInterval.End, xInterval.PeriodicLength);
                }
                if (yInterval.IsUnbound)
                {
                    yInterval = (Interface28) new Class438(yInterval.HasUnboundStart ? bounds2D.Min.Y : yInterval.Start, yInterval.HasUnboundEnd ? bounds2D.Max.Y : yInterval.End, yInterval.PeriodicLength);
                }
            }
            List <Polygon2D> polygon2DList = new List <Polygon2D>();

            Polygon2D[] polygon2DArray1 = Class794.smethod_10(outer, right, true, xInterval, yInterval, epsilon);
            polygon2DList.AddRange((IEnumerable <Polygon2D>)polygon2DArray1);
            Polygon2D[] polygon2DArray2 = Class794.smethod_10(holes, right, false, xInterval, yInterval, epsilon);
            polygon2DList.AddRange((IEnumerable <Polygon2D>)polygon2DArray2);
            return(polygon2DList.ToArray());
        }