COLLADA DOM 2.3をセットアップ

COLLADA DOMをVC2008Expressでビルドしてセットアップ。

まずここからcollada-dom-2.3.tgzをダウンロードして展開。(今回はC:\collada-dom-2.3)

今回はBlenderで出力するdaeをパースしたいので(Blender2.62の標準エクスポートでできるdaeは1.4.1)
C:\collada-dom-2.3\dom\projects\vc9-1.4\dom.slnを開く。
アクティブをReleaseにしてビルド。

ライブラリ名がlibcollada14dom22.libで出力される以外には問題なくビルドできた。

テスト用のデータを用意してテストしてみる。

Blenderを起動し、File>Export>COLLADA(.dae)でデータを作成。(ここではtest.daeとする。)

premake4.lua,main.cppを作成。

[premake4.lua]


solution "daetest"
configurations {"Release"}

project "daetest"
kind "ConsoleApp"
language "C++"
files {"main.cpp"}
defines { "BOOST_ALL_NO_LIB",}
flags { "Optimize" }
includedirs {
"C:/collada-dom-2.3/dom/include",
"C:/collada-dom-2.3/dom/external-libs/boost",
}
libdirs {
"C:/collada-dom-2.3/dom/build/vc9-1.4",
"C:/collada-dom-2.3/dom/external-libs/boost/lib/vc9",
}
links {"libcollada14dom22","libboost_system"}

[main.cpp]

#include

int main(int argc, char **argv)
{
DAE dae;
if( dae.load("test.dae") != DAE_OK )
{
return 0;
}
printf("geometry:%d\n", dae.getDatabase()->getElementCount(NULL, "geometry", NULL));

return 0;
}

コマンドプロンプトからpremake4を使って

>premake4 vs2008

としてdaetest.sln、daetest.vcprojを作成。
作成したslnを開いてビルド。
実行にlibcollada14dom22.dllが必要なのでC:\collada-dom-2.3\dom\build\vc9-1.4\libcollada14dom22.dllをカレントディレクトリにコピー。

>daetest.exe

として実行。

geometry:1

と表示された。
test.daeBlenderのデフォルトキューブが出力されたデータで、なかを覗くとgeometryはid="Cube-mesh"ひとつなので合ってるかな。