CGAL 4.12.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 | |
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. |