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をサポートしています。

制限

書き出し時の検証等はありませんし、正しくないファイルを書き出すことが出来るようになっています。

検証は自前で行なってください。

XMLの解析、生成にREXMLを使用しているのでめちゃくちゃ重いです。気長に待ってください。

ダウンロード

リポジトリからSnapshotを拾ってください。

リポジトリは以下。

http://miru.kumaryu.net/head/net.kumaryu.ruby_dae