Program Listing for File SearchTreeLBVH.hpp
↰ Return to documentation for file (include/lvr2/reconstruction/SearchTreeLBVH.hpp)
#ifndef LVR2_RECONSTRUCTION_SEARCHTREELBVH_HPP_
#define LVR2_RECONSTRUCTION_SEARCHTREELBVH_HPP_
#include <vector>
#include "cuda/LBVHIndex.hpp"
#include "lvr2/types/PointBuffer.hpp"
#include "lvr2/reconstruction/SearchTree.hpp"
namespace lvr2
{
template<typename BaseVecT>
class SearchTreeLBVH : public SearchTree<BaseVecT>
{
private:
using CoordT = typename BaseVecT::CoordType;
public:
SearchTreeLBVH(PointBufferPtr buffer);
virtual int kSearch(
const BaseVecT& qp,
int k,
vector<size_t>& indices,
vector<CoordT>& distances
) const override;
virtual int radiusSearch(
const BaseVecT& qp,
int k,
float r,
vector<size_t>& indices,
vector<CoordT>& distances
) const override;
void kSearchParallel(
const BaseVecT* query,
int n,
int k,
vector<size_t>& indices,
vector<CoordT>& distances
) const;
void radiusSearchParallel(
const BaseVecT* query,
int n,
int k,
float r,
vector<size_t>& indices,
vector<CoordT>& distances,
vector<unsigned int>& neighbors
) const;
protected:
lbvh::LBVHIndex m_tree;
};
} // namespace lvr2
#include "lvr2/reconstruction/SearchTreeLBVH.tcc"
#endif // LVR2_RECONSTRUCTION_SEARCHTREELBVH_HPP_