gr::IndexedNormalSet< Point, dim, _ngSize, _Scalar > Struct Template Reference

Normal set indexed by a position in euclidean space. More...

#include <normalset.h>

+ Collaboration diagram for gr::IndexedNormalSet< Point, dim, _ngSize, _Scalar >:

Public Types

typedef std::array< std::vector< unsigned int >, Utils::POW(_ngSize, dim)> AngularGrid
 
enum  MOVE_DIR { POSITIVE, NEGATIVE }
 
using NeiIdsBox = typename gr::Utils::OneRingNeighborhood::NeighborhoodType< dim >::type
 
using Scalar = _Scalar
 

Public Member Functions

bool addElement (const Point &pos, const Point &normal, unsigned int id)
 Add a new couple pos/normal, and its associated id. More...
 
AngularGridangularGrid (const Point &p)
 
std::vector< AngularGrid * > angularGrids (const Point &p)
 
void getNeighbors (const Point &p, std::vector< unsigned int > &nei)
 Get closest points in euclidean space. More...
 
void getNeighbors (const Point &p, const Point &n, std::vector< unsigned int > &nei)
 Get closest points in euclidean an normal space. More...
 
void getNeighbors (const Point &p, const Point &n, Scalar alpha, std::vector< unsigned int > &nei, bool tryReverse=false)
 Get closest poitns in euclidean an normal space with angular deviation. More...
 
 IndexedNormalSet (const Scalar epsilon)
 
virtual ~IndexedNormalSet ()
 

Detailed Description

template<class Point, int dim, int _ngSize, typename _Scalar>
struct gr::IndexedNormalSet< Point, dim, _ngSize, _Scalar >

Normal set indexed by a position in euclidean space.

The size used to hash euclidean coordinates is defined at runtime. The size used to hash the normals in an euclidean cell is defined at compile time

Loops over dimensions used to compute index values are unrolled at compile time.

Member Typedef Documentation

template<class Point , int dim, int _ngSize, typename _Scalar >
typedef std::array< std::vector<unsigned int>, Utils::POW(_ngSize, dim)> gr::IndexedNormalSet< Point, dim, _ngSize, _Scalar >::AngularGrid
template<class Point , int dim, int _ngSize, typename _Scalar >
using gr::IndexedNormalSet< Point, dim, _ngSize, _Scalar >::NeiIdsBox = typename gr::Utils::OneRingNeighborhood::NeighborhoodType<dim>::type
template<class Point , int dim, int _ngSize, typename _Scalar >
using gr::IndexedNormalSet< Point, dim, _ngSize, _Scalar >::Scalar = _Scalar

Member Enumeration Documentation

template<class Point , int dim, int _ngSize, typename _Scalar >
enum gr::IndexedNormalSet::MOVE_DIR
Enumerator
POSITIVE 
NEGATIVE 

Constructor & Destructor Documentation

template<class Point , int dim, int _ngSize, typename _Scalar >
gr::IndexedNormalSet< Point, dim, _ngSize, _Scalar >::IndexedNormalSet ( const Scalar  epsilon)
inline
template<class Point , int dim, int _ngSize, typename Scalar >
gr::IndexedNormalSet< Point, dim, _ngSize, Scalar >::~IndexedNormalSet ( )
inlinevirtual

+ Here is the call graph for this function:

Member Function Documentation

template<class Point , int dim, int _ngSize, typename Scalar >
bool gr::IndexedNormalSet< Point, dim, _ngSize, Scalar >::addElement ( const Point &  pos,
const Point &  normal,
unsigned int  id 
)
inline

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

+ Here is the call graph for this function:

template<class Point , int dim, int _ngSize, typename _Scalar >
AngularGrid* gr::IndexedNormalSet< Point, dim, _ngSize, _Scalar >::angularGrid ( const Point &  p)
inline
Returns
NULL if the grid does not exist or p is out of bound
template<class Point , int dim, int _ngSize, typename _Scalar >
std::vector<AngularGrid*> gr::IndexedNormalSet< Point, dim, _ngSize, _Scalar >::angularGrids ( const Point &  p)
inline
Returns
the Angular Grid contained in p cell + its n*n neighb
template<class Point , int dim, int _ngSize, typename Scalar >
void gr::IndexedNormalSet< Point, dim, _ngSize, Scalar >::getNeighbors ( const Point &  p,
std::vector< unsigned int > &  nei 
)
inline

Get closest points in euclidean space.

+ Here is the call graph for this function:

template<class Point , int dim, int _ngSize, typename Scalar >
void gr::IndexedNormalSet< Point, dim, _ngSize, Scalar >::getNeighbors ( const Point &  p,
const Point &  n,
std::vector< unsigned int > &  nei 
)
inline

Get closest points in euclidean an normal space.

+ Here is the call graph for this function:

template<class Point , int dim, int _ngSize, typename Scalar >
void gr::IndexedNormalSet< Point, dim, _ngSize, Scalar >::getNeighbors ( const Point &  p,
const Point &  n,
Scalar  alpha,
std::vector< unsigned int > &  nei,
bool  tryReverse = false 
)
inline

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

+ Here is the call graph for this function:


The documentation for this struct was generated from the following files:
  • /home/travis/build/STORM-IRIT/OpenGR/src/gr/accelerators/normalset.h
  • /home/travis/build/STORM-IRIT/OpenGR/src/gr/accelerators/normalset.hpp