Go to the documentation of this file.
   37 #include <Eigen/Eigenvalues> 
   61         using Tensor = Eigen::Matrix<T, 3, 3>;
 
   63         using Field = Eigen::Matrix< Tensor, Eigen::Dynamic, 1>;
 
   64         using Tensors = Eigen::Matrix< Tensor, Eigen::Dynamic, 1>;
 
   77         enum Encoding : std::uint8_t { 
ZERO, 
UBALL, 
BALL, 
SBALL, 
UPLATE, 
PLATE, 
SPLATE, 
USTICK, 
STICK, 
SSTICK, 
AWARE_TENSOR};
 
  123         void ballVote(
const DP& pts, 
bool doKnn = 
true);
 
  127         void cfvote(
const DP& pts, 
bool doKnn = 
true);
 
  151                         return std::pow(std::cos(theta), 8);
 
  171                         return cij(vv, 
sigma) * (1. - vvn * vvn);
 
  
typename PM::DataPoints DP
static T angular(const T theta)
void vote(const DP &pts)
Voting methods.
Eigen::Matrix< T, 3, 1 > Vector3
static T sradial(const T z)
PM::DataPoints DataPoints
Eigen::Matrix< T, 3, 3 > Tensor
void plateVote(const DP &pts, bool doKnn=true)
void cfvote(const DP &pts, bool doKnn=true)
Functions and classes that are dependant on scalar type are defined in this templatized class.
typename NNS::IndexMatrix IndexMatrix
Eigen::Matrix< Index, Eigen::Dynamic, Eigen::Dynamic > IndexMatrix
Eigen::Matrix< T, 3, 3 > Matrix33
SparseTensors sparseStick
Eigen::Matrix< Tensor, Eigen::Dynamic, 1 > Field
SparseTensors sparsePlate
Eigen::Matrix< Tensor, Eigen::Dynamic, 1 > Tensors
static T cij(const T vv, const T sigma)
static T eta(const T vv, const T sigma, const T vvn)
An exception thrown when one tries to access features or descriptors unexisting or of wrong dimension...
Eigen::Matrix< SparseTensor, Eigen::Dynamic, 1 > SparseTensors
Eigen::Matrix< T, 4, 1 > SparseTensor
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > Matrix
A dense matrix over ScalarType.
void refine(const DP &pts)
static T diabolo(const T s, const T c, const T k, const T sigma)
void ballVote(const DP &pts, bool doKnn=true)
void disableBallComponent()
Eigen::Matrix< T, Eigen::Dynamic, 1 > Vector
A vector over ScalarType.
void encode(const DP &pts, Encoding encoding=Encoding::UBALL)
TensorVoting(T sigma_=T(0.2), std::size_t k_=50)
typename DP::InvalidField InvalidField
static T radial(const T z)
void stickVote(const DP &pts, bool doKnn=true)
typename PM::Vector Vector
constexpr T pow(const T base, const std::size_t exponent)
typename PM::Matrix Matrix
void computeKnn(const DP &pts)
typename NNS::Index Index