2021SC@SDUSC
VoxelGrid.h
注释中文部分是源码解读,分析和问题在源码之后
#include <Eigen/Core>
#include <memory>
#include <unordered_map>
#include <vector>
#include "open3d/geometry/Geometry3D.h"
#include "open3d/utility/Helper.h"
#include "open3d/utility/Logging.h"
namespace open3d {
namespace camera {
class PinholeCameraParameters;
}
namespace geometry {
class PointCloud;
class TriangleMesh;
class Octree;
class Image;
/// \class Voxel
//体素
//基本体素类,包含栅格id和颜色。
class Voxel {
public:
// 默认构造函数。
Voxel() {
}
// 参数化构造函数。
// 栅格索引体素的栅格坐标索引。
Voxel(const Eigen::Vector3i &grid_index) : grid_index_(grid_index) {
}
//参数化构造函数。
//体素的栅格坐标索引。
//体素的颜色。
Voxel(const Eigen::Vector3i &grid_index, const Eigen::Vector3d &color)
: grid_index_(grid_index), color_(color) {
}
//析构函数
~Voxel() {
}
public:
// 体素的栅格坐标索引。
Eigen::Vector3i grid_index_ = Eigen::Vector3i(0, 0, 0);
// 体素的颜色。
Eigen::Vector3d color_ = Eigen::Vector3d(0, 0, 0);
};
//体素网格
//体素网格是在网格中对齐的体素的集合。
class VoxelGrid : public Geometry3D {
public:
// 默认构造函数。
VoxelGrid() : Geometry3D(Geometry::GeometryType::VoxelGrid) {
}
// 参数化构造函数。
VoxelGrid