EMODnet Quantized Mesh Generator for Cesium
Classes | Typedefs | Functions
TinCreation Namespace Reference

This namespace contains all the types/classes/functions required to create a TIN out of a regularly gridded terrain. More...

Classes

class  CompareGIHeapNodes
 Comparison operator (less than) for GIHeapNodes. More...
 
class  GIFaceInfo
 Additional information associated to a face in a Delaunay triangulation required by the Greedy Insertion algorithm. More...
 
class  GIHeapNode
 The information to be maintained in the heap structure. More...
 
class  TinCreationDelaunayStrategy
 A Delaunay triangulation is created with the input points, no simplification is applied. More...
 
class  TinCreationGreedyInsertionStrategy
 Creates a TIN using the Greedy Insertion method. More...
 
class  TinCreationRemeshingStrategy
 Creates a TIN using Delaunay refinement algorithm. More...
 
class  TinCreationSimplificationLindstromTurkStrategy
 Creates a TIN using an edge-collapse simplification method. More...
 
class  TinCreationSimplificationPointSet
 Creates a TIN using a point set simplification algorithm. More...
 
class  TinCreationSimplificationPointSetGrid
 Creates a TIN using the Grid point set simplification algorithm. More...
 
class  TinCreationSimplificationPointSetHierarchy
 Creates a TIN using the Hierarchical point set simplification algorithm. More...
 
class  TinCreationSimplificationPointSetRandom
 Creates a TIN using a random simplification. More...
 
class  TinCreationSimplificationPointSetWLOP
 Creates a TIN using the Weighted Locally Optimal Projection (WLOP) algorithm. More...
 
class  TinCreationStrategy
 Defines the interphase of a TIN creation algorithm. More...
 
class  TinCreator
 Main class used to create a TIN from an input set of points. More...
 

Typedefs

typedef CGAL::Exact_predicates_inexact_constructions_kernel K
 
typedef K::FT FT
 
typedef CGAL::Projection_traits_xy_3< K > Gt
 
typedef CGAL::Delaunay_triangulation_2< Gt > Delaunay
 
typedef K::Point_3 Point_3
 
typedef K::Point_2 Point_2
 
typedef K::Vector_2 Vector_2
 
typedef K::Vector_3 Vector_3
 
typedef K::Segment_2 Segment_2
 
typedef std::vector< Point_3 > Polyline
 
typedef std::vector< Point_3 > PointCloud
 
typedef std::vector< Polyline > Polylines
 
typedef CGAL::Polyhedral_mesh_domain_with_features_3< K > MeshDomain
 
typedef CGAL::Mesh_triangulation_3< MeshDomain >::type Tr
 
typedef CGAL::Mesh_complex_3_in_triangulation_3< Tr, MeshDomain::Corner_index, MeshDomain::Curve_segment_index > C3T3
 
typedef CGAL::Mesh_criteria_3< Tr > MeshCriteria
 
typedef CGAL::Mesh_polyhedron_3< K >::type Polyhedron
 
typedef Polyhedron::HalfedgeDS HalfedgeDS
 
typedef Polyhedron::Halfedge_handle Halfedge_handle
 
typedef Polyhedron::Vertex_handle Vertex_handle
 
typedef boost::graph_traits< Polyhedron >::vertex_descriptor VertexDescriptor
 
typedef boost::graph_traits< Polyhedron >::face_descriptor FaceDescriptor
 
typedef std::map< VertexDescriptor, Vector_3 > VertexNormalMap
 
typedef boost::associative_property_map< VertexNormalMap > VertexNormalPropertyMap
 
typedef CGAL::Min_sphere_of_points_d_traits_3< K, FT > MinSphereTraits
 
typedef CGAL::Min_sphere_of_spheres_d< MinSphereTraits > MinSphere
 
typedef MinSphereTraits::Sphere Sphere
 
typedef SMS::LindstromTurk_cost< Polyhedron > SimplificationCost
 
typedef SMS::LindstromTurk_params SimplificationCostParams
 
typedef SMS::Bounded_normal_change_placement< SMS::LindstromTurk_placement< Polyhedron > > SimplificationPlacement
 
typedef SMS::Count_stop_predicate< Polyhedron > SimplificationStopPredicate
 
typedef PS::Stop_above_cost_threshold PSStopCost
 
typedef CGAL::Sequential_tag Concurrency_tag
 
typedef boost::heap::fibonacci_heap< GIHeapNode, boost::heap::compare< CompareGIHeapNodes > > GIHeap
 
typedef GIHeap::handle_type GIHeapNodeHandle
 

Functions

template<class T >
standardHandlingOfThresholdPerZoom (const std::vector< T > &thresholdsPerZoom, const unsigned int &zoom, const bool &downScale=true)
 

Detailed Description

This namespace contains all the types/classes/functions required to create a TIN out of a regularly gridded terrain.

Common types of CGAL used in the project.

We decided to fix the types because we don't envision changing the Kernel used, and also because doing so we avoid the use of templated classes.

Function Documentation

◆ standardHandlingOfThresholdPerZoom()

template<class T >
T TinCreation::standardHandlingOfThresholdPerZoom ( const std::vector< T > &  thresholdsPerZoom,
const unsigned int &  zoom,
const bool &  downScale = true 
)

Some of the parameters are scale-dependant and, as such, they should depend on the zoom level of the pyramid. If we refer to a parameter for a zoom z as p_z, we allow the user to just set p_z and then we compute the values for other zooms as p_z = p_0/2^z, for those parameters whose scale needs to be lowered at deeper levels, or p_z = p_0*2^z, for those whose scale needs to grow with depth. The parameters marked with an asterisk (*) in the help of qm_tiler are using the setting proposed here. Basically, depending on the number of values in the thresholdsPerZoom vector, we can:

  • Set a single value: In this case, the value represents p_0, and the rest of values for the deeper zooms will be computed using the formulas presented in the previous paragraph.
  • Set multiple values (by entering the same parameter more than once): In this way we can set a parameter for each zoom. If the user inputs less parameters than the number of required zoom levels, the last value is used for all the rest of deeper zooms to create.
    Template Parameters
    TNumeric type of the parameter
    Parameters
    thresholdsPerZoomVector of thresholds per zoom. As explained above, it may contain a single parameter also.
    zoomCurrent zoom level.
    downScaleFlag indicating whether the value of the parameter should be downScaled with zoom or, otherwise, upscaled
    Returns