|
CGAL 6.1 - Classification
|
#include <CGAL/Classification/Local_eigen_analysis.h>
Class that precomputes and stores the eigenvectors and eigenvalues of the covariance matrices of all points of a point set using a local neighborhood.
This class can be used to compute eigen features (see Predefined Features) and to estimate local normal vectors and tangent planes.
Public Types | |
| using | Eigenvalues = std::array< float, 3 > |
| Eigenvalues (sorted in ascending order) | |
Named Constructors | |
| template<typename PointRange , typename PointMap , typename NeighborQuery , typename ConcurrencyTag , typename DiagonalizeTraits > | |
| static Local_eigen_analysis | create_from_point_set (const PointRange &input, PointMap point_map, const NeighborQuery &neighbor_query, const ConcurrencyTag &=ConcurrencyTag(), const DiagonalizeTraits &=DiagonalizeTraits()) |
| computes the local eigen analysis of an input point set based on a local neighborhood. | |
| template<typename FaceListGraph , typename NeighborQuery , typename ConcurrencyTag , typename DiagonalizeTraits > | |
| static Local_eigen_analysis | create_from_face_graph (const FaceListGraph &input, const NeighborQuery &neighbor_query, const ConcurrencyTag &=ConcurrencyTag(), const DiagonalizeTraits &=DiagonalizeTraits()) |
| computes the local eigen analysis of an input face graph based on a local neighborhood. | |
| template<typename ClusterRange , typename ConcurrencyTag , typename DiagonalizeTraits > | |
| static Local_eigen_analysis | create_from_point_clusters (const ClusterRange &input, const ConcurrencyTag &=ConcurrencyTag(), const DiagonalizeTraits &=DiagonalizeTraits()) |
| computes the local eigen analysis of an input set of point clusters based on a local neighborhood. | |
Analysis | |
| template<typename GeomTraits > | |
| GeomTraits::Vector_3 | normal_vector (std::size_t index) const |
returns the estimated unoriented normal vector of the point at position index. | |
| template<typename GeomTraits > | |
| GeomTraits::Plane_3 | plane (std::size_t index) const |
returns the estimated local tangent plane of the point at position index. | |
| Eigenvalues | eigenvalue (std::size_t index) const |
returns the normalized eigenvalues of the point at position index. | |
|
static |
computes the local eigen analysis of an input face graph based on a local neighborhood.
| FaceListGraph | model of FaceListGraph. |
| NeighborQuery | model of NeighborQuery |
| ConcurrencyTag | enables sequential versus parallel algorithm. Possible values are Parallel_tag (default value if CGAL is linked with TBB) or Sequential_tag (default value otherwise). |
| DiagonalizeTraits | model of DiagonalizeTraits used for matrix diagonalization. It can be omitted: if Eigen 3 (or greater) is available and CGAL_EIGEN3_ENABLED is defined then an overload using Eigen_diagonalize_traits is provided. Otherwise, the internal implementation Diagonalize_traits is used. |
| input | face graph. |
| neighbor_query | object used to access neighborhoods of points. |
|
static |
computes the local eigen analysis of an input set of point clusters based on a local neighborhood.
| ClusterRange | model of ConstRange. Its iterator type is RandomAccessIterator and its value type is the key type of PointMap. |
| ConcurrencyTag | enables sequential versus parallel algorithm. Possible values are Parallel_tag (default value if CGAL is linked with TBB) or Sequential_tag (default value otherwise). |
| DiagonalizeTraits | model of DiagonalizeTraits used for matrix diagonalization. It can be omitted: if Eigen 3 (or greater) is available and CGAL_EIGEN3_ENABLED is defined then an overload using Eigen_diagonalize_traits is provided. Otherwise, the internal implementation Diagonalize_traits is used. |
| input | cluster range. |
|
static |
computes the local eigen analysis of an input point set based on a local neighborhood.
| PointRange | model of ConstRange. Its iterator type is RandomAccessIterator and its value type is the key type of PointMap. |
| PointMap | model of ReadablePropertyMap whose key type is the value type of the iterator of PointRange and value type is CGAL::Point_3. |
| NeighborQuery | model of NeighborQuery |
| ConcurrencyTag | enables sequential versus parallel algorithm. Possible values are Parallel_tag (default value if CGAL is linked with TBB) or Sequential_tag (default value otherwise). |
| DiagonalizeTraits | model of DiagonalizeTraits used for matrix diagonalization. It can be omitted if Eigen 3 (or greater) is available and CGAL_EIGEN3_ENABLED is defined. In that case, an overload using Eigen_diagonalize_traits is provided. |
| input | point range. |
| point_map | property map to access the input points. |
| neighbor_query | object used to access neighborhoods of points. |
| GeomTraits::Vector_3 CGAL::Classification::Local_eigen_analysis::normal_vector | ( | std::size_t | index | ) | const |
returns the estimated unoriented normal vector of the point at position index.
| GeomTraits | model of CGAL Kernel. |
| GeomTraits::Plane_3 CGAL::Classification::Local_eigen_analysis::plane | ( | std::size_t | index | ) | const |
returns the estimated local tangent plane of the point at position index.
| GeomTraits | model of CGAL Kernel. |