30 #include <unordered_map> 36 namespace integration {
38 class UniformTSDFVolume;
65 std::shared_ptr<UniformTSDFVolume>
volume_;
73 int volume_unit_resolution = 16,
74 int depth_sampling_stride = 4);
78 void Reset()
override;
81 const Eigen::Matrix4d &extrinsic)
override;
95 std::unordered_map<Eigen::Vector3i,
101 Eigen::Vector3i LocateVolumeUnit(
const Eigen::Vector3d &point) {
102 return Eigen::Vector3i((
int)std::floor(point(0) / volume_unit_length_),
103 (
int)std::floor(point(1) / volume_unit_length_),
104 (
int)std::floor(point(2) / volume_unit_length_));
107 std::shared_ptr<UniformTSDFVolume> OpenVolumeUnit(
108 const Eigen::Vector3i &index);
110 Eigen::Vector3d GetNormalAt(
const Eigen::Vector3d &p);
112 double GetTSDFAt(
const Eigen::Vector3d &p);
double volume_unit_length_
Definition: ScalableTSDFVolume.h:89
Definition: ScalableTSDFVolume.h:58
TSDFVolumeColorType
Definition: TSDFVolume.h:40
int volume_unit_resolution_
Definition: ScalableTSDFVolume.h:88
Contains the pinhole camera intrinsic parameters.
Definition: PinholeCameraIntrinsic.h:51
Base class of the Truncated Signed Distance Function (TSDF) volume.
Definition: TSDFVolume.h:60
Eigen::Vector3i index_
Definition: ScalableTSDFVolume.h:66
int depth_sampling_stride_
Definition: ScalableTSDFVolume.h:90
VolumeUnit()
Definition: ScalableTSDFVolume.h:62
void Integrate(const geometry::RGBDImage &image, const camera::PinholeCameraIntrinsic &intrinsic, const Eigen::Matrix4d &extrinsic) override
Function to integrate an RGB-D image into the volume.
Definition: ScalableTSDFVolume.cpp:53
std::shared_ptr< geometry::TriangleMesh > ExtractTriangleMesh() override
Function to extract a triangle mesh, using the marching cubes algorithm. (https://en.wikipedia.org/wiki/Marching_cubes)
Definition: ScalableTSDFVolume.cpp:211
RGBDImage is for a pair of registered color and depth images,.
Definition: RGBDImage.h:46
std::shared_ptr< geometry::PointCloud > ExtractVoxelPointCloud()
Debug function to extract the voxel data into a point cloud.
Definition: ScalableTSDFVolume.cpp:361
std::unordered_map< Eigen::Vector3i, VolumeUnit, utility::hash_eigen::hash< Eigen::Vector3i > > volume_units_
Definition: ScalableTSDFVolume.h:98
~ScalableTSDFVolume() override
Definition: ScalableTSDFVolume.cpp:49
Definition: Open3DViewer.h:29
Definition: ScalableTSDFVolume.h:60
ScalableTSDFVolume(double voxel_length, double sdf_trunc, TSDFVolumeColorType color_type, int volume_unit_resolution=16, int depth_sampling_stride=4)
Definition: ScalableTSDFVolume.cpp:39
std::shared_ptr< geometry::PointCloud > ExtractPointCloud() override
Function to extract a point cloud with normals.
Definition: ScalableTSDFVolume.cpp:108
void Reset() override
Function to reset the TSDFVolume.
Definition: ScalableTSDFVolume.cpp:51
std::shared_ptr< UniformTSDFVolume > volume_
Definition: ScalableTSDFVolume.h:65