GEOS 3.14.0dev
|
#include <GeometryEditor.h>
Public Member Functions | |
GeometryEditor () | |
GeometryEditor (const GeometryFactory *newFactory) | |
std::unique_ptr< Geometry > | edit (const Geometry *geometry, GeometryEditorOperation *operation) |
Supports creating a new Geometry which is a modification of an existing one. Geometry objects are intended to be treated as immutable. This class allows you to "modify" a Geometry by traversing it and creating a new Geometry with the same overall structure but possibly modified components.
The following kinds of modifications can be made:
Note that all changes must be consistent with the original Geometry's structure (e.g. a Polygon cannot be collapsed into a LineString).
The resulting Geometry is not checked for validity. If validity needs to be enforced, the new Geometry's isValid should be checked.
geos::geom::util::GeometryEditor::GeometryEditor | ( | ) |
Creates a new GeometryEditor object which will create an edited Geometry with the same GeometryFactory as the input Geometry.
geos::geom::util::GeometryEditor::GeometryEditor | ( | const GeometryFactory * | newFactory | ) |
Creates a new GeometryEditor object which will create the edited Geometry with the given GeometryFactory
newFactory | the GeometryFactory to create the edited Geometry with |
std::unique_ptr< Geometry > geos::geom::util::GeometryEditor::edit | ( | const Geometry * | geometry, |
GeometryEditorOperation * | operation | ||
) |
Edit the input Geometry with the given edit operation. Clients will create subclasses of GeometryEditorOperation or CoordinateOperation to perform required modifications.
geometry | the Geometry to edit |
operation | the edit operation to carry out |