Ruby/DAE
Ruby用のCOLLADA操作ライブラリです。
COLLADAの読み書きが出来ます。C++のCOLLADA DOMに似た簡単なインテグレーションも使用できます。
必要な環境
Ruby 1.8.2以降
使い方とか
インストールはsetup.rbを使用してください。
require 'dae'
class IntNode
def initialize
@type = nil
@name = nil
end
attr_reader :type, :name
def load(elem)
@type = nil
@name = elem.name
if elem.instance[0] then
url = elem.instance[0].url
ref = url.split('#').last
ref_e = elem.collection.element(ref, nil)
if ref_e.size>0 then
@type = ref_e[0].class::ELEMENT
end
end
end
def save(elem)
#not implemented yet
end
end
DAE::INTEGRATION['node'] = IntNode
dae = DAE.load('sample131.dae', COLLADADOM131)
dae.element(nil, 'node').each do |node|
if node.integration.type then
puts "Node `#{node.integration.name}' has a instance of #{node.integration.type}"
end
end
上記の例ではsample131.daeを読み込み、インスタンスを持つノードを拾ってきてインテグレーションで取得した型を表示しています。
他にはsample内のファイルを参照して下さい。
現状では以下のバージョンのCOLLADA DOMをサポートしています。
- COLLADA1.4.1 (デフォルト)
- COLLADA1.4.0
- COLLADA1.3.1
制限
書き出し時の検証等はありませんし、正しくないファイルを書き出すことが出来るようになっています。
検証は自前で行なってください。
XMLの解析、生成にREXMLを使用しているのでめちゃくちゃ重いです。気長に待ってください。
ダウンロード
リポジトリからSnapshotを拾ってください。
リポジトリは以下。