37#ifndef _PCL_GPU_OCTREE_BOXUTILS_HPP_
38#define _PCL_GPU_OCTREE_BOXUTILS_HPP_
40#include "utils/morton.hpp"
46 __device__ __host__ __forceinline__
51 float d2_xmin = (minp.x -
c.x) * (minp.x -
c.x);
52 float d2_ymin = (minp.y -
c.y) * (minp.y -
c.y);
53 float d2_zmin = (minp.z -
c.z) * (minp.z -
c.z);
58 float d2_zmax = (maxp.z -
c.z) * (maxp.z -
c.z);
63 float d2_ymax = (maxp.y -
c.y) * (maxp.y -
c.y);
71 float d2_xmax = (maxp.x -
c.x) * (maxp.x -
c.x);
91 if (maxp.x < (
c.x - r) || maxp.y < (
c.y - r) || maxp.z < (
c.z - r))
94 if ((
c.x + r) < minp.x || (
c.y + r) < minp.y || (
c.z + r) < minp.z)
Iterator class for point clouds with or without given indices.
__device__ __host__ static __forceinline__ void calcBoundingBox(int level, int code, float3 &res_minp, float3 &res_maxp)
__device__ __host__ static __forceinline__ bool checkIfNodeInsideSphere(const float3 &minp, const float3 &maxp, const float3 &c, float r)
__device__ __host__ static __forceinline__ bool checkIfNodeOutsideSphere(const float3 &minp, const float3 &maxp, const float3 &c, float r)
__device__ __host__ static __forceinline__ void decomposeCode(code_t code, int &cell_x, int &cell_y, int &cell_z)