Wednesday, April 28, 2010

ドロネー図の点の参照

CGALは,creationの時点で,グラフを作ります.
ですので,宣言して,insertで点を入れていくだけでグラフが形成されます.
問題はどうやってそのグラフを参照するかだったんですが,cellかvertexのiterator経由でハンドルつかんで,点を順に参照していけばよいです.
ドロネー図をFinite_cells_iterator経由で,四面体の4頂点を自作四面体クラス(Tetrahedron)に格納していく例を挙げます.
自分用メモみたいな感じですが,以下コードです.


Delaunay dt;
for(int i=0; i < _siteN; i++){
dt.insert(Point(_site[i][0], _site[i][1], _site[i][2]));
}
//std::cout << dt.number_of_finite_cells() << "\n";
tetrahedraN = dt.number_of_finite_cells();
tetrahedra = new Tetrahedron*[tetrahedraN];
for(int i=0; i < tetrahedraN; i++){
tetrahedra[i] = new Tetrahedron();
}

int cnt = 0;
for(Delaunay::Finite_cells_iterator fci = dt.finite_cells_begin(); fci != dt.finite_cells_end(); fci++){
for(int j=0;j < 4;j++){
Vertex_handle v = fci->vertex(j);
tetrahedra[cnt]->set(j, 0, v->point().x());
tetrahedra[cnt]->set(j, 1, v->point().y());
tetrahedra[cnt]->set(j, 2, v->point().z());
}
cnt++;
}



siteは母点です.tetrahedraのset関数は,インデックスと次元,位置を格納します.

Monday, April 26, 2010

IntelliSenceでは見えないフィールドがたくさんある

ようやくCGALのリファレンスの意味がわかってきました.
CGALのライブラリはIntelliSenseがあると,見えないフィールドがあるので,使いたい関数が使えないと思っていました.でも実際は,使えるわけで,それを使えば,リファレンスに書かれた機能がサクッと使えます.
例はまた後で書くとして,わかったということだけメモっておきます.明日くらいにコード挙げようと思います.

Sunday, April 25, 2010

CGALビルド時の設定 intelliSenseのため

CGALをVC用にCMAKEするとslnファイルが出力されますが,このままビルドすると読み込み先でintellSenseが働かないライブラリが出力されます.
プロパティで\cln(共通言語ランタイムのコンパイル)に設定しないとだめなようです.
なぜかはよくわかりません.

それ以外にCGALをシステムパスに登録しておかなければならないのは,前回の通りです.

CGALのインクルードディレクトリとライブラリディレクトリ

CGALが3.6にバージョンアップしてたので,インストールしてみました.

若干構造が変わった気がしますが,誤差の範囲です.
インストール方法は,以前と変わりません.
管理者として実行でインストールする方が楽ってことを気付いたくらいです.

走らせるときのパスは,以下です.
追加のインクルードディレクトリは
C:Program File\CGAL-3.6\include
C:Program File\CGAL-3.6\auxiliary\gmp\include
C:Program File\CGAL-3.6\auxiliary\tausc\include
C:Program File\boost\boost_1_14

追加のライブラリディレクトリは
C:Program File\CGAL-3.6\lib
C:Program File\CGAL-3.6\auxiliary\gmp\lib
C:Program File\CGAL-3.6\auxiliary\tausc\lib
C:Program File\boost\boost_1_14\lib

これで同様に走ったので,問題ないでしょう.

Vistaは管理者として実行か

右クリックから管理者として実行すれば問題なくインストールできた.
CGALもCMAKEも全部管理者として実行です.
とくに,CMAKEの実行は絶対に管理者として実行しなければなりません.
動けば何でもいいです.

Thursday, April 22, 2010

思い通りのレンダリングが出ない1例

テクスチャが設定した通りにレンダリングされない.
と1日中悩んでいたが,原因はmipmapで,これが適用される設定になっていた.
そのため,場合によってぬるいテクスチャが適用される.

Monday, April 5, 2010

はじまりました

さっそく研究用のソフトウェアを開発し始めました.
さくっといい結果が出てくれるとうれしいです.