C++ 如何将曲面网格转化为多面体?
我已按照以下建议定义并加载曲面网格:C++ 如何将曲面网格转化为多面体?,c++,geometry,cgal,C++,Geometry,Cgal,我已按照以下建议定义并加载曲面网格:typedef OpenMesh::PolyMesh_ArrayKernelT surface_mesh,尚未使用此类 算法,因为我需要一个类似的多面体: typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; typedef CGAL::Polyhedron_3<Kernel> Polyhedron; typedef CGAL::精确谓词\不精确构造\内核; typ
typedef OpenMesh::PolyMesh_ArrayKernelT surface_mesh代码>,尚未使用此类
算法,因为我需要一个类似的多面体:
typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef CGAL::Polyhedron_3<Kernel> Polyhedron;
typedef CGAL::精确谓词\不精确构造\内核;
typedef CGAL::多面体_3多面体;
然而,我不知道如何把一个变成另一个。在CGAL中如何做这样的事情
简化的演示:
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/mesh_segmentation.h>
#include <CGAL/Polygon_mesh_processing/connected_components.h>
#include <CGAL/boost/graph/copy_face_graph.h>
#include <OpenMesh/Core/Mesh/PolyMesh_ArrayKernelT.hh>
#include <OpenMesh/Core/IO/MeshIO.hh>
#include <iostream>
typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef CGAL::Polyhedron_3<Kernel> Polyhedron;
typedef OpenMesh::PolyMesh_ArrayKernelT</* MyTraits*/> Surface_mesh;
int main()
{
// create and read Polyhedron
Surface_mesh mesh_in, mesh_out;
Polyhedron mesh;
OpenMesh::IO::read_mesh( mesh_in, "data/elephant.off");
CGAL::copy_face_graph(mesh_in, mesh);
CGAL::copy_face_graph(mesh, mesh_out);
if (!OpenMesh::IO::write_mesh(mesh_out, "slon.obj"))
{
std::cerr << "write error\n";
exit(1);
}
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
typedef CGAL::精确谓词\u不精确结构\u内核;
typedef CGAL::多面体_3多面体;
typedef OpenMesh::多边形网格(ArrayKernelT Surface)网格;
int main()
{
//创建和读取多面体
曲面网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格网格;
多面体网格;
OpenMesh::IO::read_mesh(mesh_in,“data/elephant.off”);
CGAL::复制面图(网格中,网格);
CGAL::复制面图(网格,网格输出);
if(!OpenMesh::IO::write_mesh(mesh_out,“slon.obj”))
{
std::cerr该算法直接使用此OpenMesh数据结构,无需进行复制。但是,如果您碰巧需要复制数据结构,则可以使用该功能。添加了编译失败的演示代码,并使用了建议的CGAL::copy_face_graph()
功能您缺少的\35; include
。