17#include <geos/export.h>
19#include <geos/geom/Envelope.h>
20#include <geos/geom/CoordinateSequence.h>
62class GEOS_DLL RingClipper {
70 static constexpr int BOX_LEFT = 3;
71 static constexpr int BOX_TOP = 2;
72 static constexpr int BOX_RIGHT = 1;
73 static constexpr int BOX_BOTTOM = 0;
76 const Envelope clipEnv;
83 std::unique_ptr<CoordinateSequence> clipToBoxEdge(
const CoordinateSequence* pts,
int edgeIndex,
bool closeRing)
const;
90 void intersection(
const Coordinate& a,
const Coordinate& b,
int edgeIndex, Coordinate& rsltPt)
const;
91 double intersectionLineY(
const Coordinate& a,
const Coordinate& b,
double y)
const;
92 double intersectionLineX(
const Coordinate& a,
const Coordinate& b,
double x)
const;
93 bool isInsideEdge(
const Coordinate& p,
int edgeIndex)
const;
98 RingClipper(
const Envelope* env)
105 std::unique_ptr<CoordinateSequence>
clip(
const CoordinateSequence* cs)
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
std::unique_ptr< CoordinateSequence > clip(const CoordinateSequence *cs) const
Provides classes for implementing operations on geometries.
Definition CleanCoverage.h:34
Basic namespace for all GEOS functionalities.
Definition geos.h:38