An interface class to wrap all functionality that is needed to generate a surface approximation from point cloud data. More...
#include <PointsetSurface.hpp>
Public Member Functions | |
virtual void | calculateSurfaceNormals ()=0 |
Calculates surface normals for each data point in the given PointBuffeer. If the buffer alreay contains normal information it will be overwritten with the new normals. More... | |
virtual pair< typename BaseVecT::CoordType, typename BaseVecT::CoordType > | distance (BaseVecT v) const =0 |
Returns the distance of vertex v from the nearest tangent plane. More... | |
const BoundingBox< BaseVecT > & | getBoundingBox () const |
Returns the bounding box of the point set. More... | |
virtual Normal< float > | getInterpolatedNormal (const BaseVecT &position) const |
Interpolates a surface normal at the given position. More... | |
virtual PointBufferPtr | pointBuffer () const |
Returns the internal point buffer. After a call of calculateSurfaceNormals the buffer will contain normal information. More... | |
std::shared_ptr< SearchTree< BaseVecT > > | searchTree () const |
Returns a pointer to the search tree. More... | |
void | setKd (int k) |
Sets the number of points that is used for distance evaluation, i.e. an average of the distance to the k nearest data points is given (useful in noisy data sets). More... | |
void | setKi (int k) |
If k is > 0, each normal will be averaged with its k neighbors. More... | |
void | setKn (int k) |
Sets the size of the k-neighborhood that is used for normal estimation. More... | |
Protected Member Functions | |
PointsetSurface () | |
PointsetSurface (PointBufferPtr pointcloud) | |
Constructor. Stores the given buffer pointer. If the point buffer does not contain surface normals, you will have to call calculateSurfaceNormals before the first call @distance. More... | |
Protected Attributes | |
BoundingBox< BaseVecT > | m_boundingBox |
The bounding box of the point cloud. More... | |
int | m_kd |
The number of points used for distance function evaluation. More... | |
int | m_ki |
The number of points used for normal interpolation. More... | |
int | m_kn |
The number of points used for normal estimation. More... | |
PointBufferPtr | m_pointBuffer |
The point cloud used for surface approximation. More... | |
std::shared_ptr< SearchTree< BaseVecT > > | m_searchTree |
The search tree that is built from the point cloud data. More... | |
An interface class to wrap all functionality that is needed to generate a surface approximation from point cloud data.
Classes that implement this interface can be used for Marching Cubes based mesh generation algorithms in via the SurfaceReconstruction interface.
Definition at line 61 of file PointsetSurface.hpp.
|
protected |
Constructor. Stores the given buffer pointer. If the point buffer does not contain surface normals, you will have to call calculateSurfaceNormals before the first call @distance.
|
inlineprotected |
Definition at line 139 of file PointsetSurface.hpp.
|
pure virtual |
Calculates surface normals for each data point in the given PointBuffeer. If the buffer alreay contains normal information it will be overwritten with the new normals.
Implemented in lvr2::AdaptiveKSearchSurface< BaseVecT >.
|
pure virtual |
Returns the distance of vertex v from the nearest tangent plane.
p | A grid point |
Implemented in lvr2::AdaptiveKSearchSurface< BaseVecT >.
const BoundingBox<BaseVecT>& lvr2::PointsetSurface< BaseVecT >::getBoundingBox | ( | ) | const |
Returns the bounding box of the point set.
|
virtual |
Interpolates a surface normal at the given position.
position | the position to calculate a normal for |
|
virtual |
Returns the internal point buffer. After a call of calculateSurfaceNormals the buffer will contain normal information.
std::shared_ptr<SearchTree<BaseVecT> > lvr2::PointsetSurface< BaseVecT >::searchTree | ( | ) | const |
Returns a pointer to the search tree.
|
inline |
Sets the number of points that is used for distance evaluation, i.e. an average of the distance to the k nearest data points is given (useful in noisy data sets).
Definition at line 128 of file PointsetSurface.hpp.
|
inline |
If k is > 0, each normal will be averaged with its k neighbors.
Definition at line 114 of file PointsetSurface.hpp.
|
inline |
Sets the size of the k-neighborhood that is used for normal estimation.
Definition at line 120 of file PointsetSurface.hpp.
|
protected |
The bounding box of the point cloud.
Definition at line 148 of file PointsetSurface.hpp.
|
protected |
The number of points used for distance function evaluation.
Definition at line 157 of file PointsetSurface.hpp.
|
protected |
The number of points used for normal interpolation.
Definition at line 154 of file PointsetSurface.hpp.
|
protected |
The number of points used for normal estimation.
Definition at line 151 of file PointsetSurface.hpp.
|
protected |
The point cloud used for surface approximation.
Definition at line 139 of file PointsetSurface.hpp.
|
protected |
The search tree that is built from the point cloud data.
Definition at line 145 of file PointsetSurface.hpp.