void SimpleEdgeSetIntersector::computeIntersections(vector<Edge*> *edges, SegmentIntersector *si, bool testAllSegments) { nOverlaps = 0; size_t nedges=edges->size(); for(size_t i0=0; i0<nedges; ++i0) { Edge *edge0=(*edges)[i0]; for(size_t i1=0; i1<nedges; ++i1) { Edge *edge1=(*edges)[i1]; if (testAllSegments || edge0!=edge1) computeIntersects(edge0,edge1,si); } } }
/*public*/ void SimpleNoder::computeNodes(SegmentString::NonConstVect* inputSegmentStrings) { nodedSegStrings=inputSegmentStrings; for (SegmentString::NonConstVect::const_iterator i0=inputSegmentStrings->begin(), i0End=inputSegmentStrings->end(); i0!=i0End; ++i0) { SegmentString* edge0 = *i0; for (SegmentString::NonConstVect::iterator i1=inputSegmentStrings->begin(), i1End=inputSegmentStrings->end(); i1!=i1End; ++i1) { SegmentString* edge1 = *i1; computeIntersects(edge0, edge1); } } }
void SimpleEdgeSetIntersector::computeIntersections(vector<Edge*> *edges0, vector<Edge*> *edges1, SegmentIntersector *si) { nOverlaps = 0; size_t nedges0=edges0->size(); size_t nedges1=edges1->size(); for(size_t i0=0;i0<nedges0; ++i0) { Edge *edge0=(*edges0)[i0]; for(size_t i1=0; i1<nedges1; ++i1) { Edge *edge1=(*edges1)[i1]; computeIntersects(edge0,edge1,si); } } }