Open3D (C++ API)  0.18.0
Namespaces | Macros | Functions
VoxelBlockGrid.cpp File Reference

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

#include "open3d/t/geometry/kernel/VoxelBlockGrid.h"
#include <vector>
#include "open3d/core/CUDAUtils.h"
#include "open3d/core/ShapeUtil.h"
#include "open3d/core/Tensor.h"
#include "open3d/core/hashmap/HashMap.h"
#include "open3d/utility/Logging.h"

Namespaces

 open3d
 
 open3d::t
 
 open3d::t::geometry
 
 open3d::t::geometry::kernel
 
 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 { \
"Unsupported input data type combination. Expected " \
"(float, float) or (uint16, uint8), but received ({} {})", \
DEPTH_DTYPE.ToString(), COLOR_DTYPE.ToString()); \
} \
}()
#define LogError(...)
Definition: Logging.h:48
const Dtype UInt16
Definition: Dtype.cpp:49
const Dtype UInt8
Definition: Dtype.cpp:48
const Dtype Float32
Definition: Dtype.cpp:42
const char const char value recording_handle imu_sample recording_handle uint8_t size_t data_size k4a_record_configuration_t config target_format k4a_capture_t capture_handle k4a_imu_sample_t imu_sample playback_handle k4a_logging_message_cb_t void min_level device_handle k4a_imu_sample_t timeout_in_ms capture_handle capture_handle capture_handle image_handle float
Definition: K4aPlugin.cpp:460

◆ 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 { \
"Unsupported value data type combination. Expected " \
"(float, float) or (uint16, uint16), but received ({} " \
"{}).", \
WEIGHT_DTYPE.ToString(), COLOR_DTYPE.ToString()); \
} \
}()