/// <summary> /// This method will cause the ring to be computed. /// It will also check any holes, if they have been assigned. /// </summary> /// <param name="p"></param> public virtual bool ContainsPoint(Coordinate p) { ILinearRing shell = LinearRing; IEnvelope env = shell.EnvelopeInternal; if (!env.Contains(p)) { return(false); } if (!CGAlgorithms.IsPointInRing(p, shell.Coordinates)) { return(false); } for (IEnumerator i = holes.GetEnumerator(); i.MoveNext();) { EdgeRing hole = (EdgeRing)i.Current; if (hole.ContainsPoint(p)) { return(false); } } return(true); }
/// <summary> /// /// </summary> /// <param name="de"></param> /// <param name="er"></param> abstract public void SetEdgeRing(DirectedEdge de, EdgeRing er);
/// <summary> /// /// </summary> /// <param name="ring"></param> public virtual void AddHole(EdgeRing ring) { holes.Add(ring); }