21#include <geos/export.h>
25#include <geos/algorithm/LineIntersector.h>
26#include <geos/geom/Coordinate.h>
27#include <geos/geom/LineSegment.h>
28#include <geos/operation/buffer/BufferParameters.h>
29#include <geos/operation/buffer/OffsetSegmentString.h>
33#pragma warning(disable: 4251)
39class CoordinateSequence;
89 return _hasNarrowConcaveAngle;
106 to.emplace_back(segList.getCoordinates());
109 std::unique_ptr<geom::CoordinateSequence>
112 return std::unique_ptr<geom::CoordinateSequence>(segList.getCoordinates());
131 segList.addPt(offset1.p0);
138 segList.addPt(offset1.p1);
153 segList.addPts(pts, isForward);
169 int side,
double distance,
178 static const double OFFSET_SEGMENT_SEPARATION_FACTOR;
184 static const double INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR;
189 static const double CURVE_VERTEX_SNAP_DISTANCE_FACTOR;
194 static const int MAX_CLOSING_SEG_LEN_FACTOR = 80;
200 double maxCurveSegmentError;
206 double filletAngleQuantum;
225 int closingSegLengthFactor;
257 bool _hasNarrowConcaveAngle;
259 void addCollinear(
bool addStartPoint);
283 void addLimitedMitreJoin(
287 double mitreLimitDistance);
320 static const double PI;
325 void init(
double newDistance);
334 static const double SIMPLIFY_FACTOR;
341 void addOutsideTurn(
int orientation,
bool addStartPoint);
348 void addInsideTurn(
int orientation,
bool addStartPoint);
363 int direction,
double radius);
375 double endAngle,
int direction,
double radius);
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Definition LineIntersector.h:53
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:220
Definition LineSegment.h:61
Specifies the precision model of the Coordinate in a Geometry.
Definition PrecisionModel.h:87
Contains the parameters which describe how a buffer should be constructed.
Definition BufferParameters.h:56
Definition OffsetSegmentGenerator.h:60
void addFirstSegment()
Add first offset point.
Definition OffsetSegmentGenerator.h:129
bool hasNarrowConcaveAngle() const
Definition OffsetSegmentGenerator.h:87
void addLineEndCap(const geom::Coordinate &p0, const geom::Coordinate &p1, const geom::Coordinate &p2)
Add an end cap around point p1, terminating a line segment coming from p0.
void addLastSegment()
Add last offset point.
Definition OffsetSegmentGenerator.h:136
static void computeOffsetSegment(const geom::LineSegment &seg, int side, double distance, geom::LineSegment &offset)
Compute an offset segment for an input segment on a given side and at a given distance.
void getCoordinates(std::vector< std::unique_ptr< geom::CoordinateSequence > > &to)
Definition OffsetSegmentGenerator.h:104
void createSquare(const geom::Coordinate &p, double distance)
Adds a CW square around a point.
void createCircle(const geom::Coordinate &p, double distance)
Adds a CW circle around a point.
Definition OffsetSegmentString.h:41
Basic namespace for all GEOS functionalities.
Definition geos.h:38