ライセンス | LGPL |
URL | http://gts.sourceforge.net/ |
三角形網を作成するライブラリです。
2次元だけでなく、3次元でもできるようです。
さらに、制約付きdelaunay三角形網を作成することもできます。
そのほかにもよくわかりませんがいろいろなことができるようです。
三角形網を作成するだけかと思いきや、結構奥が深いライブラリです。
コンパイル(ver 0.7.6)
gtsはglibに依存します。
さらに、glibはiconv、gettextに依存します。
まずはこれらをコンパイルするか開発用ライブラリを入手するかして、
環境を用意する必要があります。
glibをソースからコンパイルするのはMinGWならばたいしたことはありませんが、
nmakeでは大変です。
glibにはVC2008用のプロジェクトファイルがあるので、VC2008を使ったほうが簡単かと思われます。
コンパイルはがとりあえずできたら、今度はインクルードファイルを正しく配置する必要があります。
まず、適当なところにglib.hとglibconfig.hを置いたら、同じディレクトリにglibという名前のディレクトリを作成し、
その中に必要なインクルードファイルをすべて置きます。
必要なインクルードファイルはglib.hを見ればわかります。
あと、インポートライブラリも適当なところにおいておきます。
ここまでできたら、gtsのコンパイルです。これもなかなか大変です。
まずは、srcフォルダの中にあるmakefile.mscを書き換えます。
CFLAGS =
のところに、先ほどglib.hを置いたディレクトリを-I
オプションで指定し、
gts-$(GTS_VER).dll
のターゲットのところにglibのインポートライブラリを指定します。
オリジナルではglib-1.3.libになっているので、ここを書き換えます。glib-2.0以降のバージョンでも大丈夫のようです。
あと、gts_OBJECTS =
のところにtribox3.objを追加します。なぜか入っていません。
これで、nmake -f makefile.msc
が流れると思います。
使い方
サンプルファイルがたくさんありますが、これをそのまま使っても有用です。
その場合は、入力データを.gtsファイルの形式にする必要があります。
出力されるのも.gts形式です。
この形式のサンプルファイルはソースについてきています。
この形式のファイルを閲覧することができるmviewというソフトへのリンクが
gtsのホームページにあります。
また、toolフォルダにはgtsを変換するツール群もあります。
gtsはすべてC言語(C++ではない)で書かれているのですが、
GNU系に良くあるC言語的オブジェクト指向なので、使い方は独特のややこしさがあります。
これはlibtiffなんかも同じですが、libtiffはTIFF
型だけを意識していればとりあえず済んだのが、
こちらはいろいろなクラスが出てくるし、オブジェクトの作成もややこしいです。