2017-03-26 3 views
0

나는이 코드 조각이있는 경우 : 내가 변수 'A'의 값을 디코딩 할 수있는 방법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; 

.

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; 
} 

someMatrix에 대한 어떤 인쇄 것입니다 :

1 0 0 0 
0 1 0 0 
0 0 1 0 
0 0 0 1