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) // warning C4251: needs to have dll-interface to be used by clients of class 39 class CoordinateSequence;
89 return _hasNarrowConcaveAngle;
106 to.push_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);
152 segList.addPts(pts, isForward);
168 int side,
double distance,
177 static const double OFFSET_SEGMENT_SEPARATION_FACTOR;
183 static const double INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR;
188 static const double CURVE_VERTEX_SNAP_DISTANCE_FACTOR;
193 static const int MAX_CLOSING_SEG_LEN_FACTOR = 80;
199 double maxCurveSegmentError;
205 double filletAngleQuantum;
224 int closingSegLengthFactor;
234 OffsetSegmentString segList;
240 const BufferParameters& bufParams;
256 bool _hasNarrowConcaveAngle;
258 void addCollinear(
bool addStartPoint);
282 void addLimitedMitreJoin(
286 double mitreLimitDistance);
319 static const double PI;
324 void init(
double newDistance);
333 static const double SIMPLIFY_FACTOR;
340 void addOutsideTurn(
int orientation,
bool addStartPoint);
347 void addInsideTurn(
int orientation,
bool addStartPoint);
362 int direction,
double radius);
374 double endAngle,
int direction,
double radius);
378 OffsetSegmentGenerator(
const OffsetSegmentGenerator&);
379 void operator=(
const OffsetSegmentGenerator&);
Definition: LineSegment.h:61
Definition: OffsetSegmentGenerator.h:60
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
Specifies the precision model of the Coordinate in a Geometry.
Definition: PrecisionModel.h:90
bool hasNarrowConcaveAngle() const
Definition: OffsetSegmentGenerator.h:87
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Definition: LineIntersector.h:53
void addLastSegment()
Add last offset point.
Definition: OffsetSegmentGenerator.h:136
void addFirstSegment()
Add first offset point.
Definition: OffsetSegmentGenerator.h:129
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
Contains the parameters which describe how a buffer should be constructed.
Definition: BufferParameters.h:56
void getCoordinates(std::vector< geom::CoordinateSequence *> &to)
Definition: OffsetSegmentGenerator.h:104
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:56