19#include <geos/export.h>
41class GEOS_DLL ComponentJumpChecker {
42 using Coordinate = geos::geom::Coordinate;
43 using Envelope = geos::geom::Envelope;
44 using LineSegment = geos::geom::LineSegment;
48 const std::vector<TaggedLineString*>& components;
50 static bool hasJumpAtComponent(
51 const Coordinate& compPt,
52 const TaggedLineString* line,
53 std::size_t start, std::size_t end,
54 const LineSegment& seg);
56 static bool hasJumpAtComponent(
57 const Coordinate& compPt,
58 const LineSegment* seg1,
const LineSegment* seg2,
59 const LineSegment& seg);
61 static std::size_t crossingCount(
62 const Coordinate& compPt,
63 const LineSegment& seg);
65 static std::size_t crossingCount(
66 const Coordinate& compPt,
67 const LineSegment* seg1,
const LineSegment* seg2);
69 std::size_t
static crossingCount(
70 const Coordinate& compPt,
71 const TaggedLineString* line,
72 std::size_t start, std::size_t end);
74 static Envelope computeEnvelope(
75 const LineSegment* seg1,
const LineSegment* seg2);
77 static Envelope computeEnvelope(
78 const TaggedLineString* line,
79 std::size_t start, std::size_t end);
84 ComponentJumpChecker(
const std::vector<TaggedLineString*>& taggedLines)
85 : components(taggedLines)
89 const TaggedLineString* line,
90 std::size_t start, std::size_t end,
91 const LineSegment& seg)
const;
106 const TaggedLineString* line,
107 const LineSegment* seg1,
108 const LineSegment* seg2,
109 const LineSegment& seg)
const;
The internal representation of a list of coordinates inside a Geometry.
Definition CoordinateSequence.h:56
Coordinate is the lightweight class used to store coordinates.
Definition Coordinate.h:217
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition Envelope.h:59
Definition LineSegment.h:61
Contains and owns a list of TaggedLineSegments.
Definition TaggedLineString.h:57
Classes which implement algorithms for simplifying or generalizing geometries.
Definition Corner.h:26
Basic namespace for all GEOS functionalities.
Definition geos.h:38