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

Creates a TIN using the Weighted Locally Optimal Projection (WLOP) algorithm. More...

#include <tin_creation_simplification_point_set_wlop.h>

Inheritance diagram for TinCreation::TinCreationSimplificationPointSetWLOP:
TinCreation::TinCreationSimplificationPointSet TinCreation::TinCreationStrategy

Public Member Functions

 TinCreationSimplificationPointSetWLOP (double borderSimplificationMaxDistance, double borderSimplificationMaxLength, unsigned int minFeaturePolylineSize, double retainPercentage, double radius, unsigned int iterNumber=35)
 
 TinCreationSimplificationPointSetWLOP (std::vector< double > borderSimplificationMaxDistancePerZoom, std::vector< double > borderSimplificationMaxLengthPerZoom, unsigned int minFeaturePolylineSize, std::vector< double > retainPercentagePerZoom, std::vector< double > radiusPerZoom, unsigned int iterNumber=35)
 
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 Weighted Locally Optimal Projection (WLOP) algorithm.

We use the implementation of WLOP on the CGAL libraries, which are based on the following paper:
H. Huang, D. Li, H. Zhang, U. Ascher, and D. Cohen-Or. Consolidation of unorganized point clouds for surface reconstruction. ACM Transactions on Graphics, 28:176:1–176:78, 2009.

Constructor & Destructor Documentation

◆ TinCreationSimplificationPointSetWLOP() [1/2]

TinCreation::TinCreationSimplificationPointSetWLOP::TinCreationSimplificationPointSetWLOP ( double  borderSimplificationMaxDistance,
double  borderSimplificationMaxLength,
unsigned int  minFeaturePolylineSize,
double  retainPercentage,
double  radius,
unsigned int  iterNumber = 35 
)
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
retainPercentagePercentage of points to retain
radiusSpherical neighborhood radius
iterNumberNumber of iterations to solve the optimization problem

◆ TinCreationSimplificationPointSetWLOP() [2/2]

TinCreation::TinCreationSimplificationPointSetWLOP::TinCreationSimplificationPointSetWLOP ( std::vector< double >  borderSimplificationMaxDistancePerZoom,
std::vector< double >  borderSimplificationMaxLengthPerZoom,
unsigned int  minFeaturePolylineSize,
std::vector< double >  retainPercentagePerZoom,
std::vector< double >  radiusPerZoom,
unsigned int  iterNumber = 35 
)
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
retainPercentagePercentage of points to retain per zoom
radiusSpherical neighborhood radius per zoom
iterNumberNumber of iterations to solve the optimization problem per zoom

Member Function Documentation

◆ setParamsForZoomConcreteStrategy()

void TinCreation::TinCreationSimplificationPointSetWLOP::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::TinCreationSimplificationPointSetWLOP::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: