Point Cloud Library (PCL)  1.3.1
Classes | Public Types | Public Member Functions
pcl::GridProjection Class Reference

Grid projection surface reconstruction method. More...

#include <pcl/surface/grid_projection.h>

Inheritance diagram for pcl::GridProjection:
Inheritance graph
[legend]
Collaboration diagram for pcl::GridProjection:
Collaboration graph
[legend]

List of all members.

Classes

struct  Leaf
 Data leaf. More...

Public Types

typedef pcl::PointCloud
< PointNT >::Ptr 
PointCloudPtr
typedef pcl::KdTree< PointNT > KdTree
typedef pcl::KdTree< PointNT >::Ptr KdTreePtr
typedef boost::unordered_map
< int, Leaf, boost::hash< int >
, std::equal_to< int >
, Eigen::aligned_allocator
< int > > 
HashMap

Public Member Functions

 GridProjection ()
 Constructor.
 GridProjection (double in_resolution)
 Constructor.
 ~GridProjection ()
 Destructor.
void performReconstruction (pcl::PolygonMesh &output)
 Create the surface.
void setResolution (double resolution)
 Set the size of the grid cell.
double getResolution () const
void setPaddingSize (int padding_size)
 When averaging the vectors, we find the union of all the input data points within the padding area,and do a weighted average.
int getPaddingSize () const
void setNearestNeighborNum (int k)
 Set this only when using the k nearest neighbors search instead of finding the point union.
int getNearestNeighborNum () const
void setMaxBinarySearchLevel (int max_binary_search_level)
 Binary search is used in projection.
int getMaxBinarySearchLevel () const
const HashMapgetCellHashMap () const
const std::vector
< Eigen::Vector3f,
Eigen::aligned_allocator
< Eigen::Vector3f > > & 
getVectorAtDataPoint () const
const std::vector
< Eigen::Vector4f,
Eigen::aligned_allocator
< Eigen::Vector4f > > & 
getSurface () const
void getBoundingBox ()
 Get the bounding box for the input data points, also calculating the cell size, and the gaussian scale factor.
void reconstruct (pcl::PolygonMesh &output)
 Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()>
void setSearchMethod (const KdTreePtr &tree)
 Provide a pointer to the search object.
KdTreePtr getSearchMethod ()
 Get a pointer to the search method used.

Detailed Description

Grid projection surface reconstruction method.

Author:
Rosie Li
Note:
If you use this code in any academic work, please cite:
  • Ruosi Li, Lu Liu, Ly Phan, Sasakthi Abeysinghe, Cindy Grimm, Tao Ju. Polygonizing extremal surfaces with manifold guarantees. In Proceedings of the 14th ACM Symposium on Solid and Physical Modeling, 2010.

Member Typedef Documentation

typedef boost::unordered_map<int, Leaf, boost::hash<int>, std::equal_to<int>, Eigen::aligned_allocator<int> > pcl::GridProjection::HashMap

Definition at line 96 of file grid_projection.h.

Reimplemented from pcl::SurfaceReconstruction< PointNT >.

Definition at line 85 of file grid_projection.h.

Reimplemented from pcl::SurfaceReconstruction< PointNT >.

Definition at line 86 of file grid_projection.h.

Definition at line 83 of file grid_projection.h.


Constructor & Destructor Documentation

pcl::GridProjection::GridProjection ( )

Constructor.

Definition at line 49 of file grid_projection.hpp.

pcl::GridProjection::GridProjection ( double  in_resolution)

Constructor.

Parameters:
in_resolutionset the resolution of the grid

Definition at line 55 of file grid_projection.hpp.

pcl::GridProjection::~GridProjection ( )

Destructor.

Definition at line 61 of file grid_projection.hpp.


Member Function Documentation

void pcl::GridProjection::getBoundingBox ( )

Get the bounding box for the input data points, also calculating the cell size, and the gaussian scale factor.

Definition at line 82 of file grid_projection.hpp.

const HashMap& pcl::GridProjection::getCellHashMap ( ) const [inline]

Definition at line 188 of file grid_projection.h.

int pcl::GridProjection::getMaxBinarySearchLevel ( ) const [inline]

Definition at line 181 of file grid_projection.h.

int pcl::GridProjection::getNearestNeighborNum ( ) const [inline]

Definition at line 166 of file grid_projection.h.

int pcl::GridProjection::getPaddingSize ( ) const [inline]

Definition at line 151 of file grid_projection.h.

double pcl::GridProjection::getResolution ( ) const [inline]

Definition at line 131 of file grid_projection.h.

KdTreePtr pcl::SurfaceReconstruction::getSearchMethod ( ) [inline, inherited]

Get a pointer to the search method used.

Definition at line 86 of file reconstruction.h.

const std::vector<Eigen::Vector4f, Eigen::aligned_allocator<Eigen::Vector4f> >& pcl::GridProjection::getSurface ( ) const [inline]

Definition at line 200 of file grid_projection.h.

const std::vector<Eigen::Vector3f, Eigen::aligned_allocator<Eigen::Vector3f> >& pcl::GridProjection::getVectorAtDataPoint ( ) const [inline]

Definition at line 194 of file grid_projection.h.

void pcl::GridProjection::performReconstruction ( pcl::PolygonMesh output) [virtual]

Create the surface.

The 1st step is filling the padding, so that all the cells in the padding area are in the hash map. The 2nd step is store the vector, and projected point. The 3rd step is finding all the edges intersects the surface, and creating surface.

Parameters:
outputthe resultant polygonal mesh

Implements pcl::SurfaceReconstruction< PointNT >.

Definition at line 610 of file grid_projection.hpp.

void pcl::SurfaceReconstruction::reconstruct ( pcl::PolygonMesh output) [inherited]

Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()>

Parameters:
outputthe resultant reconstructed surface model
void pcl::GridProjection::setMaxBinarySearchLevel ( int  max_binary_search_level) [inline]

Binary search is used in projection.

given a point x, we find another point which is 3*cell_size_ far away from x. Then we do a binary search between these two points to find where the projected point should be.

Definition at line 176 of file grid_projection.h.

void pcl::GridProjection::setNearestNeighborNum ( int  k) [inline]

Set this only when using the k nearest neighbors search instead of finding the point union.

Parameters:
kThe number of nearest neighbors we are looking for

Definition at line 161 of file grid_projection.h.

void pcl::GridProjection::setPaddingSize ( int  padding_size) [inline]

When averaging the vectors, we find the union of all the input data points within the padding area,and do a weighted average.

Say if the padding size is 1, when we process cell (x,y,z), we will find union of input data points from (x-1) to (x+1), (y-1) to (y+1), (z-1) to (z+1)(in total, 27 cells). In this way, even the cells itself doesnt contain any data points, we will stil process it because there are data points in the padding area. This can help us fix holes which is smaller than the padding size.

Parameters:
padding_sizeThe num of padding cells we want to create

Definition at line 146 of file grid_projection.h.

void pcl::GridProjection::setResolution ( double  resolution) [inline]

Set the size of the grid cell.

Parameters:
resolutionthe size of the grid cell

Definition at line 125 of file grid_projection.h.

void pcl::SurfaceReconstruction::setSearchMethod ( const KdTreePtr tree) [inline, inherited]

Provide a pointer to the search object.

Parameters:
treea pointer to the spatial search object.

Definition at line 79 of file reconstruction.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines