Super4PCS Library  V1.1.2(719f5c0)
GlobalRegistration::IndexedNormalHealSet Class Reference

Work only in 3D, based on healpix. More...

+ Collaboration diagram for GlobalRegistration::IndexedNormalHealSet:

Public Types

enum  { INDEX_VALIDATION_ENABLED = VALIDATE_INDICES }
 State of the index validation, disabled when compiled in release mode. More...
 
using Scalar = double
 
typedef Eigen::Vector3d Point
 
typedef Eigen::Vector3i Index3D
 
typedef std::vector< std::vector< unsigned int > > ChealMap
 

Public Member Functions

 IndexedNormalHealSet (double epsilon, int resolution=4)
 
virtual ~IndexedNormalHealSet ()
 
template<typename PointT >
bool addElement (const PointT &pos, const PointT &normal, unsigned int id)
 Add a new couple pos/normal, and its associated id. More...
 
ChealMapgetMap (const Point &p)
 
std::vector< ChealMap * > getEpsilonMaps (const Point &p)
 
template<typename PointT >
void getNeighbors (const PointT &p, std::vector< unsigned int > &nei)
 Get closest points in euclidean space. More...
 
template<typename PointT >
void getNeighbors (const PointT &p, const PointT &n, std::vector< unsigned int > &nei)
 Get closest points in euclidean an normal space. More...
 
template<typename PointT >
void getNeighbors (const PointT &p, const PointT &n, double alpha, std::vector< unsigned int > &nei)
 Get closest poitns in euclidean an normal space with angular deviation. More...
 
bool isValid () const
 

Detailed Description

Work only in 3D, based on healpix.

Scalar are constrained to be double Points are constrained to be Eigen vec3d

Member Typedef Documentation

◆ ChealMap

typedef std::vector<std::vector<unsigned int> > GlobalRegistration::IndexedNormalHealSet::ChealMap

◆ Index3D

◆ Point

◆ Scalar

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

State of the index validation, disabled when compiled in release mode.

Enumerator
INDEX_VALIDATION_ENABLED 

Constructor & Destructor Documentation

◆ IndexedNormalHealSet()

GlobalRegistration::IndexedNormalHealSet::IndexedNormalHealSet ( double  epsilon,
int  resolution = 4 
)
inline
+ Here is the call graph for this function:

◆ ~IndexedNormalHealSet()

virtual GlobalRegistration::IndexedNormalHealSet::~IndexedNormalHealSet ( )
inlinevirtual
+ Here is the call graph for this function:

Member Function Documentation

◆ addElement()

template<typename PointT >
bool GlobalRegistration::IndexedNormalHealSet::addElement ( const PointT &  pos,
const PointT &  normal,
unsigned int  id 
)

Add a new couple pos/normal, and its associated id.

Template functions.

◆ getEpsilonMaps()

std::vector<ChealMap*> GlobalRegistration::IndexedNormalHealSet::getEpsilonMaps ( const Point p)
inline
Returns
a vector of maps containing points that can be close to p (according to input epsilon)
+ Here is the call graph for this function:

◆ getMap()

ChealMap* GlobalRegistration::IndexedNormalHealSet::getMap ( const Point p)
inline
Returns
NULL if the grid does not exist or p is out of bound

◆ getNeighbors() [1/3]

template<typename PointT >
void GlobalRegistration::IndexedNormalHealSet::getNeighbors ( const PointT &  p,
std::vector< unsigned int > &  nei 
)

Get closest points in euclidean space.

+ Here is the call graph for this function:

◆ getNeighbors() [2/3]

template<typename PointT >
void GlobalRegistration::IndexedNormalHealSet::getNeighbors ( const PointT &  p,
const PointT &  n,
std::vector< unsigned int > &  nei 
)

Get closest points in euclidean an normal space.

+ Here is the call graph for this function:

◆ getNeighbors() [3/3]

template<typename PointT >
void GlobalRegistration::IndexedNormalHealSet::getNeighbors ( const PointT &  p,
const PointT &  n,
double  alpha,
std::vector< unsigned int > &  nei 
)

Get closest poitns in euclidean an normal space with angular deviation.

+ Here is the call graph for this function:

◆ isValid()

bool GlobalRegistration::IndexedNormalHealSet::isValid ( ) const
inline