20#ifndef GEOS_OP_BUFFER_OFFSETSEGMENTSTRING_H
21#define GEOS_OP_BUFFER_OFFSETSEGMENTSTRING_H
23#include <geos/geom/Coordinate.h>
24#include <geos/geom/CoordinateSequence.h>
25#include <geos/geom/CoordinateArraySequence.h>
26#include <geos/geom/PrecisionModel.h>
43class OffsetSegmentString
58 double minimumVertexDistance;
69 if (ptList->size() < 1)
73 if (ptDist < minimumVertexDistance)
81 friend std::ostream& operator<< (std::ostream& os,
const OffsetSegmentString& node);
87 minimumVertexDistance (0.0)
91 ~OffsetSegmentString()
98 if ( ptList ) ptList->clear();
101 precisionModel = NULL;
102 minimumVertexDistance = 0.0;
107 precisionModel = nPrecisionModel;
110 void setMinimumVertexDistance(
double nMinVertexDistance)
112 minimumVertexDistance = nMinVertexDistance;
117 assert(precisionModel);
120 precisionModel->makePrecise(bufPt);
122 if (isRedundant(bufPt))
129 ptList->add(bufPt,
true);
135 for (
size_t i=0, n=pts.size(); i<n; ++i) {
139 for (
size_t i=pts.size(); i>0; --i) {
150 if (ptList->size() < 1)
return;
153 if (startPt.
equals(lastPt))
return;
155 ptList->add(startPt,
true);
174 inline size_t size()
const {
return ptList ? ptList->size() : 0 ; }
178inline std::ostream& operator<< (std::ostream& os,
179 const OffsetSegmentString& lst)
187 os <<
"empty (consumed?)";
The default implementation of CoordinateSequence.
Definition CoordinateArraySequence.h:37
The internal representation of a list of coordinates inside a Geometry.
Definition CoordinateSequence.h:59
Coordinate is the lightweight class used to store coordinates.
Definition Coordinate.h:60
bool equals(const Coordinate &other) const
2D only
double distance(const Coordinate &p) const
Specifies the precision model of the Coordinate in a Geometry.
Definition PrecisionModel.h:87
void closeRing()
Check that points are a ring.
Definition OffsetSegmentString.h:148
geom::CoordinateSequence * getCoordinates()
Get coordinates by taking ownership of them.
Definition OffsetSegmentString.h:166
Provides classes for computing buffers of geometries.
Definition opBuffer.h:23
Provides classes for implementing operations on geometries.
Definition IndexedNestedRingTester.h:40
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:25