Point Cloud Library (PCL) 1.12.1
Loading...
Searching...
No Matches
pcl::device Namespace Reference

Namespaces

namespace  kinfuLS

Classes

class  AsyncCopy
struct  bit_not
struct  Block
struct  CalcMorton
struct  CompareByLevelCode
struct  ConnectedComponents
struct  CUDATree
 Struct that holds a single RDF tree in GPU. More...
class  DeviceArray
 DeviceArray class More...
class  DeviceArray2D
 DeviceArray2D class More...
class  DeviceMemory
 DeviceMemory class More...
class  DeviceMemory2D
 DeviceMemory2D class More...
struct  Dilatation
struct  Eigen33
struct  Emulation
struct  FacetStream
struct  float12
struct  float8
struct  Histogram
struct  InitalSimplex
struct  Intr
 Camera intrinsics structure. More...
struct  LessThanByFacet
struct  LightSource
 Light source collection. More...
struct  Mat33
 3x3 Matrix for device code More...
struct  Morton
class  MultiTreeLiveProc
 Processor using multiple trees. More...
struct  NeighborIndices
struct  NonCachedLoad
struct  OctreeGlobal
struct  OctreeGlobalWithBox
class  OctreeImpl
struct  OctreeIteratorDevice
struct  OctreeIteratorDeviceNS
struct  OctreePriorityIteratorDevice
struct  plusWeighted
struct  PointStream
struct  PPFRGBSignature
struct  PPFSignature
struct  PrincipalCurvatures
struct  prob_histogram
class  ProbabilityProc
 Implementation Class to process probability histograms on GPU. More...
struct  PtrStep
struct  PtrStepSz
struct  PtrSz
struct  Static
struct  Static< true >
class  TextureBinder
struct  VFHEstimationImpl
struct  Warp

Typedefs

using PointType = float4
using NormalType = float4
using PointXYZRGB = float4
using PointCloud = DeviceArray<PointType>
using Normals = DeviceArray<NormalType>
using Indices = DeviceArray<int>
using PointXYZRGBCloud = DeviceArray<PointType>
using PFHSignature125 = Histogram<125>
using PFHRGBSignature250 = Histogram<250>
using FPFHSignature33 = Histogram<33>
using VFHSignature308 = Histogram<308>
using ushort = unsigned short
using MapArr = DeviceArray2D<float>
using DepthMap = DeviceArray2D<ushort>
using LabelProbability = DeviceArray2D<prob_histogram>
using Cloud = DeviceArray2D<float4>
using Image = DeviceArray2D<uchar4>
using Depth = DeviceArray2D<unsigned short>
using Labels = DeviceArray2D<unsigned char>
using HueImage = DeviceArray2D<float>
using Mask = DeviceArray2D<unsigned char>
using MultiLabels = DeviceArray2D<char4>
using FacetsDists = DeviceArray<std::uint64_t>
using Perm = DeviceArray<int>
using StateType = float8
using PixelRGB = uchar4

Enumerations

enum  ScanKind { exclusive , inclusive , exclusive , inclusive }
enum  ScanKind { exclusive , inclusive , exclusive , inclusive }

Functions

__device__ __forceinline__ void computeRoots2 (const float &b, const float &c, float3 &roots)
__device__ __forceinline__ void computeRoots3 (float c0, float c1, float c2, float3 &roots)
__device__ __host__ __forceinline__ bool computePairFeatures (const float3 &p1, const float3 &n1, const float3 &p2, const float3 &n2, float &f1, float &f2, float &f3, float &f4)
__device__ __host__ __forceinline__ bool computeRGBPairFeatures (const float3 &p1, const float3 &n1, const int &colors1, const float3 &p2, const float3 &n2, const int &colors2, float &f1, float &f2, float &f3, float &f4, float &f5, float &f6, float &f7)
__device__ __host__ __forceinline__ void computeRGBPairFeatures_RGBOnly (const int &colors1, const int &colors2, float &f5, float &f6, float &f7)
__device__ __host__ __forceinline__ bool computePPFPairFeature (const float3 &p1, const float3 &n1, const float3 &p2, const float3 &n2, float &f1, float &f2, float &f3, float &f4)
__device__ __host__ __forceinline__ void computeAlfaM (const float3 &model_reference_point, const float3 &model_reference_normal, const float3 &model_point, float &alpha_m)
__device__ __host__ __forceinline__ void AngleAxisf (float angle, const float3 &r, float3 &row1, float3 &row2, float3 &row3)
__device__ __host__ __forceinline__ void Rodrigues (const float3 &rvec, float3 &row1, float3 &row2, float3 &row3)
void computeNormals (const PointCloud &cloud, const NeighborIndices &nn_indices, Normals &normals)
void flipNormalTowardsViewpoint (const PointCloud &cloud, const float3 &vp, Normals &normals)
void flipNormalTowardsViewpoint (const PointCloud &cloud, const Indices &indices, const float3 &vp, Normals &normals)
void repackToAosForPfh (const PointCloud &cloud, const Normals &normals, const NeighborIndices &neighbours, DeviceArray2D< float > &data_rpk, int &max_elems_rpk)
void computePfh125 (const DeviceArray2D< float > &data_rpk, int max_elems_rpk, const NeighborIndices &neighbours, DeviceArray2D< PFHSignature125 > &features)
void repackToAosForPfhRgb (const PointCloud &cloud, const Normals &normals, const NeighborIndices &neighbours, DeviceArray2D< float > &data_rpk, int &max_elems_rpk)
void computePfhRgb250 (const DeviceArray2D< float > &data_rpk, int max_elems_rpk, const NeighborIndices &neighbours, DeviceArray2D< PFHRGBSignature250 > &features)
void computeSPFH (const PointCloud &surface, const Normals &normals, const Indices &indices, const NeighborIndices &neighbours, DeviceArray2D< FPFHSignature33 > &spfh33)
void computeFPFH (const PointCloud &cloud, const NeighborIndices &neighbours, const DeviceArray2D< FPFHSignature33 > &spfh, DeviceArray2D< FPFHSignature33 > &features)
void computeFPFH (const PointCloud &cloud, const Indices &indices, const PointCloud &surface, const NeighborIndices &neighbours, DeviceArray< int > &lookup, const DeviceArray2D< FPFHSignature33 > &spfh, DeviceArray2D< FPFHSignature33 > &features)
int computeUniqueIndices (std::size_t surface_size, const NeighborIndices &neighbours, DeviceArray< int > &unique_indices, DeviceArray< int > &lookup)
void computePPF (const PointCloud &input, const Normals &normals, const Indices &indices, DeviceArray< PPFSignature > &output)
void computePPFRGB (const PointXYZRGBCloud &input, const Normals &normals, const Indices &indices, DeviceArray< PPFRGBSignature > &output)
void computePPFRGBRegion (const PointXYZRGBCloud &cloud, const Normals &normals, const Indices &indices, const NeighborIndices &nn_indices, DeviceArray< PPFRGBSignature > &output)
void computePointPrincipalCurvatures (const Normals &normals, const Indices &indices, const NeighborIndices &neighbours, DeviceArray< PrincipalCurvatures > &output, DeviceArray2D< float > &proj_normals_buf)
template<typename PointT>
void compute3DCentroid (const DeviceArray< PointT > &cloud, float3 &centroid)
template<typename PointT>
void compute3DCentroid (const DeviceArray< PointT > &cloud, const Indices &indices, float3 &centroid)
template<typename PointT>
float3 getMaxDistance (const DeviceArray< PointT > &cloud, const float3 &pivot)
template<typename PointT>
float3 getMaxDistance (const DeviceArray< PointT > &cloud, const Indices &indices, const float3 &pivot)
void computeSpinImagesOrigigNormal (bool radial, bool angular, float support_angle_cos, const Indices &indices, const PointCloud &input_cloud, const Normals &input_normals, const PointCloud &surface, const Normals &normals, const NeighborIndices &neighbours, int min_neighb, int image_width, float bin_size, PtrStep< float > output)
void computeSpinImagesCustomAxes (bool radial, bool angular, float support_angle_cos, const Indices &indices, const PointCloud &input_cloud, const Normals &input_normals, const PointCloud &surface, const Normals &normals, const NeighborIndices &neighbours, int min_neighb, int image_width, float bin_size, const float3 &rotation_axis, PtrStep< float > output)
void computeSpinImagesCustomAxesCloud (bool radial, bool angular, float support_angle_cos, const Indices &indices, const PointCloud &input_cloud, const Normals &input_normals, const PointCloud &surface, const Normals &normals, const NeighborIndices &neighbours, int min_neighb, int image_width, float bin_size, const Normals &rotation_axes_cloud, PtrStep< float > output)
void computeMask (const NeighborIndices &neighbours, int min_neighb, DeviceArray< unsigned char > &mask)
__forceinline__ __device__ __host__ float3 operator/ (const float3 &vec, float val)
__device__ __host__ __forceinline__ float3 & operator/= (float3 &v, const float &value)
__device__ __host__ __forceinline__ float norm (const float3 &v1, const float3 &v2)
template<typename T>
__device__ __forceinline__ float3 tr (const T &v)
__host__ __device__ float3 normalize (const float3 &v)
__device__ __forceinline__ void pack_tsdf (float tsdf, int weight, short2 &value)
__device__ __forceinline__ void unpack_tsdf (short2 value, float &tsdf, int &weight)
__device__ __forceinline__ float unpack_tsdf (short2 value)
__device__ __forceinline__ float3 operator* (const Mat33 &m, const float3 &vec)
template<ScanKind Kind, class T>
__device__ __forceinline__ T scan_warp (volatile T *ptr, const unsigned int idx=threadIdx.x)
template<class T>
__device__ __host__ __forceinline__ void swap (T &a, T &b)
__device__ __forceinline__ float dot (const float3 &v1, const float3 &v2)
__device__ __forceinline__ float3 & operator+= (float3 &vec, const float &v)
__device__ __forceinline__ float3 operator+ (const float3 &v1, const float3 &v2)
__device__ __forceinline__ float3 & operator*= (float3 &vec, const float &v)
__device__ __forceinline__ float3 operator- (const float3 &v1, const float3 &v2)
__device__ __forceinline__ float3 operator* (const float3 &v1, const float &v)
__device__ __forceinline__ float norm (const float3 &v)
__device__ __forceinline__ float3 normalized (const float3 &v)
__device__ __host__ __forceinline__ float3 cross (const float3 &v1, const float3 &v2)
void bilateralFilter (const DepthMap &src, DepthMap &dst)
 Performs bilateral filtering of disparity map.
void pyrDown (const DepthMap &src, DepthMap &dst)
 Computes depth pyramid.
void createVMap (const Intr &intr, const DepthMap &depth, MapArr &vmap)
 Computes vertex map.
void createNMap (const MapArr &vmap, MapArr &nmap)
 Computes normal map using cross product.
void computeNormalsEigen (const MapArr &vmap, MapArr &nmap)
 Computes normal map using Eigen/PCA approach.
void tranformMaps (const MapArr &vmap_src, const MapArr &nmap_src, const Mat33 &Rmat, const float3 &tvec, MapArr &vmap_dst, MapArr &nmap_dst)
 Performs affine transform of vertex and normal maps.
void truncateDepth (DepthMap &depth, float max_distance)
 Performs depth truncation.
void findCoresp (const MapArr &vmap_g_curr, const MapArr &nmap_g_curr, const Mat33 &Rprev_inv, const float3 &tprev, const Intr &intr, const MapArr &vmap_g_prev, const MapArr &nmap_g_prev, float distThres, float angleThres, PtrStepSz< short2 > coresp)
 (now it's extra code) Computes corespondances map
void estimateTransform (const MapArr &v_dst, const MapArr &n_dst, const MapArr &v_src, const PtrStepSz< short2 > &coresp, DeviceArray2D< float > &gbuf, DeviceArray< float > &mbuf, float *matrixA_host, float *vectorB_host)
 (now it's extra code) Computation Ax=b for ICP iteration
void estimateCombined (const Mat33 &Rcurr, const float3 &tcurr, const MapArr &vmap_curr, const MapArr &nmap_curr, const Mat33 &Rprev_inv, const float3 &tprev, const Intr &intr, const MapArr &vmap_g_prev, const MapArr &nmap_g_prev, float distThres, float angleThres, DeviceArray2D< float > &gbuf, DeviceArray< float > &mbuf, float *matrixA_host, float *vectorB_host)
 Computation Ax=b for ICP iteration.
void estimateCombined (const Mat33 &Rcurr, const float3 &tcurr, const MapArr &vmap_curr, const MapArr &nmap_curr, const Mat33 &Rprev_inv, const float3 &tprev, const Intr &intr, const MapArr &vmap_g_prev, const MapArr &nmap_g_prev, float distThres, float angleThres, DeviceArray2D< double > &gbuf, DeviceArray< double > &mbuf, double *matrixA_host, double *vectorB_host)
PCL_EXPORTS void initVolume (PtrStep< short2 > array)
 Perform tsdf volume initialization.
void integrateTsdfVolume (const PtrStepSz< ushort > &depth_raw, const Intr &intr, const float3 &volume_size, const Mat33 &Rcurr_inv, const float3 &tcurr, float tranc_dist, PtrStep< short2 > volume)
 Performs Tsfg volume uptation (extra obsolete now).
PCL_EXPORTS void integrateTsdfVolume (const PtrStepSz< ushort > &depth_raw, const Intr &intr, const float3 &volume_size, const Mat33 &Rcurr_inv, const float3 &tcurr, float tranc_dist, PtrStep< short2 > volume, DeviceArray2D< float > &depthRawScaled)
 Function that integrates volume if volume element contains: 2 bytes for round(tsdf*SHORT_MAX) and 2 bytes for integer weight.
void initColorVolume (PtrStep< uchar4 > color_volume)
 Initialzied color volume.
void updateColorVolume (const Intr &intr, float tranc_dist, const Mat33 &R_inv, const float3 &t, const MapArr &vmap, const PtrStepSz< uchar3 > &colors, const float3 &volume_size, PtrStep< uchar4 > color_volume, int max_weight=1)
 Performs integration in color volume.
void raycast (const Intr &intr, const Mat33 &Rcurr, const float3 &tcurr, float tranc_dist, const float3 &volume_size, const PtrStep< short2 > &volume, MapArr &vmap, MapArr &nmap)
 Generation vertex and normal maps from volume for current camera pose.
void generateImage (const MapArr &vmap, const MapArr &nmap, const LightSource &light, PtrStepSz< uchar3 > dst)
 Renders 3D image of the scene.
void generateDepth (const Mat33 &R_inv, const float3 &t, const MapArr &vmap, DepthMap &dst)
 Renders depth image from give pose.
void paint3DView (const PtrStep< uchar3 > &colors, PtrStepSz< uchar3 > dst, float colors_weight=0.5f)
 Paints 3D view with color map.
void resizeVMap (const MapArr &input, MapArr &output)
 Performs resize of vertex map to next pyramid level by averaging each four points.
void resizeNMap (const MapArr &input, MapArr &output)
 Performs resize of vertex map to next pyramid level by averaging each four normals.
PCL_EXPORTS std::size_t extractCloud (const PtrStep< short2 > &volume, const float3 &volume_size, PtrSz< PointType > output)
 Perform point cloud extraction from tsdf volume.
template<typename NormalType>
void extractNormals (const PtrStep< short2 > &volume, const float3 &volume_size, const PtrSz< PointType > &input, NormalType *output)
 Performs normals computation for given points using tsdf volume.
void exctractColors (const PtrStep< uchar4 > &color_volume, const float3 &volume_size, const PtrSz< PointType > &points, uchar4 *colors)
 Performs colors exctraction from color volume.
template<typename T>
void convert (const MapArr &vmap, DeviceArray2D< T > &output)
 Conversion from SOA to AOS.
void mergePointNormal (const DeviceArray< float4 > &cloud, const DeviceArray< float8 > &normals, const DeviceArray< float12 > &output)
 Merges pcl::PointXYZ and pcl::Normal to PointNormal.
bool valid_host (float value)
 Check for qnan (unused now).
void sync ()
 synchronizes CUDA execution
template<class D, class Matx>
D & device_cast (Matx &matx)
void bindTextures (const int *edgeBuf, const int *triBuf, const int *numVertsBuf)
 Binds marching cubes tables to texture references.
void unbindTextures ()
 Unbinds.
int getOccupiedVoxels (const PtrStep< short2 > &volume, DeviceArray2D< int > &occupied_voxels)
 Scans tsdf volume and retrieves occupied voxels.
int computeOffsetsAndTotalVertexes (DeviceArray2D< int > &occupied_voxels)
 Computes total number of vertexes for all voxels and offsets of vertexes in final triangle array.
void generateTriangles (const PtrStep< short2 > &volume, const DeviceArray2D< int > &occupied_voxels, const float3 &volume_size, DeviceArray< PointType > &output)
 Generates final triangle array.
void bruteForceRadiusSearch (const OctreeImpl::PointCloud &cloud, const OctreeImpl::PointType &query, float radius, DeviceArray< int > &result, DeviceArray< int > &buffer)
__device__ __host__ __forceinline__ unsigned getBitsNum (const unsigned integer)
__host__ __device__ __forceinline__ std::pair< uint3, std::uint8_t > nearestVoxel (const float3 query, const unsigned &level, const std::uint8_t &mask, const float3 &minp, const float3 &maxp, const uint3 &index)
template<typename T>
__device__ __host__ int findNode (const float3 minp, const float3 maxp, const float3 query, const T nodes)
template<typename T>
__device__ __forceinline__ void swap (T &a, T &b)
template<typename V, typename K>
__device__ __forceinline__ void bitonicSortWarp (volatile K *keys, volatile V *vals, unsigned int dir=1)
__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 calcBoundingBox (int level, int code, float3 &res_minp, float3 &res_maxp)
template<typename T>
__device__ void CopyKernel (const T *in, T *out, int length)
template<typename T>
__device__ void GenerateKernel (T *out, int beg, int end)
template<typename T>
__device__ void GenerateTasksKernel (T *out, int beg, int end, int level)
template<ScanKind Kind, class T>
__device__ __forceinline__ T scan_block (volatile T *ptr, const unsigned int idx=threadIdx.x)
template<class T>
__device__ __forceinline__ T warp_reduce (volatile T *ptr, const unsigned int tid=threadIdx.x)
template<typename Point>
__device__ __forceinline__ float sqnorm (const Point &p1, const Point &p2)
__device__ __forceinline__ float3 computePoint (unsigned short depth, int x, int y, const Intr &intr)
__device__ __forceinline__ bool isFinite (const float3 &p)
void smoothLabelImage (const Labels &src, const Depth &depth, Labels &dst, int num_parts, int patch_size, int depthThres)
void colorLMap (const Labels &labels, const DeviceArray< uchar4 > &cmap, Image &rgb)
void mixedColorMap (const Labels &labels, const DeviceArray< uchar4 > &map, const Image &rgba, Image &output)
void computeCloud (const Depth &depth, const Intr &intr, Cloud &cloud)
void setZero (Mask &mask)
void prepareForeGroundDepth (const Depth &depth1, Mask &inverse_mask, Depth &depth2)
float computeHue (int rgba)
void computeHueWithNans (const Image &image, const Depth &depth, HueImage &hue)
__device__ __host__ __forceinline__ float4 compute_plane (const float3 &v, const float3 &v1, const float3 &v2, const float3 &p)
 Computers plane from 3 points (v, v1, v2), ensures that point P lies positive subspace.
__device__ __host__ __forceinline__ float3 tr (const PointType &p)
__device__ __host__ __forceinline__ float compue_inv_normal_norm (const float4 &p)
__device__ __host__ __forceinline__ float4 & operator*= (float4 &p, float v)
std::size_t remove_duplicates (DeviceArray< int > &indeces)
void pack_hull (const DeviceArray< PointType > &points, const DeviceArray< int > &indeces, DeviceArray< PointType > &output)
__device__ __forceinline__ float getSampleNormal (const float mean, const float cov, curandState *rng_state)
void initParticles (PtrSz< curandState > rng_states, DeviceArray< float > &initial_noise_mean, DeviceArray< float > &initial_noise_covariance, const StateType &representative_state, DeviceArray< StateType > &particles)
void computeTracking (const DeviceArray2D< PointType > &ref, const DeviceArray2D< PixelRGB > &ref_color, const DeviceArray2D< PointType > &input, const DeviceArray2D< PixelRGB > &input_color, PtrSz< curandState > rng_states, const DeviceArray< float > &step_noise_covariance, DeviceArray< StateType > &particles, StateType &representative_state, StateType &motion, float motion_ratio)
template<typename Iterator, typename T, typename BinaryPredicate>
__host__ __device__ Iterator lower_bound (Iterator first, Iterator last, const T &val, BinaryPredicate comp)
template<class Func>
void printFuncAttrib (Func &func)
template<unsigned int CTA_SIZE, typename T, typename BinaryFunction>
__device__ __forceinline__ void reduce_block (volatile T *data, BinaryFunction op, unsigned int tid=threadIdx.x)
__device__ __host__ __forceinline__ float dot (const float4 &v1, const float4 &v2)
template<typename T>
__device__ __host__ __forceinline__ float norm (const T &val)
template<typename T>
__host__ __device__ __forceinline__ float inverse_norm (const T &v)
template<typename T>
__host__ __device__ __forceinline__ T normalized (const T &v)
template<typename T>
__host__ __device__ __forceinline__ T normalized_safe (const T &v)
void copyFields (int in_size, int out_size, int info[4], int size, const void *input, void *output)

Variables

constexpr int DIVISOR = std::numeric_limits<short>::max()
constexpr int VOLUME_X = 512
constexpr int VOLUME_Y = 512
constexpr int VOLUME_Z = 512
constexpr float VOLUME_SIZE = 3.0f

Typedef Documentation

◆ Cloud

Definition at line 52 of file internal.h.

◆ Depth

using pcl::device::Depth = DeviceArray2D<unsigned short>

Definition at line 55 of file internal.h.

◆ DepthMap

Definition at line 52 of file internal.h.

◆ FacetsDists

using pcl::device::FacetsDists = DeviceArray<std::uint64_t>

Definition at line 52 of file internal.h.

◆ FPFHSignature33

Definition at line 75 of file internal.hpp.

◆ HueImage

Definition at line 57 of file internal.h.

◆ Image

Definition at line 53 of file internal.h.

◆ Indices

Definition at line 64 of file internal.hpp.

◆ LabelProbability

◆ Labels

using pcl::device::Labels = DeviceArray2D<unsigned char>

Definition at line 56 of file internal.h.

◆ MapArr

Definition at line 51 of file internal.h.

◆ Mask

using pcl::device::Mask = DeviceArray2D<unsigned char>

Definition at line 58 of file internal.h.

◆ MultiLabels

Definition at line 60 of file internal.h.

◆ Normals

Definition at line 63 of file internal.hpp.

◆ NormalType

using pcl::device::NormalType = float4

Definition at line 59 of file internal.hpp.

◆ Perm

Definition at line 53 of file internal.h.

◆ PFHRGBSignature250

Definition at line 74 of file internal.hpp.

◆ PFHSignature125

Definition at line 73 of file internal.hpp.

◆ PixelRGB

using pcl::device::PixelRGB = uchar4

Definition at line 18 of file internal.h.

◆ PointCloud

Definition at line 62 of file internal.hpp.

◆ PointType

using pcl::device::PointType = float4

Definition at line 58 of file internal.hpp.

◆ PointXYZRGB

using pcl::device::PointXYZRGB = float4

Definition at line 60 of file internal.hpp.

◆ PointXYZRGBCloud

Definition at line 66 of file internal.hpp.

◆ StateType

Definition at line 15 of file internal.h.

◆ ushort

using pcl::device::ushort = unsigned short

Definition at line 50 of file internal.h.

◆ VFHSignature308

Definition at line 76 of file internal.hpp.

Enumeration Type Documentation

◆ ScanKind [1/2]

Enumerator
exclusive 
inclusive 
exclusive 
inclusive 

Definition at line 83 of file device.hpp.

◆ ScanKind [2/2]

Enumerator
exclusive 
inclusive 
exclusive 
inclusive 

Definition at line 45 of file scan_block.hpp.

Function Documentation

◆ AngleAxisf()

__device__ __host__ __forceinline__ void pcl::device::AngleAxisf ( float angle,
const float3 & r,
float3 & row1,
float3 & row2,
float3 & row3 )

Definition at line 47 of file rodrigues.hpp.

References AngleAxisf().

Referenced by AngleAxisf(), computeAlfaM(), and Rodrigues().

◆ bilateralFilter()

void pcl::device::bilateralFilter ( const DepthMap & src,
DepthMap & dst )

Performs bilateral filtering of disparity map.

Parameters
[in]srcsource map
[out]dstoutput map

References bilateralFilter().

Referenced by bilateralFilter().

◆ bindTextures()

void pcl::device::bindTextures ( const int * edgeBuf,
const int * triBuf,
const int * numVertsBuf )

Binds marching cubes tables to texture references.

References bindTextures().

Referenced by bindTextures().

◆ bitonicSortWarp()

template<typename V, typename K>
__device__ __forceinline__ void pcl::device::bitonicSortWarp ( volatile K * keys,
volatile V * vals,
unsigned int dir = 1 )

Definition at line 48 of file bitonic_sort.hpp.

References bitonicSortWarp(), pcl::K, and swap().

Referenced by bitonicSortWarp().

◆ bruteForceRadiusSearch()

void pcl::device::bruteForceRadiusSearch ( const OctreeImpl::PointCloud & cloud,
const OctreeImpl::PointType & query,
float radius,
DeviceArray< int > & result,
DeviceArray< int > & buffer )

◆ calcBoundingBox()

__device__ __host__ static __forceinline__ void pcl::device::calcBoundingBox ( int level,
int code,
float3 & res_minp,
float3 & res_maxp )
static

Definition at line 101 of file boxutils.hpp.

References calcBoundingBox(), and pcl::device::Morton::decomposeCode().

Referenced by calcBoundingBox().

◆ checkIfNodeInsideSphere()

__device__ __host__ static __forceinline__ bool pcl::device::checkIfNodeInsideSphere ( const float3 & minp,
const float3 & maxp,
const float3 & c,
float r )
static

Definition at line 47 of file boxutils.hpp.

References checkIfNodeInsideSphere().

Referenced by checkIfNodeInsideSphere().

◆ checkIfNodeOutsideSphere()

__device__ __host__ static __forceinline__ bool pcl::device::checkIfNodeOutsideSphere ( const float3 & minp,
const float3 & maxp,
const float3 & c,
float r )
static

Definition at line 89 of file boxutils.hpp.

References checkIfNodeOutsideSphere().

Referenced by checkIfNodeOutsideSphere().

◆ colorLMap()

void pcl::device::colorLMap ( const Labels & labels,
const DeviceArray< uchar4 > & cmap,
Image & rgb )

References colorLMap().

Referenced by colorLMap().

◆ compue_inv_normal_norm()

__device__ __host__ __forceinline__ float pcl::device::compue_inv_normal_norm ( const float4 & p)

Definition at line 81 of file device.h.

References compue_inv_normal_norm().

Referenced by compue_inv_normal_norm().

◆ compute3DCentroid() [1/2]

template<typename PointT>
void pcl::device::compute3DCentroid ( const DeviceArray< PointT > & cloud,
const Indices & indices,
float3 & centroid )

References compute3DCentroid().

◆ compute3DCentroid() [2/2]

template<typename PointT>
void pcl::device::compute3DCentroid ( const DeviceArray< PointT > & cloud,
float3 & centroid )

◆ compute_plane()

__device__ __host__ __forceinline__ float4 pcl::device::compute_plane ( const float3 & v,
const float3 & v1,
const float3 & v2,
const float3 & p )

Computers plane from 3 points (v, v1, v2), ensures that point P lies positive subspace.

Parameters
[in]v3D point volume tsdf volume container
[in]v13D point volume tsdf volume container
[in]v23D point volume tsdf volume container
[in]ppoint for sign check of plane coefs (should lie in positive subspace)
Returns
a,b,c,d coefs vector

Definition at line 55 of file device.h.

References compute_plane(), cross(), and dot().

Referenced by compute_plane().

◆ computeAlfaM()

__device__ __host__ __forceinline__ void pcl::device::computeAlfaM ( const float3 & model_reference_point,
const float3 & model_reference_normal,
const float3 & model_point,
float & alpha_m )

Definition at line 179 of file pair_features.hpp.

References AngleAxisf(), computeAlfaM(), and normalized().

Referenced by computeAlfaM().

◆ computeCloud()

void pcl::device::computeCloud ( const Depth & depth,
const Intr & intr,
Cloud & cloud )

References computeCloud().

Referenced by computeCloud().

◆ computeFPFH() [1/2]

void pcl::device::computeFPFH ( const PointCloud & cloud,
const Indices & indices,
const PointCloud & surface,
const NeighborIndices & neighbours,
DeviceArray< int > & lookup,
const DeviceArray2D< FPFHSignature33 > & spfh,
DeviceArray2D< FPFHSignature33 > & features )

References computeFPFH().

◆ computeFPFH() [2/2]

void pcl::device::computeFPFH ( const PointCloud & cloud,
const NeighborIndices & neighbours,
const DeviceArray2D< FPFHSignature33 > & spfh,
DeviceArray2D< FPFHSignature33 > & features )

References computeFPFH().

Referenced by computeFPFH(), and computeFPFH().

◆ computeHue()

float pcl::device::computeHue ( int rgba)

References computeHue().

Referenced by computeHue().

◆ computeHueWithNans()

void pcl::device::computeHueWithNans ( const Image & image,
const Depth & depth,
HueImage & hue )

References computeHueWithNans().

Referenced by computeHueWithNans().

◆ computeMask()

void pcl::device::computeMask ( const NeighborIndices & neighbours,
int min_neighb,
DeviceArray< unsigned char > & mask )

References computeMask().

Referenced by computeMask().

◆ computeNormals()

void pcl::device::computeNormals ( const PointCloud & cloud,
const NeighborIndices & nn_indices,
Normals & normals )

References computeNormals().

Referenced by computeNormals().

◆ computeNormalsEigen()

void pcl::device::computeNormalsEigen ( const MapArr & vmap,
MapArr & nmap )

Computes normal map using Eigen/PCA approach.

Parameters
[in]vmapvertex map
[out]nmapnormal map

References computeNormalsEigen().

Referenced by computeNormalsEigen().

◆ computeOffsetsAndTotalVertexes()

int pcl::device::computeOffsetsAndTotalVertexes ( DeviceArray2D< int > & occupied_voxels)

Computes total number of vertexes for all voxels and offsets of vertexes in final triangle array.

Parameters
[out]occupied_voxelsbuffer with occupied voxels. The function fulfills 3nd only with offsets
Returns
total number of vertexes

References computeOffsetsAndTotalVertexes().

Referenced by computeOffsetsAndTotalVertexes().

◆ computePairFeatures()

__device__ __host__ __forceinline__ bool pcl::device::computePairFeatures ( const float3 & p1,
const float3 & n1,
const float3 & p2,
const float3 & n2,
float & f1,
float & f2,
float & f3,
float & f4 )

Definition at line 48 of file pair_features.hpp.

References computePairFeatures(), cross(), dot(), and norm().

Referenced by computePairFeatures().

◆ computePfh125()

void pcl::device::computePfh125 ( const DeviceArray2D< float > & data_rpk,
int max_elems_rpk,
const NeighborIndices & neighbours,
DeviceArray2D< PFHSignature125 > & features )

References computePfh125().

Referenced by computePfh125().

◆ computePfhRgb250()

void pcl::device::computePfhRgb250 ( const DeviceArray2D< float > & data_rpk,
int max_elems_rpk,
const NeighborIndices & neighbours,
DeviceArray2D< PFHRGBSignature250 > & features )

References computePfhRgb250().

Referenced by computePfhRgb250().

◆ computePoint()

__device__ __forceinline__ float3 pcl::device::computePoint ( unsigned short depth,
int x,
int y,
const Intr & intr )

◆ computePointPrincipalCurvatures()

void pcl::device::computePointPrincipalCurvatures ( const Normals & normals,
const Indices & indices,
const NeighborIndices & neighbours,
DeviceArray< PrincipalCurvatures > & output,
DeviceArray2D< float > & proj_normals_buf )

◆ computePPF()

void pcl::device::computePPF ( const PointCloud & input,
const Normals & normals,
const Indices & indices,
DeviceArray< PPFSignature > & output )

References computePPF().

Referenced by computePPF().

◆ computePPFPairFeature()

__device__ __host__ __forceinline__ bool pcl::device::computePPFPairFeature ( const float3 & p1,
const float3 & n1,
const float3 & p2,
const float3 & n2,
float & f1,
float & f2,
float & f3,
float & f4 )

Definition at line 160 of file pair_features.hpp.

References computePPFPairFeature(), dot(), and norm().

Referenced by computePPFPairFeature().

◆ computePPFRGB()

void pcl::device::computePPFRGB ( const PointXYZRGBCloud & input,
const Normals & normals,
const Indices & indices,
DeviceArray< PPFRGBSignature > & output )

References computePPFRGB().

Referenced by computePPFRGB().

◆ computePPFRGBRegion()

void pcl::device::computePPFRGBRegion ( const PointXYZRGBCloud & cloud,
const Normals & normals,
const Indices & indices,
const NeighborIndices & nn_indices,
DeviceArray< PPFRGBSignature > & output )

References computePPFRGBRegion().

Referenced by computePPFRGBRegion().

◆ computeRGBPairFeatures()

__device__ __host__ __forceinline__ bool pcl::device::computeRGBPairFeatures ( const float3 & p1,
const float3 & n1,
const int & colors1,
const float3 & p2,
const float3 & n2,
const int & colors2,
float & f1,
float & f2,
float & f3,
float & f4,
float & f5,
float & f6,
float & f7 )

Definition at line 95 of file pair_features.hpp.

References computeRGBPairFeatures(), cross(), dot(), and norm().

Referenced by computeRGBPairFeatures().

◆ computeRGBPairFeatures_RGBOnly()

__device__ __host__ __forceinline__ void pcl::device::computeRGBPairFeatures_RGBOnly ( const int & colors1,
const int & colors2,
float & f5,
float & f6,
float & f7 )

Definition at line 148 of file pair_features.hpp.

References computeRGBPairFeatures_RGBOnly().

Referenced by computeRGBPairFeatures_RGBOnly().

◆ computeRoots2()

__device__ __forceinline__ void pcl::device::computeRoots2 ( const float & b,
const float & c,
float3 & roots )

Definition at line 102 of file eigen.hpp.

References computeRoots2().

Referenced by computeRoots2(), and computeRoots3().

◆ computeRoots3()

__device__ __forceinline__ void pcl::device::computeRoots3 ( float c0,
float c1,
float c2,
float3 & roots )

Definition at line 115 of file eigen.hpp.

References computeRoots2(), computeRoots3(), and swap().

Referenced by pcl::device::Eigen33::compute(), and computeRoots3().

◆ computeSPFH()

void pcl::device::computeSPFH ( const PointCloud & surface,
const Normals & normals,
const Indices & indices,
const NeighborIndices & neighbours,
DeviceArray2D< FPFHSignature33 > & spfh33 )

References computeSPFH().

Referenced by computeSPFH().

◆ computeSpinImagesCustomAxes()

void pcl::device::computeSpinImagesCustomAxes ( bool radial,
bool angular,
float support_angle_cos,
const Indices & indices,
const PointCloud & input_cloud,
const Normals & input_normals,
const PointCloud & surface,
const Normals & normals,
const NeighborIndices & neighbours,
int min_neighb,
int image_width,
float bin_size,
const float3 & rotation_axis,
PtrStep< float > output )

◆ computeSpinImagesCustomAxesCloud()

void pcl::device::computeSpinImagesCustomAxesCloud ( bool radial,
bool angular,
float support_angle_cos,
const Indices & indices,
const PointCloud & input_cloud,
const Normals & input_normals,
const PointCloud & surface,
const Normals & normals,
const NeighborIndices & neighbours,
int min_neighb,
int image_width,
float bin_size,
const Normals & rotation_axes_cloud,
PtrStep< float > output )

◆ computeSpinImagesOrigigNormal()

void pcl::device::computeSpinImagesOrigigNormal ( bool radial,
bool angular,
float support_angle_cos,
const Indices & indices,
const PointCloud & input_cloud,
const Normals & input_normals,
const PointCloud & surface,
const Normals & normals,
const NeighborIndices & neighbours,
int min_neighb,
int image_width,
float bin_size,
PtrStep< float > output )

◆ computeTracking()

void pcl::device::computeTracking ( const DeviceArray2D< PointType > & ref,
const DeviceArray2D< PixelRGB > & ref_color,
const DeviceArray2D< PointType > & input,
const DeviceArray2D< PixelRGB > & input_color,
PtrSz< curandState > rng_states,
const DeviceArray< float > & step_noise_covariance,
DeviceArray< StateType > & particles,
StateType & representative_state,
StateType & motion,
float motion_ratio )

References computeTracking().

Referenced by computeTracking().

◆ computeUniqueIndices()

int pcl::device::computeUniqueIndices ( std::size_t surface_size,
const NeighborIndices & neighbours,
DeviceArray< int > & unique_indices,
DeviceArray< int > & lookup )

References computeUniqueIndices().

Referenced by computeUniqueIndices().

◆ convert()

template<typename T>
void pcl::device::convert ( const MapArr & vmap,
DeviceArray2D< T > & output )

Conversion from SOA to AOS.

Parameters
[in]vmapSOA map
[out]outputArray of 3D points. Can be float4 or float8.

References convert().

Referenced by convert().

◆ copyFields()

void pcl::device::copyFields ( int in_size,
int out_size,
int info[4],
int size,
const void * input,
void * output )

References copyFields().

Referenced by copyFields().

◆ CopyKernel()

template<typename T>
__device__ void pcl::device::CopyKernel ( const T * in,
T * out,
int length )

Definition at line 48 of file copygen.hpp.

References CopyKernel().

Referenced by CopyKernel().

◆ createNMap()

void pcl::device::createNMap ( const MapArr & vmap,
MapArr & nmap )

Computes normal map using cross product.

Parameters
[in]vmapvertex map
[out]nmapnormal map

References createNMap().

Referenced by createNMap().

◆ createVMap()

void pcl::device::createVMap ( const Intr & intr,
const DepthMap & depth,
MapArr & vmap )

Computes vertex map.

Parameters
[in]intrdepth camera intrinsics
[in]depthdepth
[out]vmapvertex map

References createVMap().

Referenced by createVMap().

◆ cross()

__device__ __host__ __forceinline__ float3 pcl::device::cross ( const float3 & v1,
const float3 & v2 )

◆ device_cast()

template<class D, class Matx>
D & pcl::device::device_cast ( Matx & matx)

Definition at line 401 of file internal.h.

References device_cast().

Referenced by device_cast().

◆ dot() [1/2]

__device__ __host__ __forceinline__ float pcl::device::dot ( const float3 & v1,
const float3 & v2 )

◆ dot() [2/2]

__device__ __host__ __forceinline__ float pcl::device::dot ( const float4 & v1,
const float4 & v2 )

Definition at line 82 of file vector_math.hpp.

References dot().

◆ estimateCombined() [1/2]

void pcl::device::estimateCombined ( const Mat33 & Rcurr,
const float3 & tcurr,
const MapArr & vmap_curr,
const MapArr & nmap_curr,
const Mat33 & Rprev_inv,
const float3 & tprev,
const Intr & intr,
const MapArr & vmap_g_prev,
const MapArr & nmap_g_prev,
float distThres,
float angleThres,
DeviceArray2D< double > & gbuf,
DeviceArray< double > & mbuf,
double * matrixA_host,
double * vectorB_host )

References estimateCombined().

◆ estimateCombined() [2/2]

void pcl::device::estimateCombined ( const Mat33 & Rcurr,
const float3 & tcurr,
const MapArr & vmap_curr,
const MapArr & nmap_curr,
const Mat33 & Rprev_inv,
const float3 & tprev,
const Intr & intr,
const MapArr & vmap_g_prev,
const MapArr & nmap_g_prev,
float distThres,
float angleThres,
DeviceArray2D< float > & gbuf,
DeviceArray< float > & mbuf,
float * matrixA_host,
float * vectorB_host )

Computation Ax=b for ICP iteration.

Parameters
[in]RcurrRotation of current camera pose guess
[in]tcurrtranslation of current camera pose guess
[in]vmap_currcurrent vertex map in camera coo space
[in]nmap_currcurrent vertex map in camera coo space
[in]Rprev_invinverse camera rotation at previous pose
[in]tprevcamera translation at previous pose
[in]intrcamera intrinsics
[in]vmap_g_prevprevious vertex map in global coo space
[in]nmap_g_prevprevious vertex map in global coo space
[in]distThresdistance filtering threshold
[in]angleThresangle filtering threshold. Represents sine of angle between normals
[out]gbuftemp buffer for GPU reduction
[out]mbufoutput GPU buffer for matrix computed
[out]matrixA_hostA
[out]vectorB_hostb

References estimateCombined().

Referenced by estimateCombined(), and estimateCombined().

◆ estimateTransform()

void pcl::device::estimateTransform ( const MapArr & v_dst,
const MapArr & n_dst,
const MapArr & v_src,
const PtrStepSz< short2 > & coresp,
DeviceArray2D< float > & gbuf,
DeviceArray< float > & mbuf,
float * matrixA_host,
float * vectorB_host )

(now it's extra code) Computation Ax=b for ICP iteration

Parameters
[in]v_dstdestination vertex map (previous frame cloud)
[in]n_dstdestination normal map (previous frame normals)
[in]v_srcsource normal map (current frame cloud)
[in]corespCorespondances
[out]gbuftemp buffer for GPU reduction
[out]mbufoutput GPU buffer for matrix computed
[out]matrixA_hostA
[out]vectorB_hostb

References estimateTransform().

Referenced by estimateTransform().

◆ exctractColors()

void pcl::device::exctractColors ( const PtrStep< uchar4 > & color_volume,
const float3 & volume_size,
const PtrSz< PointType > & points,
uchar4 * colors )

Performs colors exctraction from color volume.

Parameters
[in]color_volumecolor volume
[in]volume_sizevolume size
[in]pointspoints for which color are computed
[out]colorsoutput array with colors.

References exctractColors().

Referenced by exctractColors().

◆ extractCloud()

PCL_EXPORTS std::size_t pcl::device::extractCloud ( const PtrStep< short2 > & volume,
const float3 & volume_size,
PtrSz< PointType > output )

Perform point cloud extraction from tsdf volume.

Parameters
[in]volumetsdf volume
[in]volume_sizesize of the volume
[out]outputbuffer large enough to store point cloud
Returns
number of point stored to passed buffer

References extractCloud().

Referenced by extractCloud().

◆ extractNormals()

template<typename NormalType>
void pcl::device::extractNormals ( const PtrStep< short2 > & volume,
const float3 & volume_size,
const PtrSz< PointType > & input,
NormalType * output )

Performs normals computation for given points using tsdf volume.

Parameters
[in]volumetsdf volume
[in]volume_sizevolume size
[in]inputpoints where normals are computed
[out]outputnormals. Could be float4 or float8. If for a point normal can't be computed, such normal is marked as nan.

References extractNormals().

Referenced by extractNormals().

◆ findCoresp()

void pcl::device::findCoresp ( const MapArr & vmap_g_curr,
const MapArr & nmap_g_curr,
const Mat33 & Rprev_inv,
const float3 & tprev,
const Intr & intr,
const MapArr & vmap_g_prev,
const MapArr & nmap_g_prev,
float distThres,
float angleThres,
PtrStepSz< short2 > coresp )

(now it's extra code) Computes corespondances map

Parameters
[in]vmap_g_currcurrent vertex map in global coo space
[in]nmap_g_currcurrent normals map in global coo space
[in]Rprev_invinverse camera rotation at previous pose
[in]tprevcamera translation at previous pose
[in]intrcamera intrinsics
[in]vmap_g_prevprevious vertex map in global coo space
[in]nmap_g_prevprevious vertex map in global coo space
[in]distThresdistance filtering threshold
[in]angleThresangle filtering threshold. Represents sine of angle between normals
[out]coresp

References findCoresp().

Referenced by findCoresp().

◆ findNode()

template<typename T>
__device__ __host__ int pcl::device::findNode ( const float3 minp,
const float3 maxp,
const float3 query,
const T nodes )

◆ flipNormalTowardsViewpoint() [1/2]

void pcl::device::flipNormalTowardsViewpoint ( const PointCloud & cloud,
const float3 & vp,
Normals & normals )

◆ flipNormalTowardsViewpoint() [2/2]

void pcl::device::flipNormalTowardsViewpoint ( const PointCloud & cloud,
const Indices & indices,
const float3 & vp,
Normals & normals )

◆ generateDepth()

void pcl::device::generateDepth ( const Mat33 & R_inv,
const float3 & t,
const MapArr & vmap,
DepthMap & dst )

Renders depth image from give pose.

Parameters
[in]R_invinverse camera rotation
[in]tcamera translation
[in]vmapvertex map
[out]dstbuffer where depth is generated

References generateDepth().

Referenced by generateDepth().

◆ generateImage()

void pcl::device::generateImage ( const MapArr & vmap,
const MapArr & nmap,
const LightSource & light,
PtrStepSz< uchar3 > dst )

Renders 3D image of the scene.

Parameters
[in]vmapvertex map
[in]nmapnormals map
[in]lightpoase of light source
[out]dstbuffer where image is generated

References generateImage().

Referenced by generateImage().

◆ GenerateKernel()

template<typename T>
__device__ void pcl::device::GenerateKernel ( T * out,
int beg,
int end )

Definition at line 58 of file copygen.hpp.

References GenerateKernel().

Referenced by GenerateKernel().

◆ GenerateTasksKernel()

template<typename T>
__device__ void pcl::device::GenerateTasksKernel ( T * out,
int beg,
int end,
int level )

Definition at line 71 of file copygen.hpp.

References GenerateTasksKernel().

Referenced by GenerateTasksKernel().

◆ generateTriangles()

void pcl::device::generateTriangles ( const PtrStep< short2 > & volume,
const DeviceArray2D< int > & occupied_voxels,
const float3 & volume_size,
DeviceArray< PointType > & output )

Generates final triangle array.

Parameters
[in]volumetsdf volume
[in]occupied_voxelsoccupied voxel ids (first row), number of vertexes(second row), offsets(third row).
[in]volume_sizevolume size in meters
[out]outputtriangle array

References generateTriangles().

Referenced by generateTriangles().

◆ getBitsNum()

__device__ __host__ __forceinline__ unsigned pcl::device::getBitsNum ( const unsigned integer)

Definition at line 23 of file approx_nearest_utils.hpp.

References getBitsNum().

Referenced by findNode(), and getBitsNum().

◆ getMaxDistance() [1/2]

template<typename PointT>
float3 pcl::device::getMaxDistance ( const DeviceArray< PointT > & cloud,
const float3 & pivot )

References getMaxDistance().

Referenced by getMaxDistance(), and getMaxDistance().

◆ getMaxDistance() [2/2]

template<typename PointT>
float3 pcl::device::getMaxDistance ( const DeviceArray< PointT > & cloud,
const Indices & indices,
const float3 & pivot )

References getMaxDistance().

◆ getOccupiedVoxels()

int pcl::device::getOccupiedVoxels ( const PtrStep< short2 > & volume,
DeviceArray2D< int > & occupied_voxels )

Scans tsdf volume and retrieves occupied voxels.

Parameters
[in]volumetsdf volume
[out]occupied_voxelsbuffer for occupied voxels. The function fulfills first row with voxel ids and second row with number of vertices.
Returns
number of voxels in the buffer

References getOccupiedVoxels().

Referenced by getOccupiedVoxels().

◆ getSampleNormal()

__device__ __forceinline__ float pcl::device::getSampleNormal ( const float mean,
const float cov,
curandState * rng_state )

Definition at line 11 of file device.hpp.

References getSampleNormal().

Referenced by getSampleNormal().

◆ initColorVolume()

void pcl::device::initColorVolume ( PtrStep< uchar4 > color_volume)

Initialzied color volume.

Parameters
[out]color_volumecolor volume for initialization

References initColorVolume().

Referenced by initColorVolume().

◆ initParticles()

void pcl::device::initParticles ( PtrSz< curandState > rng_states,
DeviceArray< float > & initial_noise_mean,
DeviceArray< float > & initial_noise_covariance,
const StateType & representative_state,
DeviceArray< StateType > & particles )

References initParticles().

Referenced by initParticles().

◆ initVolume()

PCL_EXPORTS void pcl::device::initVolume ( PtrStep< short2 > array)

Perform tsdf volume initialization.

Parameters
[out]arrayvolume to be initialized

References initVolume().

Referenced by initVolume().

◆ integrateTsdfVolume() [1/2]

void pcl::device::integrateTsdfVolume ( const PtrStepSz< ushort > & depth_raw,
const Intr & intr,
const float3 & volume_size,
const Mat33 & Rcurr_inv,
const float3 & tcurr,
float tranc_dist,
PtrStep< short2 > volume )

Performs Tsfg volume uptation (extra obsolete now).

Parameters
[in]depth_rawKinect depth image
[in]intrcamera intrinsics
[in]volume_sizesize of volume in mm
[in]Rcurr_invinverse rotation for current camera pose
[in]tcurrtranslation for current camera pose
[in]tranc_disttsdf truncation distance
[in]volumetsdf volume to be updated

References integrateTsdfVolume().

Referenced by integrateTsdfVolume(), and integrateTsdfVolume().

◆ integrateTsdfVolume() [2/2]

PCL_EXPORTS void pcl::device::integrateTsdfVolume ( const PtrStepSz< ushort > & depth_raw,
const Intr & intr,
const float3 & volume_size,
const Mat33 & Rcurr_inv,
const float3 & tcurr,
float tranc_dist,
PtrStep< short2 > volume,
DeviceArray2D< float > & depthRawScaled )

Function that integrates volume if volume element contains: 2 bytes for round(tsdf*SHORT_MAX) and 2 bytes for integer weight.

Parameters
[in]depth_rawKinect depth image
[in]intrcamera intrinsics
[in]volume_sizesize of volume in mm
[in]Rcurr_invinverse rotation for current camera pose
[in]tcurrtranslation for current camera pose
[in]tranc_disttsdf truncation distance
[in]volumetsdf volume to be updated
[out]depthRawScaledBuffer for scaled depth along ray

References integrateTsdfVolume().

◆ inverse_norm()

template<typename T>
__host__ __device__ __forceinline__ float pcl::device::inverse_norm ( const T & v)

Definition at line 113 of file vector_math.hpp.

References dot(), and inverse_norm().

Referenced by inverse_norm(), normalize(), and normalized().

◆ isFinite()

__device__ __forceinline__ bool pcl::device::isFinite ( const float3 & p)

Definition at line 71 of file device.h.

References isFinite().

Referenced by isFinite().

◆ lower_bound()

template<typename Iterator, typename T, typename BinaryPredicate>
__host__ __device__ Iterator pcl::device::lower_bound ( Iterator first,
Iterator last,
const T & val,
BinaryPredicate comp )

Definition at line 51 of file algorithm.hpp.

References lower_bound().

Referenced by lower_bound().

◆ mergePointNormal()

void pcl::device::mergePointNormal ( const DeviceArray< float4 > & cloud,
const DeviceArray< float8 > & normals,
const DeviceArray< float12 > & output )

Merges pcl::PointXYZ and pcl::Normal to PointNormal.

Parameters
[in]cloudpoints cloud
[in]normalsnormals cloud
[out]outputarray of PointNomals.

References mergePointNormal().

Referenced by mergePointNormal().

◆ mixedColorMap()

void pcl::device::mixedColorMap ( const Labels & labels,
const DeviceArray< uchar4 > & map,
const Image & rgba,
Image & output )

References mixedColorMap().

Referenced by mixedColorMap().

◆ nearestVoxel()

__host__ __device__ __forceinline__ std::pair< uint3, std::uint8_t > pcl::device::nearestVoxel ( const float3 query,
const unsigned & level,
const std::uint8_t & mask,
const float3 & minp,
const float3 & maxp,
const uint3 & index )

Definition at line 33 of file approx_nearest_utils.hpp.

References nearestVoxel().

Referenced by findNode(), and nearestVoxel().

◆ norm() [1/3]

__device__ __forceinline__ float pcl::device::norm ( const float3 & v)

Definition at line 95 of file utils.hpp.

References dot(), and norm().

◆ norm() [2/3]

__device__ __host__ __forceinline__ float pcl::device::norm ( const float3 & v1,
const float3 & v2 )

◆ norm() [3/3]

template<typename T>
__device__ __host__ __forceinline__ float pcl::device::norm ( const T & val)

Definition at line 108 of file vector_math.hpp.

References dot(), and norm().

◆ normalize()

__host__ __device__ float3 pcl::device::normalize ( const float3 & v)
inline

Definition at line 73 of file vector_operations.hpp.

References inverse_norm(), and normalize().

Referenced by normalize().

◆ normalized() [1/2]

__device__ __forceinline__ float3 pcl::device::normalized ( const float3 & v)

Definition at line 101 of file utils.hpp.

References dot(), and normalized().

Referenced by pcl::device::Eigen33::compute(), computeAlfaM(), normalized(), and normalized().

◆ normalized() [2/2]

template<typename T>
__host__ __device__ __forceinline__ T pcl::device::normalized ( const T & v)

Definition at line 118 of file vector_math.hpp.

References inverse_norm(), and normalized().

◆ normalized_safe()

template<typename T>
__host__ __device__ __forceinline__ T pcl::device::normalized_safe ( const T & v)

Definition at line 123 of file vector_math.hpp.

References dot(), and normalized_safe().

Referenced by normalized_safe().

◆ operator*() [1/2]

__device__ __forceinline__ float3 pcl::device::operator* ( const float3 & v1,
const float & v )

Definition at line 89 of file utils.hpp.

References operator*().

◆ operator*() [2/2]

__device__ __forceinline__ float3 pcl::device::operator* ( const Mat33 & m,
const float3 & vec )

Definition at line 74 of file device.hpp.

References pcl::device::Mat33::data, and dot().

Referenced by operator*().

◆ operator*=() [1/2]

__device__ __forceinline__ float3 & pcl::device::operator*= ( float3 & vec,
const float & v )

Definition at line 77 of file utils.hpp.

References operator*=().

Referenced by operator*=(), and operator*=().

◆ operator*=() [2/2]

__device__ __host__ __forceinline__ float4 & pcl::device::operator*= ( float4 & p,
float v )

Definition at line 84 of file device.h.

References operator*=().

◆ operator+()

__device__ __forceinline__ float3 pcl::device::operator+ ( const float3 & v1,
const float3 & v2 )

Definition at line 71 of file utils.hpp.

References operator+().

Referenced by operator+().

◆ operator+=()

__device__ __forceinline__ float3 & pcl::device::operator+= ( float3 & vec,
const float & v )

Definition at line 65 of file utils.hpp.

References operator+=().

Referenced by operator+=().

◆ operator-()

__device__ __forceinline__ float3 pcl::device::operator- ( const float3 & v1,
const float3 & v2 )

Definition at line 83 of file utils.hpp.

References operator-().

Referenced by operator-().

◆ operator/()

__forceinline__ __device__ __host__ float3 pcl::device::operator/ ( const float3 & vec,
float val )

Definition at line 47 of file vector_operations.hpp.

References operator/().

Referenced by operator/().

◆ operator/=()

__device__ __host__ __forceinline__ float3 & pcl::device::operator/= ( float3 & v,
const float & value )

Definition at line 52 of file vector_operations.hpp.

References operator/=().

Referenced by operator/=().

◆ pack_hull()

void pcl::device::pack_hull ( const DeviceArray< PointType > & points,
const DeviceArray< int > & indeces,
DeviceArray< PointType > & output )

References pack_hull().

Referenced by pack_hull().

◆ pack_tsdf()

__device__ __forceinline__ void pcl::device::pack_tsdf ( float tsdf,
int weight,
short2 & value )

Definition at line 52 of file device.hpp.

References DIVISOR, and pack_tsdf().

Referenced by pack_tsdf().

◆ paint3DView()

void pcl::device::paint3DView ( const PtrStep< uchar3 > & colors,
PtrStepSz< uchar3 > dst,
float colors_weight = 0.5f )

Paints 3D view with color map.

Parameters
[in]colorsrgb color frame from OpenNI
[out]dstoutput 3D view
[in]colors_weightweight for colors

References paint3DView().

Referenced by paint3DView().

◆ prepareForeGroundDepth()

void pcl::device::prepareForeGroundDepth ( const Depth & depth1,
Mask & inverse_mask,
Depth & depth2 )

◆ printFuncAttrib()

template<class Func>
void pcl::device::printFuncAttrib ( Func & func)

Definition at line 47 of file funcattrib.hpp.

References printFuncAttrib().

Referenced by printFuncAttrib().

◆ pyrDown()

void pcl::device::pyrDown ( const DepthMap & src,
DepthMap & dst )

Computes depth pyramid.

Parameters
[in]srcsource
[out]dstdestination

References pyrDown().

Referenced by pyrDown().

◆ raycast()

void pcl::device::raycast ( const Intr & intr,
const Mat33 & Rcurr,
const float3 & tcurr,
float tranc_dist,
const float3 & volume_size,
const PtrStep< short2 > & volume,
MapArr & vmap,
MapArr & nmap )

Generation vertex and normal maps from volume for current camera pose.

Parameters
[in]intrcamera intrinsices
[in]Rcurrcurrent rotation
[in]tcurrcurrent translation
[in]tranc_distvolume truncation distance
[in]volume_sizevolume size in mm
[in]volumetsdf volume
[out]vmapoutput vertex map
[out]nmapoutput normals map

References raycast().

Referenced by raycast().

◆ reduce_block()

template<unsigned int CTA_SIZE, typename T, typename BinaryFunction>
__device__ __forceinline__ void pcl::device::reduce_block ( volatile T * data,
BinaryFunction op,
unsigned int tid = threadIdx.x )

Definition at line 45 of file reduce.hpp.

References reduce_block().

Referenced by reduce_block().

◆ remove_duplicates()

std::size_t pcl::device::remove_duplicates ( DeviceArray< int > & indeces)

References remove_duplicates().

Referenced by remove_duplicates().

◆ repackToAosForPfh()

void pcl::device::repackToAosForPfh ( const PointCloud & cloud,
const Normals & normals,
const NeighborIndices & neighbours,
DeviceArray2D< float > & data_rpk,
int & max_elems_rpk )

References repackToAosForPfh().

Referenced by repackToAosForPfh().

◆ repackToAosForPfhRgb()

void pcl::device::repackToAosForPfhRgb ( const PointCloud & cloud,
const Normals & normals,
const NeighborIndices & neighbours,
DeviceArray2D< float > & data_rpk,
int & max_elems_rpk )

References repackToAosForPfhRgb().

Referenced by repackToAosForPfhRgb().

◆ resizeNMap()

void pcl::device::resizeNMap ( const MapArr & input,
MapArr & output )

Performs resize of vertex map to next pyramid level by averaging each four normals.

Parameters
[in]inputnormal map
[out]outputvertex map

References resizeNMap().

Referenced by resizeNMap().

◆ resizeVMap()

void pcl::device::resizeVMap ( const MapArr & input,
MapArr & output )

Performs resize of vertex map to next pyramid level by averaging each four points.

Parameters
[in]inputvertext map
[out]outputresized vertex map

References resizeVMap().

Referenced by resizeVMap().

◆ Rodrigues()

__device__ __host__ __forceinline__ void pcl::device::Rodrigues ( const float3 & rvec,
float3 & row1,
float3 & row2,
float3 & row3 )

Definition at line 65 of file rodrigues.hpp.

References AngleAxisf(), norm(), and Rodrigues().

Referenced by Rodrigues().

◆ scan_block()

template<ScanKind Kind, class T>
__device__ __forceinline__ T pcl::device::scan_block ( volatile T * ptr,
const unsigned int idx = threadIdx.x )

Definition at line 65 of file scan_block.hpp.

References scan_block(), and scan_warp().

Referenced by scan_block().

◆ scan_warp()

template<ScanKind Kind, class T>
__device__ __forceinline__ T pcl::device::scan_warp ( volatile T * ptr,
const unsigned int idx = threadIdx.x )

Definition at line 87 of file device.hpp.

References inclusive, and scan_warp().

Referenced by scan_block(), and scan_warp().

◆ setZero()

void pcl::device::setZero ( Mask & mask)

References setZero().

Referenced by setZero().

◆ smoothLabelImage()

void pcl::device::smoothLabelImage ( const Labels & src,
const Depth & depth,
Labels & dst,
int num_parts,
int patch_size,
int depthThres )

References smoothLabelImage().

Referenced by smoothLabelImage().

◆ sqnorm()

template<typename Point>
__device__ __forceinline__ float pcl::device::sqnorm ( const Point & p1,
const Point & p2 )

Definition at line 50 of file device.h.

References sqnorm().

Referenced by sqnorm().

◆ swap() [1/2]

template<class T>
__device__ __host__ __forceinline__ void pcl::device::swap ( T & a,
T & b )

Definition at line 53 of file utils.hpp.

References swap().

Referenced by bitonicSortWarp(), computeRoots3(), and swap().

◆ swap() [2/2]

template<typename T>
__device__ __forceinline__ void pcl::device::swap ( T & a,
T & b )

Definition at line 45 of file bitonic_sort.hpp.

References swap().

◆ sync()

void pcl::device::sync ( )
inline

synchronizes CUDA execution

Definition at line 397 of file internal.h.

References sync().

Referenced by sync().

◆ tr() [1/2]

__device__ __host__ __forceinline__ float3 pcl::device::tr ( const PointType & p)

Definition at line 69 of file device.h.

References tr().

◆ tr() [2/2]

template<typename T>
__device__ __forceinline__ float3 pcl::device::tr ( const T & v)

Definition at line 68 of file vector_operations.hpp.

References tr().

Referenced by tr(), and tr().

◆ tranformMaps()

void pcl::device::tranformMaps ( const MapArr & vmap_src,
const MapArr & nmap_src,
const Mat33 & Rmat,
const float3 & tvec,
MapArr & vmap_dst,
MapArr & nmap_dst )

Performs affine transform of vertex and normal maps.

Parameters
[in]vmap_srcsource vertex map
[in]nmap_srcsource vertex map
[in]RmatRotation mat
[in]tvectranslation
[out]vmap_dstdestination vertex map
[out]nmap_dstdestination vertex map

References tranformMaps().

Referenced by tranformMaps().

◆ truncateDepth()

void pcl::device::truncateDepth ( DepthMap & depth,
float max_distance )

Performs depth truncation.

Parameters
[out]depthdepth map to truncation
[in]max_distancetruncation threshold, values that are higher than the threshold are reset to zero (means not measurement)

References truncateDepth().

Referenced by truncateDepth().

◆ unbindTextures()

void pcl::device::unbindTextures ( )

Unbinds.

References unbindTextures().

Referenced by unbindTextures().

◆ unpack_tsdf() [1/2]

__device__ __forceinline__ float pcl::device::unpack_tsdf ( short2 value)

Definition at line 67 of file device.hpp.

References DIVISOR, and unpack_tsdf().

◆ unpack_tsdf() [2/2]

__device__ __forceinline__ void pcl::device::unpack_tsdf ( short2 value,
float & tsdf,
int & weight )

Definition at line 60 of file device.hpp.

References DIVISOR, and unpack_tsdf().

Referenced by unpack_tsdf(), and unpack_tsdf().

◆ updateColorVolume()

void pcl::device::updateColorVolume ( const Intr & intr,
float tranc_dist,
const Mat33 & R_inv,
const float3 & t,
const MapArr & vmap,
const PtrStepSz< uchar3 > & colors,
const float3 & volume_size,
PtrStep< uchar4 > color_volume,
int max_weight = 1 )

Performs integration in color volume.

Parameters
[in]intrDepth camera intrionsics structure
[in]tranc_disttsdf truncation distance
[in]R_invInverse camera rotation
[in]tcamera translation
[in]vmapRaycasted vertex map
[in]colorsRGB colors for current frame
[in]volume_sizevolume size in meters
[in]color_volumecolor volume to be integrated
[in]max_weightmax weight for running color average. Zero means not average, one means average with prev value, etc.

References updateColorVolume().

Referenced by updateColorVolume().

◆ valid_host()

bool pcl::device::valid_host ( float value)
inline

Check for qnan (unused now).

Parameters
[in]value

Definition at line 389 of file internal.h.

References valid_host().

Referenced by valid_host().

◆ warp_reduce()

template<class T>
__device__ __forceinline__ T pcl::device::warp_reduce ( volatile T * ptr,
const unsigned int tid = threadIdx.x )

Definition at line 46 of file warp_reduce.hpp.

References warp_reduce().

Referenced by warp_reduce().

Variable Documentation

◆ DIVISOR

int pcl::device::DIVISOR = std::numeric_limits<short>::max()
constexpr

Definition at line 56 of file internal.h.

Referenced by pack_tsdf(), unpack_tsdf(), and unpack_tsdf().

◆ VOLUME_SIZE

float pcl::device::VOLUME_SIZE = 3.0f
constexpr

Definition at line 64 of file internal.h.

◆ VOLUME_X

int pcl::device::VOLUME_X = 512
constexpr

Definition at line 59 of file internal.h.

◆ VOLUME_Y

int pcl::device::VOLUME_Y = 512
constexpr

Definition at line 60 of file internal.h.

◆ VOLUME_Z

int pcl::device::VOLUME_Z = 512
constexpr

Definition at line 61 of file internal.h.