Namespaces | Functions
ClusterAlgorithms.hpp File Reference
#include "lvr2/algorithm/Materializer.hpp"
#include "lvr2/geometry/BaseMesh.hpp"
#include "lvr2/geometry/HalfEdgeMesh.hpp"
#include "lvr2/geometry/Handles.hpp"
#include "lvr2/geometry/Plane.hpp"
#include "lvr2/io/MeshBuffer.hpp"
#include "lvr2/util/Cluster.hpp"
#include "lvr2/util/ClusterBiMap.hpp"
#include "lvr2/attrmaps/AttrMaps.hpp"
#include "lvr2/geometry/Line.hpp"
#include <vector>
#include "lvr2/algorithm/ClusterAlgorithms.tcc"
Include dependency graph for ClusterAlgorithms.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 lvr2
 

Functions

template<typename BaseVecT >
Plane< BaseVecT > lvr2::calcRegressionPlane (const BaseMesh< BaseVecT > &mesh, const Cluster< FaceHandle > &cluster, const FaceMap< Normal< typename BaseVecT::CoordType >> &normals)
 Calcs a regression plane for the given cluster. More...
 
template<typename BaseVecT >
Plane< BaseVecT > lvr2::calcRegressionPlanePCA (const BaseMesh< BaseVecT > &mesh, const Cluster< FaceHandle > &cluster, const FaceMap< Normal< typename BaseVecT::CoordType >> &normals, const int num_iterations=100, const int num_samples=10)
 Calcs a regression plane for the given cluster. More...
 
template<typename BaseVecT >
Plane< BaseVecT > lvr2::calcRegressionPlaneRANSAC (const BaseMesh< BaseVecT > &mesh, const Cluster< FaceHandle > &cluster, const FaceMap< Normal< typename BaseVecT::CoordType >> &normals, const int num_iterations=100, const int num_samples=10)
 Calcs a regression plane for the given cluster. More...
 
template<typename BaseVecT >
DenseClusterMap< Plane< BaseVecT > > lvr2::calcRegressionPlanes (const BaseMesh< BaseVecT > &mesh, const ClusterBiMap< FaceHandle > &clusters, const FaceMap< Normal< typename BaseVecT::CoordType >> &normals, int minClusterSize)
 Calcs regression planes for all cluster in clusters. More...
 
template<typename BaseVecT >
DenseClusterMap< Plane< BaseVecT > > lvr2::calcRegressionPlanesRANSAC (const BaseMesh< BaseVecT > &mesh, const ClusterBiMap< FaceHandle > &clusters, const FaceMap< Normal< typename BaseVecT::CoordType >> &normals, int minClusterSize, int iterations=100, int samples=10)
 Calcs regression planes for all cluster in clusters. More...
 
template<typename BaseVecT >
BoundingRectangle< typename BaseVecT::CoordType > lvr2::calculateBoundingRectangle (const vector< VertexHandle > &contour, const BaseMesh< BaseVecT > &mesh, const Cluster< FaceHandle > &cluster, const FaceMap< Normal< typename BaseVecT::CoordType >> &normals, float texelSize, ClusterHandle clusterH)
 Calculates bounding rectangle for a given cluster. More...
 
template<typename BaseVecT >
vector< VertexHandle > lvr2::calculateClusterContourVertices (ClusterHandle clusterH, const BaseMesh< BaseVecT > &mesh, const ClusterBiMap< FaceHandle > &clusterBiMap)
 Calculates contour vertices for a given cluster. More...
 
template<typename BaseVecT , typename Pred >
ClusterBiMap< FaceHandle > lvr2::clusterGrowing (const BaseMesh< BaseVecT > &mesh, Pred pred)
 Algorithm which generates clusters from the given mesh. The given predicate decides which faces will be in the same clusters. More...
 
template<typename BaseVecT >
void lvr2::debugPlanes (const BaseMesh< BaseVecT > &mesh, const ClusterBiMap< FaceHandle > &clusters, const ClusterMap< Plane< BaseVecT >> &planes, string filename, size_t minClusterSize)
 Creates a mesh containing the given regression planes (which match the given minimum cluster size) as planes and saves it to a file with the given filename. More...
 
template<typename BaseVecT >
void lvr2::deleteSmallPlanarCluster (BaseMesh< BaseVecT > &mesh, ClusterBiMap< FaceHandle > &clusters, size_t smallClusterThreshold)
 Removes all clusters and their cotained faces from the given mesh which are smaller than the given smallClusterThreshold. More...
 
template<typename BaseVecT >
void lvr2::dragOntoIntersection (BaseMesh< BaseVecT > &mesh, const ClusterBiMap< FaceHandle > &clusters, const ClusterHandle &clusterH, const ClusterHandle &neighbourClusterH, const Line< BaseVecT > &intersection)
 Drags all points between two clusters (planes) into their intersection. More...
 
template<typename BaseVecT >
void lvr2::dragToRegressionPlane (BaseMesh< BaseVecT > &mesh, const Cluster< FaceHandle > &cluster, const Plane< BaseVecT > &plane, FaceMap< Normal< typename BaseVecT::CoordType >> &normals)
 Drags all points from the given cluster into the given plane. More...
 
template<typename BaseVecT >
void lvr2::dragToRegressionPlanes (BaseMesh< BaseVecT > &mesh, const ClusterBiMap< FaceHandle > &clusters, const ClusterMap< Plane< BaseVecT >> &planes, FaceMap< Normal< typename BaseVecT::CoordType >> &normals)
 Drags all points from the given clusters into their regression planes. More...
 
template<typename BaseVecT >
vector< vector< VertexHandle > > lvr2::findContours (BaseMesh< BaseVecT > &mesh, const ClusterBiMap< FaceHandle > &clusters, ClusterHandle clusterH)
 
template<typename BaseVecT >
ClusterBiMap< FaceHandle > lvr2::iterativePlanarClusterGrowing (BaseMesh< BaseVecT > &mesh, FaceMap< Normal< typename BaseVecT::CoordType >> &normals, float minSinAngle, int numIterations, int minClusterSize)
 Algorithm which generates planar clusters from the given mesh, drags points in clusters into regression planes and improves clusters iteratively. More...
 
template<typename BaseVecT >
ClusterBiMap< FaceHandle > lvr2::iterativePlanarClusterGrowingRANSAC (BaseMesh< BaseVecT > &mesh, FaceMap< Normal< typename BaseVecT::CoordType >> &normals, float minSinAngle, int numIterations, int minClusterSize, int ransacIterations=100, int ransacSamples=10)
 Algorithm which generates planar clusters from the given mesh, drags points in clusters into regression planes and improves clusters iteratively. More...
 
template<typename BaseVecT >
void lvr2::optimizePlaneIntersections (BaseMesh< BaseVecT > &mesh, const ClusterBiMap< FaceHandle > &clusters, const ClusterMap< Plane< BaseVecT >> &planes)
 
template<typename BaseVecT >
ClusterBiMap< FaceHandle > lvr2::planarClusterGrowing (const BaseMesh< BaseVecT > &mesh, const FaceMap< Normal< typename BaseVecT::CoordType >> &normals, float minSinAngle)
 Algorithm which generates plane clusters from the given mesh. More...
 
template<typename BaseVecT >
void lvr2::removeDanglingCluster (BaseMesh< BaseVecT > &mesh, size_t sizeThreshold)
 
template<typename BaseVecT >
vector< VertexHandle > lvr2::simplifyContour (const BaseMesh< BaseVecT > &mesh, const vector< VertexHandle > &contour, float threshold)
 


lvr2
Author(s): Thomas Wiemann , Sebastian Pütz , Alexander Mock , Lars Kiesow , Lukas Kalbertodt , Tristan Igelbrink , Johan M. von Behren , Dominik Feldschnieders , Alexander Löhr
autogenerated on Wed Mar 2 2022 00:37:25