Exemple #1
0
 public override void ComputeIntersections(EdgeCollection edges, SegmentIntersector si, bool testAllSegments)
 {
     for (IEdgeEnumerator i0 = edges.GetEnumerator(); i0.MoveNext();)
     {
         Edge edge0 = i0.Current;
         for (IEdgeEnumerator i1 = edges.GetEnumerator(); i1.MoveNext();)
         {
             Edge edge1 = i1.Current;
             if (testAllSegments || edge0 != edge1)
             {
                 ComputeIntersects(edge0, edge1, si);
             }
         }
     }
 }
Exemple #2
0
		private void InsertUniqueEdges(EdgeCollection edges)
		{
			for (IEdgeEnumerator i = edges.GetEnumerator(); i.MoveNext(); )
			{
				Edge e = i.Current;
				InsertUniqueEdge(e);
			}
		}
Exemple #3
0
 private void Add(EdgeCollection edges, object edgeSet)
 {
     for (IEdgeEnumerator i = edges.GetEnumerator(); i.MoveNext();)
     {
         Edge edge = i.Current;
         Add(edge, edgeSet);
     }
 }
Exemple #4
0
 private void Add(EdgeCollection edges)
 {
     for (IEdgeEnumerator i = edges.GetEnumerator(); i.MoveNext();)
     {
         Edge edge = i.Current;
         // edge is its own group
         Add(edge, edge);
     }
 }
Exemple #5
0
        public override void ComputeIntersections(EdgeCollection edges0,
                                                  EdgeCollection edges1, SegmentIntersector si)
        {
            for (IEdgeEnumerator i0 = edges0.GetEnumerator(); i0.MoveNext();)
            {
                Edge edge0 = i0.Current;

                for (IEdgeEnumerator i1 = edges1.GetEnumerator(); i1.MoveNext();)
                {
                    Edge edge1 = i1.Current;
                    ComputeIntersects(edge0, edge1, si);
                }
            }
        }
        /// <summary>
        /// Update the IM with the sum of the IMs for each component.
        /// </summary>
        private void  UpdateIM(IntersectionMatrix im)
        {
            for (IEdgeEnumerator ei = isolatedEdges.GetEnumerator(); ei.MoveNext();)
            {
                Edge e = ei.Current;
                e.UpdateIM(im);
            }

            for (IEnumerator ni = nodes.Iterator(); ni.MoveNext();)
            {
                RelateNode node = (RelateNode)ni.Current;
                node.UpdateIM(im);

                node.updateIMFromEdges(im);
            }
        }