Monday, May 10, 2010

CGALでのメッシュ生成


以下のサイトのGenerating Meshes with CGALに,関数からメッシュを作ってメッシュにアクセスする方法が書いてある.
http://schmid.dk/wiki/index.php/CGAL

この方法で,メッシュ生成すると,ちゃんとメッシュが作れた.
ユーザーの気持ちを知っているすばらしいサイトだと思う.

Facet_iteratorでcomplex上のfaceにアクセスし,アクセスしたfaceのfirst(四面体)からsecond以外の頂点にアクセスする.そのsecond以外の頂点は,complex上のfaceなので,ちゃんと頂点が取れてくる.ということです.
知らないとできないです.こんなの.

C2t3でメッシュ生成後,以下のコード(上のサイトからの転載)で,メッシュにアクセスできます.


// for each facet (triangle), print the vertices
for(C2t3::Facet_iterator fi = c2t3.facets_begin();
fi != c2t3.facets_end(); fi++) {

C2t3::Cell_handle cell = fi->first;
int opposite_vertex_index = fi->second;
for(int i = 0; i < 4; i++)
if(i != opposite_vertex_index) {
std::cout << "(" << cell->vertex(i)->point().x()
<< "," << cell->vertex(i)->point().y()
<< "," << cell->vertex(i)->point().z() << ")"
<< std::endl;
}
}


ありがとうございました.

No comments: