Open3D (C++ API)  0.19.0
Loading...
Searching...
No Matches
VoxelBlockGrid.cpp File Reference

Namespaces

namespace  open3d
namespace  open3d::t
namespace  open3d::t::geometry
namespace  open3d::t::geometry::kernel
namespace  open3d::t::geometry::kernel::voxel_grid

Macros

#define DISPATCH_VALUE_DTYPE_TO_TEMPLATE(WEIGHT_DTYPE, COLOR_DTYPE, ...)
#define DISPATCH_INPUT_DTYPE_TO_TEMPLATE(DEPTH_DTYPE, COLOR_DTYPE, ...)

Functions

void open3d::t::geometry::kernel::voxel_grid::PointCloudTouch (std::shared_ptr< core::HashMap > &hashmap, const core::Tensor &points, core::Tensor &voxel_block_coords, index_t voxel_grid_resolution, float voxel_size, float sdf_trunc)
void open3d::t::geometry::kernel::voxel_grid::DepthTouch (std::shared_ptr< core::HashMap > &hashmap, const core::Tensor &depth, const core::Tensor &intrinsic, const core::Tensor &extrinsic, core::Tensor &voxel_block_coords, index_t voxel_grid_resolution, float voxel_size, float sdf_trunc, float depth_scale, float depth_max, index_t stride)
void open3d::t::geometry::kernel::voxel_grid::GetVoxelCoordinatesAndFlattenedIndices (const core::Tensor &buf_indices, const core::Tensor &block_keys, core::Tensor &voxel_coords, core::Tensor &flattened_indices, index_t block_resolution, float voxel_size)
void open3d::t::geometry::kernel::voxel_grid::Integrate (const core::Tensor &depth, const core::Tensor &color, const core::Tensor &block_indices, const core::Tensor &block_keys, TensorMap &block_value_map, const core::Tensor &depth_intrinsic, const core::Tensor &color_intrinsic, const core::Tensor &extrinsic, index_t resolution, float voxel_size, float sdf_trunc, float depth_scale, float depth_max)
void open3d::t::geometry::kernel::voxel_grid::EstimateRange (const core::Tensor &block_keys, core::Tensor &range_minmax_map, const core::Tensor &intrinsics, const core::Tensor &extrinsics, int h, int w, int down_factor, int64_t block_resolution, float voxel_size, float depth_min, float depth_max, core::Tensor &fragment_buffer)
void open3d::t::geometry::kernel::voxel_grid::RayCast (std::shared_ptr< core::HashMap > &hashmap, const TensorMap &block_value_map, const core::Tensor &range_map, TensorMap &renderings_map, const core::Tensor &intrinsic, const core::Tensor &extrinsic, index_t h, index_t w, index_t block_resolution, float voxel_size, float depth_scale, float depth_min, float depth_max, float weight_threshold, float trunc_voxel_multiplier, int range_map_down_factor)
void open3d::t::geometry::kernel::voxel_grid::ExtractPointCloud (const core::Tensor &block_indices, const core::Tensor &nb_block_indices, const core::Tensor &nb_block_masks, const core::Tensor &block_keys, const TensorMap &block_value_map, core::Tensor &points, core::Tensor &normals, core::Tensor &colors, index_t block_resolution, float voxel_size, float weight_threshold, int &valid_size)
void open3d::t::geometry::kernel::voxel_grid::ExtractTriangleMesh (const core::Tensor &block_indices, const core::Tensor &inv_block_indices, const core::Tensor &nb_block_indices, const core::Tensor &nb_block_masks, const core::Tensor &block_keys, const TensorMap &block_value_map, core::Tensor &vertices, core::Tensor &triangles, core::Tensor &vertex_normals, core::Tensor &vertex_colors, index_t block_resolution, float voxel_size, float weight_threshold, int &vertex_count)

Macro Definition Documentation

◆ DISPATCH_INPUT_DTYPE_TO_TEMPLATE

#define DISPATCH_INPUT_DTYPE_TO_TEMPLATE ( DEPTH_DTYPE,
COLOR_DTYPE,
... )
Value:
[&] { \
if (DEPTH_DTYPE == open3d::core::Float32 && \
COLOR_DTYPE == open3d::core::Float32) { \
using input_depth_t = float; \
using input_color_t = float; \
return __VA_ARGS__(); \
} else if (DEPTH_DTYPE == open3d::core::UInt16 && \
COLOR_DTYPE == open3d::core::UInt8) { \
using input_depth_t = uint16_t; \
using input_color_t = uint8_t; \
return __VA_ARGS__(); \
} else { \
utility::LogError( \
"Unsupported input data type combination. Expected " \
"(float, float) or (uint16, uint8), but received ({} {})", \
DEPTH_DTYPE.ToString(), COLOR_DTYPE.ToString()); \
} \
}()
const Dtype UInt16
Definition Dtype.cpp:49
const Dtype UInt8
Definition Dtype.cpp:48
const Dtype Float32
Definition Dtype.cpp:42

◆ DISPATCH_VALUE_DTYPE_TO_TEMPLATE

#define DISPATCH_VALUE_DTYPE_TO_TEMPLATE ( WEIGHT_DTYPE,
COLOR_DTYPE,
... )
Value:
[&] { \
if (WEIGHT_DTYPE == open3d::core::Float32 && \
COLOR_DTYPE == open3d::core::Float32) { \
using weight_t = float; \
using color_t = float; \
return __VA_ARGS__(); \
} else if (WEIGHT_DTYPE == open3d::core::UInt16 && \
COLOR_DTYPE == open3d::core::UInt16) { \
using weight_t = uint16_t; \
using color_t = uint16_t; \
return __VA_ARGS__(); \
} else { \
utility::LogError( \
"Unsupported value data type combination. Expected " \
"(float, float) or (uint16, uint16), but received ({} " \
"{}).", \
WEIGHT_DTYPE.ToString(), COLOR_DTYPE.ToString()); \
} \
}()