kumaryu日記
2006-02-21 ねみー
_ COLLADA DOM
でけた。
まだまだ不備は一杯あるけど、まあ、なんとか。
Blenderが書き出してくれる簡単なデータくらいは普通に読めたよ。
とりあえず
- 1.3.1しか読めません。1.4なにそれ。
- 読み込みしか出来ません。書き込みは近々対応予定。
- 手で書いたので間違ってるところがあるかもしれません。
- boundingbox要素とasset要素だけ扱いに注意して下さい。子要素が属性と同じ扱いになってます。
- ドキュメントとか特に無いです。READMEくらい。
- Object#idがdeperecateって文句言われまくります。実は関係無いんですが。あとでなんとかします。
- Pure Rubyなんでとてつもなく遅いです。YARVで動くといいけど。
- integrationは適当です。が、C++より使いやすいと思う。
- COLLADA DOMに合わせてあると思いきや、適当なんで結構違う。
- IDRefの参照解決なんかしねーよ。
- require 'open_uri'すると微妙に幸せな気分になる人もいるかも。
- 詳しくはソース読め。
- ライセンスはいつもの如く(修正)BSDスタイル。
こんな感じ。
多分だな。1.4に対応するにはxsdから自動生成が正しいんだと思う。 しかしxsd読むのが大変だ。
SOAP4Rにxsd2rubyなんてモノがあるんだが、COLLADAのスキーマ喰わすとエラーで止まってくれる。さすがにこれは無理か。
あと1.3.1のスキーマでも止まるけど、ソースいじって無理矢理切り抜けることは可能。しかし無視される要素があるのでやっぱり使えん。
Schemaがちゃんとしてることが確認出来れば、ちょっとめんどいけど自動生成してもいいかもしんない。少なくとも。手で書くより100倍マシ。
1.3.1でももういじりたくないくらいクラスがある。いじらなきゃいけないんだけど。
おっと、話の流れが読めない人向けに書いておくと、COLLADA DOMっぽいモノをRubyで実装したよ、ってことだ。