たとえば、QMatrix4x4 と Ogre::Matrix4 があります。
QMatrix から Ogre::Matrix4 への変換は少し面倒です。確実な解決策があるかどうか知りたいですか?
現在、各要素を for ループにコピーしているだけですが、何か提案はありますか?
たとえば、QMatrix4x4 と Ogre::Matrix4 があります。
QMatrix から Ogre::Matrix4 への変換は少し面倒です。確実な解決策があるかどうか知りたいですか?
現在、各要素を for ループにコピーしているだけですが、何か提案はありますか?
C++11 では、両方の型がlayout-compatibleである場合、単純reinterpret_cast
にそれらの間を移動できます。例:
#include <cassert>
struct X{
int a, b, c, d;
};
struct Y{
int arr[4];
};
int main(){
X x{0, 1, 2, 3};
Y& y = reinterpret_cast<Y&>(x);
assert(y.arr[2] == 2);
}
(例が正しかったといいのですが、 Ideone に住んでいます。)
このアプローチの問題は、実装の内部を掘り下げる必要があることです。これは、異なるリリースでも安定していない可能性があります。そのため、単純にコピーすることが最善の方法である可能性があります (ほとんどのポータブル/既知/堅実な方法のように)。
ただし、問題の型がどのインターフェイスを提供するのか個人的にはわかりません.Ogreは、直接操作するのではMatrix4
なく、(2D)配列でも操作するアルゴリズムを提供する可能性があります。API ドキュメントを確認してください。