37 #ifndef PCL_GPU_OCTREE_INTERNAL_HPP_ 38 #define PCL_GPU_OCTREE_INTERNAL_HPP_ 40 #include <pcl/gpu/containers/device_array.h> 41 #include <pcl/gpu/octree/device_format.hpp> 42 #include <pcl/gpu/utils/safe_call.hpp> 59 OctreeGlobal() : nodes(0), codes(0), begs(0), ends(0), nodes_num(0), parent(0) {}
85 static void get_gpu_arch_compiled_for(
int& bin,
int& ptr);
90 void setCloud(
const PointCloud& input_points);
92 void radiusSearchHost(
const PointType& center,
float radius, std::vector<int>& out,
int max_nn)
const;
93 void approxNearestSearchHost(
const PointType& query,
int& out_index,
float& sqr_dist)
const;
95 void radiusSearch(
const Queries& queries,
float radius, NeighborIndices& results);
96 void radiusSearch(
const Queries& queries,
const Radiuses& radiuses, NeighborIndices& results);
98 void radiusSearch(
const Queries& queries,
const Indices& indices,
float radius, NeighborIndices& results);
100 void approxNearestSearch(
const Queries& queries, NeighborIndices& results)
const;
102 void nearestKSearchBatch(
const Queries& queries,
int k, NeighborIndices& results)
const;
136 void internalDownload();
138 template<
typename BatchType>
139 void radiusSearchEx(BatchType& batch,
const Queries& queries, NeighborIndices& results);
DeviceArray< int > BatchResult
std::vector< float > points_sorted
DeviceArray< int > Indices
std::vector< int > indices
pcl::gpu::NeighborIndices NeighborIndices
DeviceArray2D< int > storage
DeviceArray< int > BatchResultSizes
OctreeGlobalWithBox octreeGlobal
void bruteForceRadiusSearch(const OctreeImpl::PointCloud &cloud, const OctreeImpl::PointType &query, float radius, DeviceArray< int > &result, DeviceArray< int > &buffer)
DeviceArray2D< float > points_sorted
DeviceArray< float > Radiuses
DeviceArray< int > indices
DeviceArray< PointType > PointArray
DeviceArray< float > BatchResultSqrDists