FastSegmentSetIntersectionFinder.h
/**********************************************************************
*
* GEOS - Geometry Engine Open Source
* http://geos.osgeo.org
*
* Copyright (C) 2006 Refractions Research Inc.
*
* This is free software; you can redistribute and/or modify it under
* the terms of the GNU Lesser General Public Licence as published
* by the Free Software Foundation.
* See the COPYING file for more information.
*
*
**********************************************************************
*
* Last port: noding/FastSegmentSetIntersectionFinder.java r388 (JTS-1.12)
*
**********************************************************************/
#pragma once
#include <geos/algorithm/LineIntersector.h>
#include <geos/noding/SegmentString.h>
#include <geos/noding/MCIndexSegmentSetMutualIntersector.h>
#include <memory>
//forward declarations
namespace geos {
namespace noding {
class SegmentIntersectionDetector;
class SegmentSetMutualIntersector;
//class MCIndexSegmentSetMutualIntersector : public SegmentSetMutualIntersector;
}
}
namespace geos {
namespace noding { // geos::noding
class FastSegmentSetIntersectionFinder {
private:
std::unique_ptr<MCIndexSegmentSetMutualIntersector> segSetMutInt;
std::unique_ptr<geos::algorithm::LineIntersector> lineIntersector;
protected:
public:
FastSegmentSetIntersectionFinder(SegmentString::ConstVect* baseSegStrings);
~FastSegmentSetIntersectionFinder() = default;
const SegmentSetMutualIntersector*
getSegmentSetIntersector() const
{
return segSetMutInt.get();
}
bool intersects(SegmentString::ConstVect* segStrings);
bool intersects(SegmentString::ConstVect* segStrings, SegmentIntersectionDetector* intDetector);
};
} // geos::noding
} // geos
geos::noding::FastSegmentSetIntersectionFinder::getSegmentSetIntersector
const SegmentSetMutualIntersector * getSegmentSetIntersector() const
Definition FastSegmentSetIntersectionFinder.h:68
geos::noding::SegmentIntersectionDetector
Detects and records an intersection between two SegmentStrings, if one exists.
Definition SegmentIntersectionDetector.h:41
geos::noding::SegmentSetMutualIntersector
An intersector for the red-blue intersection problem.
Definition SegmentSetMutualIntersector.h:36
geos::noding
Classes to compute nodings for arrangements of line segments and line segment sequences.
Definition CoverageCleaner.h:42
geos
Basic namespace for all GEOS functionalities.
Definition geos.h:38