36 #ifndef LVR2_RECONSTRUCTION_ADAPTIVEKSEARCHSURFACE_H_ 37 #define LVR2_RECONSTRUCTION_ADAPTIVEKSEARCHSURFACE_H_ 80 using std::numeric_limits;
84 using std::unique_ptr;
97 template<
typename BaseVecT>
116 std::string searchTreeName,
144 virtual pair<typename BaseVecT::CoordType, typename BaseVecT::CoordType>
281 const BaseVecT &queryPoint,
283 const vector<size_t> &
id 287 const BaseVecT &queryPoint,
289 const vector<size_t> &
id,
294 const BaseVecT &queryPoint,
296 const vector<size_t> &
id 332 #include "lvr2/reconstruction/AdaptiveKSearchSurface.tcc" 334 #endif // LVR2_RECONSTRUCTION_ADAPTIVEKSEARCHSURFACE_H_ BaseVecT m_centroid
The centroid of the point set.
virtual pair< typename BaseVecT::CoordType, typename BaseVecT::CoordType > distance(BaseVecT v) const
See interface documentation.
An interface class to wrap all functionality that is needed to generate a surface approximation from ...
void parseScanPoses(string posefile)
Parses the file with scan poses and creates a search tree to search for the nearest pose when flippin...
virtual ~AdaptiveKSearchSurface()
Destructor.
std::shared_ptr< PointBuffer > PointBufferPtr
AdaptiveKSearchSurface()
standard Constructor
void init()
Returns the k closest neighbor vertices to a given queryy point.
std::shared_ptr< SearchTree< BaseVecT > > m_poseTree
Search tree for scan poses.
virtual void calculateSurfaceNormals()
Calculates initial point normals using a least squares fit to the m_kn nearest points.
void interpolateSurfaceNormals()
Returns the number of managed points.
Plane< BaseVecT > calcPlaneIterative(const BaseVecT &queryPoint, int k, const vector< size_t > &id)
A point cloud manager class that uses the STANN nearest neighbor search library to handle the data...
Plane< BaseVecT > calcPlane(const BaseVecT &queryPoint, int k, const vector< size_t > &id)
Returns the mean distance of the given point set from the given plane.
Plane< BaseVecT > calcPlaneRANSAC(const BaseVecT &queryPoint, int k, const vector< size_t > &id, bool &ok)
string m_searchTreeName
Type of used search tree.
bool boundingBoxOK(float dx, float dy, float dz)
Checks if the bounding box of a point set is "well formed", i.e. no dimension is significantly larger...