スポンサーリンク

| キーワード:

C++でOpen3DのVisualizerを使う

C++の例が少ないので載せておく。

#include <Open3D/IO/ClassIO/TriangleMeshIO.h>
#include<Open3D/Geometry/TriangleMesh.h>

// 表示に必要
#include<Open3D/Visualization/Visualizer/Visualizer.h>

// 表示に必要
#pragma comment(lib,"glew.lib")
#pragma comment(lib,"glfw3.lib")
#pragma comment(lib,"opengl32.lib")

int main()
{

  auto mesh = std::make_shared<open3d::geometry::TriangleMesh>();
  open3d::io::ReadTriangleMeshFromPLY("bunny.ply",*mesh,true);

  //これがないとライトで照らせない
  mesh->ComputeTriangleNormals(true);


  open3d::visualization::Visualizer vis;

  vis.CreateVisualizerWindow("O3D");


  //CreateVisualizerWindowを呼び出してからオブジェクトを登録
  vis.AddGeometry(mesh);

  Eigen::Vector3d center = mesh->GetCenter();

  // Change view
  open3d::visualization::ViewControl& view_control = vis.GetViewControl();
  auto view_params = open3d::visualization::ViewParameters();
  view_control.ConvertToViewParameters(view_params);

  view_params.front_ = Eigen::Vector3d(0, -1, 0);
  view_params.lookat_ = center;
  view_params.up_ = Eigen::Vector3d(0, 0, 1);
  //view_params.zoom_ = 1.0;
  view_control.ConvertFromViewParameters(view_params);

  // PollEventsはウィンドウが閉じられるときにfalseを返す
  while (vis.PollEvents() == true)
  {
    vis.UpdateGeometry();
    vis.UpdateRender();
  }

  vis.DestroyVisualizerWindow();
}

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: