30 #include <unordered_map> 37 namespace integration {
39 class UniformTSDFVolume;
66 std::shared_ptr<UniformTSDFVolume>
volume_;
74 int volume_unit_resolution = 16,
75 int depth_sampling_stride = 4);
79 void Reset()
override;
82 const Eigen::Matrix4d &extrinsic)
override;
96 std::unordered_map<Eigen::Vector3i,
102 Eigen::Vector3i LocateVolumeUnit(
const Eigen::Vector3d &point) {
103 return Eigen::Vector3i((
int)
std::floor(point(0) / volume_unit_length_),
104 (
int)
std::floor(point(1) / volume_unit_length_),
105 (
int)
std::floor(point(2) / volume_unit_length_));
108 std::shared_ptr<UniformTSDFVolume> OpenVolumeUnit(
109 const Eigen::Vector3i &index);
111 Eigen::Vector3d GetNormalAt(
const Eigen::Vector3d &p);
113 double GetTSDFAt(
const Eigen::Vector3d &p);
Eigen::Vector3i index_
Definition: ScalableTSDFVolume.h:67
double volume_unit_length_
Definition: ScalableTSDFVolume.h:90
Definition: ScalableTSDFVolume.h:61
Definition: ScalableTSDFVolume.h:59
ScalableTSDFVolume(double voxel_length, double sdf_trunc, TSDFVolumeColorType color_type, int volume_unit_resolution=16, int depth_sampling_stride=4)
Definition: ScalableTSDFVolume.cpp:40
Contains the pinhole camera intrinsic parameters.
Definition: PinholeCameraIntrinsic.h:51
std::shared_ptr< geometry::PointCloud > ExtractVoxelPointCloud()
Debug function to extract the voxel data into a point cloud.
Definition: ScalableTSDFVolume.cpp:375
std::shared_ptr< UniformTSDFVolume > volume_
Definition: ScalableTSDFVolume.h:66
FN_SPECIFIERS MiniVec< float, N > floor(const MiniVec< float, N > &a)
Definition: MiniVec.h:80
std::shared_ptr< geometry::PointCloud > ExtractPointCloud() override
Function to extract a point cloud with normals.
Definition: ScalableTSDFVolume.cpp:122
RGBDImage is for a pair of registered color and depth images,.
Definition: RGBDImage.h:46
TSDFVolumeColorType
Definition: TSDFVolume.h:41
std::unordered_map< Eigen::Vector3i, VolumeUnit, utility::hash_eigen< Eigen::Vector3i > > volume_units_
Definition: ScalableTSDFVolume.h:99
Definition: PinholeCameraIntrinsic.cpp:35
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:225
void Reset() override
Function to reset the TSDFVolume.
Definition: ScalableTSDFVolume.cpp:52
Base class of the Truncated Signed Distance Function (TSDF) volume.
Definition: TSDFVolume.h:61
VolumeUnit()
Definition: ScalableTSDFVolume.h:63
~ScalableTSDFVolume() override
Definition: ScalableTSDFVolume.cpp:50
int volume_unit_resolution_
Definition: ScalableTSDFVolume.h:89
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:54
int depth_sampling_stride_
Definition: ScalableTSDFVolume.h:91