Point Cloud Library (PCL)  1.14.0-dev
List of all members | Public Types | Static Public Member Functions | Static Public Attributes
pcl::device::Morton Struct Reference

#include </__w/1/s/gpu/octree/src/utils/morton.hpp>

Public Types

using code_t = int
 

Static Public Member Functions

__device__ __host__ static __forceinline__ int spreadBits (int x, int offset)
 
__device__ __host__ static __forceinline__ int compactBits (int x, int offset)
 
__device__ __host__ static __forceinline__ code_t createCode (int cell_x, int cell_y, int cell_z)
 
__device__ __host__ static __forceinline__ void decomposeCode (code_t code, int &cell_x, int &cell_y, int &cell_z)
 
__device__ __host__ static __forceinline__ uint3 decomposeCode (code_t code)
 
__host__ __device__ static __forceinline__ code_t extractLevelCode (code_t code, int level)
 
__host__ __device__ static __forceinline__ code_t shiftLevelCode (code_t level_code, int level)
 

Static Public Attributes

static const int levels = 10
 
static const int bits_per_level = 3
 
static const int nbits = levels * bits_per_level
 

Detailed Description

Definition at line 45 of file morton.hpp.

Member Typedef Documentation

◆ code_t

Definition at line 51 of file morton.hpp.

Member Function Documentation

◆ compactBits()

__device__ __host__ static __forceinline__ int pcl::device::Morton::compactBits ( int  x,
int  offset 
)
inlinestatic

Definition at line 66 of file morton.hpp.

Referenced by decomposeCode().

◆ createCode()

__device__ __host__ static __forceinline__ code_t pcl::device::Morton::createCode ( int  cell_x,
int  cell_y,
int  cell_z 
)
inlinestatic

Definition at line 78 of file morton.hpp.

References spreadBits().

Referenced by pcl::device::CalcMorton::operator()().

◆ decomposeCode() [1/2]

__device__ __host__ static __forceinline__ uint3 pcl::device::Morton::decomposeCode ( code_t  code)
inlinestatic

Definition at line 92 of file morton.hpp.

References compactBits().

◆ decomposeCode() [2/2]

__device__ __host__ static __forceinline__ void pcl::device::Morton::decomposeCode ( code_t  code,
int &  cell_x,
int &  cell_y,
int &  cell_z 
)
inlinestatic

Definition at line 84 of file morton.hpp.

References compactBits().

Referenced by pcl::device::calcBoundingBox(), and pcl::device::findNode().

◆ extractLevelCode()

__host__ __device__ static __forceinline__ code_t pcl::device::Morton::extractLevelCode ( code_t  code,
int  level 
)
inlinestatic

Definition at line 98 of file morton.hpp.

References nbits.

Referenced by pcl::device::findNode(), and pcl::device::CompareByLevelCode::operator()().

◆ shiftLevelCode()

__host__ __device__ static __forceinline__ code_t pcl::device::Morton::shiftLevelCode ( code_t  level_code,
int  level 
)
inlinestatic

Definition at line 104 of file morton.hpp.

References nbits.

◆ spreadBits()

__device__ __host__ static __forceinline__ int pcl::device::Morton::spreadBits ( int  x,
int  offset 
)
inlinestatic

Definition at line 54 of file morton.hpp.

Referenced by createCode().

Member Data Documentation

◆ bits_per_level

const int pcl::device::Morton::bits_per_level = 3
static

Definition at line 48 of file morton.hpp.

◆ levels

const int pcl::device::Morton::levels = 10
static

Definition at line 47 of file morton.hpp.

Referenced by pcl::device::findNode().

◆ nbits

const int pcl::device::Morton::nbits = levels * bits_per_level
static

Definition at line 49 of file morton.hpp.

Referenced by extractLevelCode(), and shiftLevelCode().


The documentation for this struct was generated from the following file: