sunday-labの日本語訳版です。英語版のXOOPS Cube関連記事を翻訳作業中...

2008年9月3日水曜日

Shoggoth から SceneNode::getWorldPosition() と getWorldOrientation() がなくなった

リリース候補版として検証が続いている Ogre 1.6.0 RC1 ですが、 SceneNode クラスからワールド空間における座標と姿勢を取得する getWorldPosition() と getWorldOrientation() が取り除かれ、 1.6.0 に乗り換えた開発者がコンパイルエラーを起こすというトピックが立っています。

'getWorldOrientation' : is not a member of 'Ogre::SceneNode'

Changelog によると Renderable インターフェイスからこの2つのメソッドが削除された(Renderable はエンジン側ではフルトランスフォームマトリクスでしかやりとりしていなかった)のに併せて SceneNode からも削ったとのこと。_getDerivedPosition() と _getDerivedOrientation() を代わりに使うようにということです。

1.4 系はまったく追えていなかったので知らなかったのですが元々 Eihort で deprecated 扱いになっていたそうです。 getWorld* は _getDerived* の完全なエイリアスということで、使用にあたり問題はありません。ただ、 SceneNode を NULL ノードとみなして計算結果を抜き取る用途を多用するスタイルの自分にとっては getWorld* メソッドがなくなったことで、別のやり方をとれと言われてるようで、ちょっと気になるところではあります。

専用のノードクラスを作成する? タグポイントだけのボーンをアタッチしてそこから情報を取得する? ……パフォーマンス的にはおとなしく _getDerived* ですね。(^^;

とはいえ getWorld* はこれまでも _getDerived* が畳み込まれていたはずなので、自前で付け足すだけでも大丈夫です。 prebuild SDK でも .h の変更だけで済みます。

0 件のコメント: