如何使用 CGAL 绘制三角形?

How to draw triangles using CGAL?

问题描述
我有一个包含许多 triangle_3 对象的列表。它应该看起来像一个封闭的曲面网格,但出于多种原因我没有使用 Surface_mesh 来表示它。但是,我真的很想检查它,所以我想画它。我阅读了 CGAL 手册,但没有找到任何可以在 Windows 上使用的函数。我在 Geomview 包中找到了一个名为 draw_triangles 的函数,但是这个包的用户手册说 “本章描述的功能在 Windows 上不可用” .在我的编程环境中似乎无法使用 draw_triangles 函数。我怎样才能画出三角形?
编程环境
windowsx64
对比 2017
CGAL 5.3

我建议构建一个 Surface_mesh 仅用于显示目的。您可以使用以下 example. If your triangle soup is not directly a valid surface mesh, you can use the functions orient_polygon_soup() and polygon_soup_to_polygon_mesh().

另请参阅此 example

编辑 我从未尝试过,但似乎您可以通过向以下 class:

添加部分模板专业化来全局或按面更改颜色
namespace CGAL
{

// Default color functor; user can change it to have its own face color
struct DefaultColorFunctorFaceGraph
{
  template<typename Graph>
  CGAL::IO::Color operator()(const Graph&,
                         typename boost::graph_traits<Graph>::face_descriptor fh) const
  {
    if (fh==boost::graph_traits<Graph>::null_face()) // use to get the mono color
      return CGAL::IO::Color(100, 125, 200); // R G B between 0-255

    return get_random_color(CGAL::get_default_random());
  }
};

}