26 #ifndef __TERRALIB_GEOMETRY_INTERNAL_SAFEOVERLAY_H
27 #define __TERRALIB_GEOMETRY_INTERNAL_SAFEOVERLAY_H
30 #include "../Config.h"
44 using GeometryPair = std::pair<te::gm::GeometryPtr, te::gm::GeometryPtr>;
An Envelope defines a 2D rectangular region.
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
A class containing helper methods to make overlay algorithms more robust and safer to execute when de...
static te::gm::Geometry * ClipGeometry(const te::gm::Geometry *geometry, const te::gm::Envelope &envelope)
Tries to make the difference. If an exception is thrown, it tries to make the geometry valid and retr...
static std::unique_ptr< te::gm::GeometryPair > MakeValid(const te::gm::Geometry *g1, const te::gm::Geometry *g2)
static te::gm::GeometryPtr Difference(const te::gm::Geometry *g1, const te::gm::Geometry *g2)
Tries to make the intersection. If an exception is thrown, it tries to make the geometry valid and re...
static te::gm::GeometryPtr Intersection(const te::gm::Geometry *g1, const te::gm::Geometry *g2)
Tries to make the geometry pair valid. If it is unable to do that, it will throw an exception.
SafeOverlay()=delete
< Constructor
~SafeOverlay()=delete
Tries to clip the geometry. If an exception is thrown, it tries to make the geometry valid and retry ...
std::pair< te::gm::GeometryPtr, te::gm::GeometryPtr > GeometryPair
#define TEGEOMEXPORT
You can use this macro in order to export/import classes and functions from this module.