39 class PinholeCameraParameters;
52 Voxel(
const Eigen::Vector3i &grid_index) : grid_index_(grid_index) {}
53 Voxel(
const Eigen::Vector3i &grid_index,
const Eigen::Vector3d &color)
54 : grid_index_(grid_index),
color_(color) {}
58 Eigen::Vector3i grid_index_ = Eigen::Vector3i(0, 0, 0);
59 Eigen::Vector3d
color_ = Eigen::Vector3d(0, 0, 0);
69 bool IsEmpty()
const override;
70 Eigen::Vector3d GetMinBound()
const override;
71 Eigen::Vector3d GetMaxBound()
const override;
72 Eigen::Vector3d GetCenter()
const override;
75 VoxelGrid &Transform(
const Eigen::Matrix4d &transformation)
override;
76 VoxelGrid &Translate(
const Eigen::Vector3d &translation,
77 bool relative =
true)
override;
78 VoxelGrid &Scale(
const double scale,
bool center =
true)
override;
79 VoxelGrid &Rotate(
const Eigen::Vector3d &rotation,
86 bool HasVoxels()
const {
return voxels_.size() > 0; }
90 Eigen::Vector3i GetVoxel(
const Eigen::Vector3d &point)
const;
94 const Eigen::Vector3i &grid_index = voxels_[idx].grid_index_;
95 return ((grid_index.cast<
double>() + Eigen::Vector3d(0.5, 0.5, 0.5)) *
101 std::vector<Eigen::Vector3d> GetVoxelBoundingPoints(
int index)
const;
108 const Image &depth_map,
116 const Image &silhouette_mask,
119 void CreateFromOctree(
const Octree &octree);
121 std::shared_ptr<geometry::Octree> ToOctree(
const size_t &max_depth)
const;
125 static std::shared_ptr<VoxelGrid> CreateDense(
const Eigen::Vector3d &origin,
135 static std::shared_ptr<VoxelGrid> CreateFromPointCloud(
142 static std::shared_ptr<VoxelGrid> CreateFromPointCloudWithinBounds(
145 const Eigen::Vector3d &min_bound,
146 const Eigen::Vector3d &max_bound);
151 static std::shared_ptr<VoxelGrid> CreateFromTriangleMesh(
157 static std::shared_ptr<VoxelGrid> CreateFromTriangleMeshWithinBounds(
160 const Eigen::Vector3d &min_bound,
161 const Eigen::Vector3d &max_bound);
179 "Tried to aggregate ColorVoxel with different "
int num_of_points_
Definition: DownSample.cpp:77
double voxel_size_
Definition: VoxelGrid.h:164
Definition: Geometry.h:32
void Add(const Eigen::Vector3i &voxel_index)
Definition: VoxelGrid.h:176
Definition: BoundingVolume.h:90
void Add(const Eigen::Vector3i &voxel_index, const Eigen::Vector3d &color)
Definition: VoxelGrid.h:185
Voxel(const Eigen::Vector3i &grid_index)
Definition: VoxelGrid.h:52
void LogWarning(const char *format, const Args &... args)
Definition: Console.h:219
Eigen::Vector3d color_
Definition: VoxelGrid.h:204
Definition: BoundingVolume.h:38
Eigen::Vector3i voxel_index_
Definition: VoxelGrid.h:203
Definition: PointCloud.h:50
long voxel_index
Definition: FilePLY.cpp:284
bool HasVoxels() const
Definition: VoxelGrid.h:86
VoxelGrid()
Definition: VoxelGrid.h:64
RotationType
Definition: Geometry3D.h:43
~VoxelGrid() override
Definition: VoxelGrid.h:66
AvgColorVoxel()
Definition: VoxelGrid.h:173
Definition: Geometry3D.h:41
Definition: VoxelGrid.h:171
~Voxel()
Definition: VoxelGrid.h:55
Eigen::Vector3d origin_
Definition: VoxelGrid.h:165
Eigen::Vector3d color_
Definition: DownSample.cpp:80
bool HasColors() const
Definition: VoxelGrid.h:87
char type
Definition: FilePCD.cpp:56
Definition: PinholeCameraParameters.h:37
Definition: PinholeCameraIntrinsic.cpp:34
Definition: VoxelGrid.h:62
GeometryType
Definition: Geometry.h:34
int height
Definition: FilePCD.cpp:68
Eigen::Vector3d GetAverageColor() const
Definition: VoxelGrid.h:193
std::vector< Voxel > voxels_
Definition: VoxelGrid.h:166
int num_of_points_
Definition: VoxelGrid.h:202
Definition: VoxelGrid.h:49
Eigen::Vector3i GetVoxelIndex() const
Definition: VoxelGrid.h:191
Voxel()
Definition: VoxelGrid.h:51
Definition: TriangleMesh.h:43
Voxel(const Eigen::Vector3i &grid_index, const Eigen::Vector3d &color)
Definition: VoxelGrid.h:53
Eigen::Vector3d GetVoxelCenterCoordinate(int idx) const
Definition: VoxelGrid.h:93
int width
Definition: FilePCD.cpp:67