28 #ifndef __TERRALIB_VP_INTERNAL_POLYGONSUBDIVIDER_H
29 #define __TERRALIB_VP_INTERNAL_POLYGONSUBDIVIDER_H
34 #include "../geometry/CommonDataStructures.h"
35 #include "../geometry/Enums.h"
54 class SubdividerTilling;
An Envelope defines a 2D rectangular region.
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
LineString is a curve with linear interpolation between points.
Algorithm to subdivide polygons based on a cell tilling and merge them back to their original format.
std::vector< std::size_t > ClusterIndexes
static Clusters calculateGeometryClusters(const GeometryAssociations &geometryMatchMap)
Normalizes an match map ensuring that all the list of indexes is complete, that is,...
std::vector< ClusterIndexes > Clusters
static SetIndexes getUniqueIndexes(const GeometryAssociations &geometryAssociations)
static te::gm::GeometryVector merge(const te::gm::GeometryVector &vecFragments, const te::gm::LineString *splitLine)
Dissolves all the geometries from the given fragments vector that have borders with the given split r...
std::vector< GeometryAssociation > GeometryAssociations
static GeometryAssociations calculateGeometryAssociations(const std::vector< te::vp::SegmentInfo * > &vecBorderSegments, te::gm::Dimensionality dimensionality)
Creates a non-normalized match map containing only the indexes of geometries that have a border relat...
static te::gm::GeometryVector dissolveFragments(const te::gm::GeometryVector &vecFragments, const Clusters &clusters)
Dissolves all the geometries from the given fragments vector using the given match map as reference.
static te::gm::GeometryVector subdivide(const te::gm::Geometry *geometry, const SubdividerTilling &tilling, std::size_t maxCoordinates)
Subdivides the given geometry using the given envelope. This has the same result as an intersection o...
static te::gm::GeometryVector subdivide(const te::gm::Geometry *geometry, std::size_t maxCoordinates)
Subdivides the given geometry using the given envelope. This has the same result as an intersection o...
static bool filterSegmentsInBorder(const te::gm::Geometry *geometry, std::size_t geometryIndex, const te::gm::LineString *splitLine, std::vector< te::vp::SegmentInfo * > &vecSegmentsInBorder)
From the givem geometry, creates a list of all the segments that are exactly in the border of the giv...
static GeometryAssociations calculateGeometryAssociations(const te::gm::GeometryVector &vecFragments, const te::gm::LineString *splitLine)
Creates a normalized match map containing only the indexes of geometries that have a border relation ...
static te::gm::GeometryVector subdivide(const te::gm::GeometryVector &vecInputGeometries, const SubdividerTilling &tilling, std::size_t maxCoordinates)
Subdivides the given vecInputGeometries using the given envelope. This has the same result as an inte...
std::set< std::size_t > SetIndexes
static te::gm::GeometryVector subdivide(const te::gm::GeometryVector &vecInputGeometries, const te::gm::Envelope &envelope, std::size_t maxCoordinates)
static te::gm::GeometryVector merge(const te::gm::GeometryVector &vecFragments, const SubdividerTilling &tilling)
Dissolves all the geometries from the given fragments vector that have borders with the given split r...
static te::gm::GeometryVector subdivide(const te::gm::GeometryVector &vecInputGeometries, std::size_t maxCoordinates, std::vector< std::size_t > &vecParentIndexes)
Subdivides the given vecInputGeometries using the given envelope. This has the same result as an inte...
static bool checkForGeometrySubdivision(const te::gm::Envelope ¤tTile, const te::gm::Geometry *geometry, std::size_t geometryIndex, std::vector< te::vp::SegmentInfo * > &vecSegmentsInBorder)
static std::vector< te::vp::SegmentInfo * > filterSegmentsInBorder(const te::gm::GeometryVector &vecFragments, const te::gm::LineString *splitLine, std::vector< std::size_t > &vecIndexesNotInBorder)
From the givem geometry vector, creates a list of all the segments that are exactly in the border of ...
static te::gm::GeometryVector subdivide(const te::gm::Geometry *geometry, const te::gm::Envelope &envelope, std::size_t maxCoordinates)
Subdivides the given geometry using the given envelope. This has the same result as an intersection o...
std::pair< std::size_t, std::size_t > GeometryAssociation
Algorithm to help controlling creating and iterating in a tile.
Dimensionality
From Wikipedia: "in mathematics, the dimension of an object is an intrinsic property,...
std::vector< te::gm::Geometry * > GeometryVector
#define TEVPEXPORT
You can use this macro in order to export/import classes and functions from this module.
Proxy configuration file for TerraView (see terraview_config.h).
Utility classes, structures and definitions for Vector Processing.