2017-03-26 8 views
0

私はこのスニペットコードがある場合:私は、変数「」の値をデコードすることができますどのようにglm :: value_ptr()から返された値を格納する変数の値をデコードする方法は?

glm::mat4 someMatrix(1.0f); 

GLfloat * a = glm::value_ptr(someMatrix); 

。私は値がsomeMatrixであることを知っていますが、好奇心のためのjusは可能です。私は変数aをデコードすることによって同じMatrix値を得ることができますか?私はこれで試しました:

std::cout<<"value: "<< a <<"\n"; // It throws me the address : 0x7fff609e91f0 
std::cout<<"value: "<< *a <<"\n"; // It gives me this value: 8.88612e-39 

しかし、私は行列とその値を取得する方法がわかりません。この質問は無意味かもしれません。明らかに私はすでに行列の価値を知っていますが、好奇心のために解読が可能かどうかを知りたいからです。とにかく。前もって感謝します。

+0

を '* A'は本当にこの場合の出力 '1'しかし、私は、これは' A'はに対応していない別の場所からであると仮定すべきです単位行列。 – Darklighter

答えて

1

「デコードする」とは、マトリックスの個々の要素を読み取ることを指していると仮定しています。あなたがglm::value_ptrの結果を使用して主張する場合

glm::mat4 someMatrix(1.0f); 
std::cout << glm::to_string(someMatrix) << std::endl; 

:それはあなたが行うことができ、印刷のためになら

someMatrixのために印刷し
glm::mat4 someMatrix(1.0f); 
GLfloat *a = glm::value_ptr(someMatrix); 

for (int j = 0; j < 4; ++j) { 
    for (int i = 0; i < 4; ++i) { 
     std::cout << a[j * 4 + i] << " "; 
    } 
    std::cout << std::endl; 
} 

1 0 0 0 
0 1 0 0 
0 0 1 0 
0 0 0 1 
関連する問題