Example #1
0
        public static bool Contains(Polygon2 <double> outer, Polygon2 <double> inner)
        {
            if (outer == null || inner == null)
            {
                return(false);
            }

            if (outer.HasHoles)
            {
                if (RingUtils.Contains(outer.OuterRing, inner.OuterRing))
                {
                    for (int i = 0; i < outer.InnerRings.Rings.Length; i++)
                    {
                        if (RingUtils.Contains(outer.InnerRings.Rings[i], inner.OuterRing))
                        {
                            return(false); //in a hole
                        }
                    }
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(RingUtils.Contains(outer.OuterRing, inner.OuterRing));
            }
        }
Example #2
0
        //point is inside the ring - not on the edge
        public static bool Contains(Polygon2 <double> ring, Point2 <double> pt)
        {
            if (ring == null || pt == null)
            {
                return(false);
            }

            if (ring.HasHoles)
            {
                if (RingUtils.Contains(ring.OuterRing, pt))
                {
                    for (int i = 0; i < ring.InnerRings.Rings.Length; i++)
                    {
                        if (RingUtils.Contains(ring.InnerRings.Rings[i], pt))
                        {
                            return(false); //in a hole
                        }
                    }
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(RingUtils.Contains(ring.OuterRing, pt));
            }
        }