26 #ifndef __TERRALIB_GEOMETRY_INTERNAL_GEOMETRYSUBDIVIDER_H
27 #define __TERRALIB_GEOMETRY_INTERNAL_GEOMETRYSUBDIVIDER_H
30 #include "../Config.h"
32 #include "../CommonDataStructures.h"
Algorithm to help controlling creating and iterating in a tile.
An Envelope defines a 2D rectangular region.
This class contains functions to help subdivide a geometry into small parts.
static te::gm::Geometry * fixNoding(const te::gm::Geometry *geometry)
static te::gm::GeometryVector subdivideByMaxCoordinates(const te::gm::Geometry *geometry, std::size_t maxCoordinates)
Subdivides the given geometry recursivelly using its envelope spplited in 4 parts until all the subpa...
static te::gm::GeometryVector subdivideByCellTilling(const te::gm::Geometry *geometry, const te::gm::CellTilling &cellTilling, std::vector< ColumnRow > &vecColumnRow)
static te::gm::GeometryPtr subdivideByClippingImpl(const te::gm::Geometry *geometry, const te::gm::Envelope &envelope)
static te::gm::GeometryVector subdivideByMaxCoordinatesImpl(const te::gm::Geometry *geometry, const te::gm::Envelope &envelope, std::size_t maxCoordinates)
Subdivides the given geometry recursivelly using its envelope spplited in 4 parts until all the subpa...
static te::gm::GeometryPtr subdivideByClipping(const te::gm::Geometry *geometry, const te::gm::Envelope &envelope)
static te::gm::GeometryVector subdivideByMaxCoordinatesImpl(const te::gm::Geometry *geometry, std::size_t maxCoordinates)
Subdivides the given geometry recursivelly using its envelope spplited in 4 parts until all the subpa...
static te::gm::GeometryVector subdivideByCellTillingImpl(const te::gm::Geometry *geometry, const te::gm::CellTilling &cellTilling, std::vector< ColumnRow > &vecColumnRow)
virtual ~GeometrySubdivider()
Destructor.
GeometrySubdivider()
Constructor.
static te::gm::GeometryVector fixNoding(const te::gm::GeometryVector &vecGeometries)
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
std::vector< te::gm::Geometry * > GeometryVector
ColumnRow(std::size_t column, std::size_t row)
#define TEGEOMEXPORT
You can use this macro in order to export/import classes and functions from this module.