|
CGAL 4.12.2 - 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 | |
| typedef CGAL::cpp11::array< float, 3 > | Eigenvalues |
| Eigenvalues (sorted in ascending order) | |
Public Member Functions | |
| template<typename PointRange , typename PointMap , typename NeighborQuery , typename ConcurrencyTag , typename DiagonalizeTraits > | |
| Local_eigen_analysis (const PointRange &input, PointMap point_map, const NeighborQuery &neighbor_query, const ConcurrencyTag &=ConcurrencyTag(), const DiagonalizeTraits &=DiagonalizeTraits()) | |
| Computes the local eigen analysis of an input range based on a local neighborhood. More... | |
| 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. More... | |
| template<typename GeomTraits > | |
| GeomTraits::Plane_3 | plane (std::size_t index) const |
Returns the estimated local tangent plane of the point at position index. More... | |
| const Eigenvalues & | eigenvalue (std::size_t index) const |
Returns the normalized eigenvalues of the point at position index. | |
| float | sum_of_eigenvalues (std::size_t index) const |
Returns the sum of eigenvalues of the point at position index. | |
| CGAL::Classification::Local_eigen_analysis::Local_eigen_analysis | ( | const PointRange & | input, |
| PointMap | point_map, | ||
| const NeighborQuery & | neighbor_query, | ||
| const ConcurrencyTag & | = ConcurrencyTag(), |
||
| const DiagonalizeTraits & | = DiagonalizeTraits() |
||
| ) |
Computes the local eigen analysis of an input range 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 is 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 | 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. |