/*private*/ void MCIndexSegmentSetMutualIntersector::addToMonoChains(SegmentString* segStr) { MonoChains segChains; MonotoneChainBuilder::getChains(segStr->getCoordinates(), segStr, segChains); MonoChains::size_type n = segChains.size(); monoChains.reserve(monoChains.size() + n); for(auto& mc : segChains) { mc->setId(processCounter++); monoChains.push_back(std::move(mc)); } }
/*private*/ void MCIndexSegmentSetMutualIntersector::addToIndex(SegmentString* segStr) { MonoChains segChains; MonotoneChainBuilder::getChains(segStr->getCoordinates(), segStr, segChains); MonoChains::size_type n = segChains.size(); chainStore.reserve(chainStore.size() + n); for(auto& mc : segChains) { mc->setId(indexCounter++); index->insert(&(mc->getEnvelope()), mc.get()); chainStore.push_back(std::move(mc)); } }
/*private*/ void MCIndexSegmentSetMutualIntersector::addToMonoChains(SegmentString* segStr) { MonoChains segChains; MonotoneChainBuilder::getChains(segStr->getCoordinates(), segStr, segChains); MonoChains::size_type n = segChains.size(); monoChains.reserve(monoChains.size() + n); for (MonoChains::size_type i = 0; i < n; i++) { MonotoneChain* mc = segChains[i]; mc->setId( processCounter++ ); monoChains.push_back(mc); } }