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

Creates a TIN using an edge-collapse simplification method. More...

#include <tin_creation_simplification_lindstrom_turk_strategy.h>

Inheritance diagram for TinCreation::TinCreationSimplificationLindstromTurkStrategy:
TinCreation::TinCreationStrategy

Public Member Functions

 TinCreationSimplificationLindstromTurkStrategy (int stopEdgesCount, double weightVolume=0.5, double weightBoundary=0.5, double weightShape=1e-10)
 
 TinCreationSimplificationLindstromTurkStrategy (std::vector< int > stopEdgesCountPerZoom, double weightVolume=0.5, double weightBoundary=0.5, double weightShape=1e-10)
 
void setParamsForZoom (const unsigned int &zoom)
 Adapts the parameters of the algorithm for the desired zoom level. More...
 
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...
 
- 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 an edge-collapse simplification method.

This class uses a modified version of the Lindstrom-Turk algorithm [1][2]

[1] P. Lindstrom and G. Turk. Fast and memory efficient polygonal simplification. In IEEE Visualization, pages 279–286, 1998.
[2] P. Lindstrom and G. Turk. Evaluation of memoryless simplification. IEEE Transactions on Visualization and Computer Graphics, 5(2):98–115, slash 1999.

Constructor & Destructor Documentation

◆ TinCreationSimplificationLindstromTurkStrategy() [1/2]

TinCreation::TinCreationSimplificationLindstromTurkStrategy::TinCreationSimplificationLindstromTurkStrategy ( int  stopEdgesCount,
double  weightVolume = 0.5,
double  weightBoundary = 0.5,
double  weightShape = 1e-10 
)
inline

Constructor

Parameters
stopEdgesCountDesired number of edges for the simplified mesh
weightVolumeVolume weight (see original reference)
weightBoundaryBoundary weight (see original reference)
weightShapeShape weight (see original reference)

◆ TinCreationSimplificationLindstromTurkStrategy() [2/2]

TinCreation::TinCreationSimplificationLindstromTurkStrategy::TinCreationSimplificationLindstromTurkStrategy ( std::vector< int >  stopEdgesCountPerZoom,
double  weightVolume = 0.5,
double  weightBoundary = 0.5,
double  weightShape = 1e-10 
)
inline

Constructor

Parameters
stopEdgesCountDesired number of edges for the simplified mesh per zoom
weightVolumeVolume weight (see original reference)
weightBoundaryBoundary weight (see original reference)
weightShapeShape weight (see original reference)

Member Function Documentation

◆ create()

Polyhedron TinCreation::TinCreationSimplificationLindstromTurkStrategy::create ( const std::vector< Point_3 > &  dataPts,
const bool &  constrainEasternVertices,
const bool &  constrainWesternVertices,
const bool &  constrainNorthernVertices,
const bool &  constrainSouthernVertices 
)
virtual

Create a TIN from a set of points.

While it does not impose any regularity on the input points, the use of constrain<X>Vertices is restricted to the shape of the convex hull of the input point being an axis-aligned rectangle.

Parameters
dataPtsInput 3D point set
constrainEasternVerticesFlag indicating whether the vertices on the eastern border of the tile should be preserved or not
constrainWesternVerticesFlag indicating whether the vertices on the western border of the tile should be preserved or not
constrainNorthernVerticesFlag indicating whether the vertices on the northern border of the tile should be preserved or not
constrainSouthernVerticesFlag indicating whether the vertices on the southern border of the tile should be preserved or not
Returns

Implements TinCreation::TinCreationStrategy.

◆ setParamsForZoom()

void TinCreation::TinCreationSimplificationLindstromTurkStrategy::setParamsForZoom ( const unsigned int &  zoom)
inlinevirtual

Adapts the parameters of the algorithm for the desired zoom level.

For further information, see the parameters' setting mechanism in the tutorial.

Parameters
zoomCurrent zoom level

Implements TinCreation::TinCreationStrategy.


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