16 #ifndef GEOS_ALGORITHM_MCPOINTINRING_H 17 #define GEOS_ALGORITHM_MCPOINTINRING_H 19 #include <geos/export.h> 20 #include <geos/index/chain/MonotoneChainSelectAction.h> 21 #include <geos/algorithm/PointInRing.h> 22 #include <geos/geom/Coordinate.h> 23 #include <geos/index/bintree/Interval.h> 33 class CoordinateSequence;
34 class CoordinateSequence;
50 class GEOS_DLL MCPointInRing:
public PointInRing {
52 MCPointInRing(
const geom::LinearRing *newRing);
54 bool isInside(
const geom::Coordinate& pt);
56 void testLineSegment(
const geom::Coordinate& p,
57 const geom::LineSegment& seg);
59 class MCSelecter:
public index::chain::MonotoneChainSelectAction {
60 using MonotoneChainSelectAction::select;
63 MCPointInRing *parent;
65 MCSelecter(
const geom::Coordinate& newP, MCPointInRing *prt);
66 void select(
const geom::LineSegment& ls);
70 const geom::LinearRing *ring;
71 index::bintree::Interval interval;
72 geom::CoordinateSequence *pts;
73 index::bintree::Bintree *tree;
76 void testMonotoneChain(geom::Envelope *rayEnv,
77 MCSelecter *mcSelecter,
78 index::chain::MonotoneChain *mc);
84 #endif // GEOS_ALGORITHM_MCPOINTINRING_H Represents an (1-dimensional) closed interval on the Real number line.
Definition: bintree/Interval.h:25
An BinTree (or "Binary Interval Tree") is a 1-dimensional version of a quadtree.
Definition: Bintree.h:56
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25
Monotone Chains are a way of partitioning the segments of a linestring to allow for fast searching of...
Definition: index/chain/MonotoneChain.h:85