ruby-openglで遊ぶための数学関数ライブラリ・ RMath を作成中。とりあえず用意できたのはここまで:
- RVec3/RVec4 : 3次元/4次元ベクトル
- RMtx3/RMtx4 : 3x3/4x4正方行列
- RQuat : クォータニオン
ちゃんと使い物になればいいのですけれどね。
Test::Unitでテストも書いてみています。テストを駆動するメソッド名を"test_..." としておけば、自動的に実行対象にしてくれるのが素敵です。 それにしても、「テストを書く順番が違う」と叱られそうですね。テストコードの書き方にも作法があるのでしょうけれど、便利な assert が使えるだけで私には十分です。
> more mkrf_conf.rb require 'mkrf' Mkrf::Generator.new( 'RMath' )
2行だけ。mkmfでの extconf.rb とほぼ同じです。あとは
> ruby mkrf_conf.rb
これで Rakefile が生成されます。あとは…
> rake -T ← 定義済みタスクを確認 (in D:/RMath) rake RMath.so # Build this extension rake clean # Remove any temporary products. rake clobber # Remove any generated file. rake install # Install this extension > rake cl -nologo -MD -Zi -O2b2xty- -ID:/ruby19/include/ruby-1.9.0 -ID:/ruby19/incl ude/ruby-1.9.0/i386-mswin32_90 -ID:/ruby19/lib/ruby/1.9.0/i386-mswin32_90 -ID:/r uby19/lib/ruby/site_ruby/1.9.0 -I. -c RMathMtx3.c RMathMtx3.c ...
これで OK、だといいのですが、マニフェストファイルの埋め込みには未対応のようです。最後にこうして完了:
> mt -manifest RMath.so.manifest -outputresource:RMath.so;2 Microsoft (R) Manifest Tool version 5.2.3790.2075 Copyright (c) Microsoft Corporation 2005. ...