CGAL-由多面体Polyhedron_3输出obj文件
生活随笔
收集整理的這篇文章主要介紹了
CGAL-由多面体Polyhedron_3输出obj文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
綜述
多面體(四面體)輸出obj
實現
#include <CGAL/Simple_cartesian.h> #include <CGAL/Polyhedron_3.h> #include <iostream> #include <string> typedef CGAL::Simple_cartesian<double> Kernel; typedef Kernel::Point_3 Point_3; typedef CGAL::Polyhedron_3<Kernel> Polyhedron; typedef Polyhedron::Facet_iterator Facet_iterator; typedef Polyhedron::Point_iterator Point_iterator; typedef Polyhedron::Halfedge_around_facet_circulator Halfedge_facet_circulator; using namespace std; int main() {Point_3 p( 0.0, 2, 0.0);Point_3 q( 1.0, 0.0, 0.0);Point_3 r( 0.0, 1.0, 0.0);Point_3 s( 0.0, 0.0, 1.0);Polyhedron P;P.make_tetrahedron( p, q, r, s);for (Point_iterator k = P.points_begin(); k !=P.points_end(); ++k) {cout <<"v " << *k<< endl;//輸出所有的點信息}for ( Facet_iterator i = P.facets_begin(); i != P.facets_end(); ++i) {Halfedge_facet_circulator j = i->facet_begin();// Facets in polyhedral surfaces are at least triangles.CGAL_assertion( CGAL::circulator_size(j) >= 3);//多面體最小的面片也是三角形這里做一下小檢測 // cout << CGAL::circulator_size(j) << ' ';面片邊數cout << "f ";do {cout << 1+distance(P.vertices_begin(), j->vertex()) <<" ";} while ( ++j != i->facet_begin());cout << endl;}return 0; }總結
以上是生活随笔為你收集整理的CGAL-由多面体Polyhedron_3输出obj文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《数据密集型应用系统设计》读书笔记——数
- 下一篇: cad在线转换_真正不收费的CAD资源网