EMODnet Quantized Mesh Generator for Cesium
Public Member Functions | List of all members
TinCreation::TinCreationSimplificationPointSetHierarchy Class Reference

Creates a TIN using the Hierarchical point set simplification algorithm. More...

#include <tin_creation_simplification_point_set_hierarchy.h>

Inheritance diagram for TinCreation::TinCreationSimplificationPointSetHierarchy:
TinCreation::TinCreationSimplificationPointSet TinCreation::TinCreationStrategy

Public Member Functions

 TinCreationSimplificationPointSetHierarchy (double borderSimplificationMaxDistance, double borderSimplificationMaxLength, unsigned int minFeaturePolylineSize, unsigned int maxClusterSize, double maxSurfaceVariance)
 
 TinCreationSimplificationPointSetHierarchy (const std::vector< double > &borderSimplificationMaxDistancePerZoom, const std::vector< double > &borderSimplificationMaxLengthPerZoom, unsigned int minFeaturePolylineSize, const std::vector< unsigned int > &maxClusterSizePerZoom, const std::vector< double > &maxSurfaceVariancePerZoom)
 
std::vector< Point_3 > simplify (const std::vector< Point_3 > &pts)
 
void setParamsForZoomConcreteStrategy (const unsigned int &zoom)
 
- Public Member Functions inherited from TinCreation::TinCreationSimplificationPointSet
 TinCreationSimplificationPointSet (double borderSimplificationMaxDistance, double borderSimplificationMaxLengthPercent, unsigned int minFeaturePolylineSize)
 
 TinCreationSimplificationPointSet (const std::vector< double > &borderSimplificationMaxDistance, const std::vector< double > &borderSimplificationMaxLengthPercent, unsigned int minFeaturePolylineSize)
 
Polyhedron create (const std::vector< Point_3 > &dataPts, const bool &constrainEasternVertices, const bool &constrainWesternVertices, const bool &constrainNorthernVertices, const bool &constrainSouthernVertices)
 Create a TIN from a set of points. More...
 
void setParamsForZoom (const unsigned int &zoom)
 Adapts the parameters of the algorithm for the desired zoom level. More...
 
- Public Member Functions inherited from TinCreation::TinCreationStrategy
 TinCreationStrategy ()
 Constructor.
 
void setScaleZ (const double &scale)
 
double getScaleZ ()
 Get the scale in Z.
 
void setBounds (const double &minX, const double &minY, const double &minZ, const double &maxX, const double &maxY, const double &maxZ)
 
double getMinX () const
 Get the minimum X coordinate.
 
double getMinY () const
 Get the minimum Y coordinate.
 
double getMinZ () const
 Get the minimum Z coordinate.
 
double getMaxX () const
 Get the maximum X coordinate.
 
double getMaxY () const
 Get the maximum Y coordinate.
 
double getMaxZ () const
 Get the maximum Z coordinate.
 
bool hasOriginalBoundingBox () const
 
std::vector< Point_3 > convertUVHToECEF (const std::vector< Point_3 > &pts) const
 Convert points to ECEF assuming that they are on a UVH format, and given the limits of the tile.
 
std::vector< Point_3 > convertECEFToUVH (const std::vector< Point_3 > &pts) const
 Convert points from local UVH to ECEF given the limits of the tile.
 
Point_3 convertUVHToECEF (const Point_3 &p) const
 Convert points to ECEF assuming that they are on a UVH format, and given the limits of the tile.
 
Point_3 convertECEFToUVH (const Point_3 &p) const
 Convert points from local UVH to ECEF given the limits of the tile.
 

Detailed Description

Creates a TIN using the Hierarchical point set simplification algorithm.

It uses CGAL's implementation of the method described in:
Mark Pauly, Markus Gross, and Leif P Kobbelt. Efficient simplification of point-sampled surfaces. In Proceedings of the conference on Visualization'02, pages 163–170. IEEE Computer Society, 2002.

Constructor & Destructor Documentation

◆ TinCreationSimplificationPointSetHierarchy() [1/2]

TinCreation::TinCreationSimplificationPointSetHierarchy::TinCreationSimplificationPointSetHierarchy ( double  borderSimplificationMaxDistance,
double  borderSimplificationMaxLength,
unsigned int  minFeaturePolylineSize,
unsigned int  maxClusterSize,
double  maxSurfaceVariance 
)
inline

Constructor

Parameters
borderSimplificationMaxDistanceMaximum error for polyline simplification
borderSimplificationMaxLengthPercentMaximum length for an edge in the simplified polyline. This prevents oversimplification in planar tiles.
minFeaturePolylineSizeMinimum number of connected edges in a sharp feature polyline to consider it during processing
maxClusterSizeMaximum cluster size
maxSurfaceVarianceMaximum cluster variation value

◆ TinCreationSimplificationPointSetHierarchy() [2/2]

TinCreation::TinCreationSimplificationPointSetHierarchy::TinCreationSimplificationPointSetHierarchy ( const std::vector< double > &  borderSimplificationMaxDistancePerZoom,
const std::vector< double > &  borderSimplificationMaxLengthPerZoom,
unsigned int  minFeaturePolylineSize,
const std::vector< unsigned int > &  maxClusterSizePerZoom,
const std::vector< double > &  maxSurfaceVariancePerZoom 
)
inline

Constructor

Parameters
borderSimplificationMaxDistanceMaximum error for polyline simplification per zoom
borderSimplificationMaxLengthPercentMaximum length for an edge in the simplified polyline per zoom. This prevents oversimplification in planar tiles.
minFeaturePolylineSizeMinimum number of connected edges in a sharp feature polyline to consider it during processing
maxClusterSizeMaximum cluster size per zoom
maxSurfaceVarianceMaximum cluster variation value per zoom

Member Function Documentation

◆ setParamsForZoomConcreteStrategy()

void TinCreation::TinCreationSimplificationPointSetHierarchy::setParamsForZoomConcreteStrategy ( const unsigned int &  zoom)
inlinevirtual

Same as setParamsForZoom, but triggered at each child class

Parameters
zoomCurrent zoom level

Implements TinCreation::TinCreationSimplificationPointSet.

◆ simplify()

std::vector< Point_3 > TinCreation::TinCreationSimplificationPointSetHierarchy::simplify ( const std::vector< Point_3 > &  pts)
virtual

Simplifies a point set

Parameters
ptsPoints to simplify
Returns
Simplified point set

Implements TinCreation::TinCreationSimplificationPointSet.


The documentation for this class was generated from the following files: