open3d 使用的智能指针也是引用C++的智能指针,和C++的用法一样,用法如下
#include <iostream>
#include <Open3D/Open3D.h>
using namespace std;
int main(int argc, char* argv[])
{
open3d::geometry::PointCloud source;
open3d::io::ReadPointCloud("bunny.pcd", source);
std::shared_ptr<open3d::geometry::PointCloud> pointcloud_ptr(new open3d::geometry::PointCloud);
*pointcloud_ptr = source;
pointcloud_ptr->NormalizeNormals();
pointcloud_ptr->PaintUniformColor(Eigen::Vector3d(0.5, 0.0, 0.5));
open3d::geometry::OrientedBoundingBox bounding_box_aligned = pointcloud_ptr->GetOrientedBoundingBox();
std::shared_ptr<open3d::geometry::OrientedBoundingBox> obb_box(
new open3d::geometry::OrientedBoundingBox(bounding_box_aligned));
open3d::visualization::Visualizer visualizer;
visualizer.CreateVisualizerWindow("Open3D", 1600, 900);
visualizer.AddGeometry(pointcloud_ptr);
visualizer.AddGeometry(obb_box);
Eigen::Vector3d backcolo(0, 0, 0);
visualizer.GetRenderOption().background_color_ = backcolo;
visualizer.GetRenderOption().point_size_ = 1.0;
visualizer.Run();
visualizer.DestroyVisualizerWindow();
return 0;
}