Open3D (C++ API)  0.18.0
Data Structures | Namespaces | Macros | Enumerations | Functions
VoxelPooling.h File Reference

(b9e049c (Sun Dec 31 11:36:26 2023 -0800))

#include <tbb/task_group.h>
#include <Eigen/Core>
#include <unordered_map>
#include "open3d/utility/Helper.h"

Go to the source code of this file.

Data Structures

class  open3d::ml::impl::Accumulator< TReal, TFeat, POS_FN, FEAT_FN >
 
class  open3d::ml::impl::AccumulatorBackprop< TReal, TFeat, POS_FN, FEAT_FN >
 

Namespaces

 open3d
 
 open3d::ml
 
 open3d::ml::impl
 

Macros

#define CALL_TEMPLATE(POS_FN, FEAT_FN)
 
#define CALL_TEMPLATE(POS_FN, FEAT_FN)
 

Enumerations

enum  open3d::ml::impl::AccumulationFn {
  open3d::ml::impl::AVERAGE = 0 , open3d::ml::impl::NEAREST_NEIGHBOR , open3d::ml::impl::NEAREST_NEIGHBOR , open3d::ml::impl::MAX ,
  open3d::ml::impl::CENTER
}
 

Functions

template<class T >
bool open3d::ml::impl::CheckVoxelSize (std::string &err, const size_t num_positions, const T *const positions, const T voxel_size)
 Function for debugging. Checks if the voxel size is too small. More...
 
template<class TDerived >
Eigen::Vector3i open3d::ml::impl::ComputeVoxelIndex (const Eigen::ArrayBase< TDerived > &pos, const typename TDerived::Scalar &inv_voxel_size)
 
template<class TReal , class TFeat , class ACCUMULATOR , class OUTPUT_ALLOCATOR >
void open3d::ml::impl::_VoxelPooling (size_t num_inp, const TReal *const inp_positions, int in_channels, const TFeat *inp_features, TReal voxel_size, OUTPUT_ALLOCATOR &output_allocator)
 
template<class TReal , class TFeat , class ACCUMULATOR , AccumulationFn FEAT_FN>
void open3d::ml::impl::_VoxelPoolingBackprop (TFeat *features_backprop, size_t num_inp, const TReal *const inp_positions, int in_channels, const TFeat *const inp_features, size_t num_pooled, const TReal *const pooled_positions, const TFeat *const pooled_features_gradient, TReal voxel_size)
 
template<class TReal , class TFeat , class OUTPUT_ALLOCATOR >
void open3d::ml::impl::VoxelPooling (size_t num_inp, const TReal *const inp_positions, int in_channels, const TFeat *inp_features, TReal voxel_size, OUTPUT_ALLOCATOR &output_allocator, AccumulationFn position_fn, AccumulationFn feature_fn)
 
template<class TReal , class TFeat >
void open3d::ml::impl::VoxelPoolingBackprop (TFeat *features_backprop, size_t num_inp, const TReal *const inp_positions, int in_channels, const TFeat *const inp_features, size_t num_pooled, const TReal *const pooled_positions, const TFeat *const pooled_features_gradient, TReal voxel_size, AccumulationFn position_fn, AccumulationFn feature_fn)
 

Macro Definition Documentation

◆ CALL_TEMPLATE [1/2]

#define CALL_TEMPLATE (   POS_FN,
  FEAT_FN 
)
Value:
if (POS_FN == position_fn && FEAT_FN == feature_fn) { \
_VoxelPooling<TReal, TFeat, \
Accumulator<TReal, TFeat, POS_FN, FEAT_FN>>( \
num_inp, inp_positions, in_channels, inp_features, voxel_size, \
output_allocator); \
}

◆ CALL_TEMPLATE [2/2]

#define CALL_TEMPLATE (   POS_FN,
  FEAT_FN 
)
Value:
if (POS_FN == position_fn && FEAT_FN == feature_fn) { \
_VoxelPoolingBackprop< \
TReal, TFeat, \
AccumulatorBackprop<TReal, TFeat, POS_FN, FEAT_FN>, FEAT_FN>( \
features_backprop, num_inp, inp_positions, in_channels, \
inp_features, num_pooled, pooled_positions, \
pooled_features_gradient, voxel_size); \
}