boost::numeric::ublas matrix -> opengl
Code:
1 2 3 4 5 6
|
using namespace boost::numeric::ublas;
m_Matrice = matrix<float>(4,4);
....
glMultMatrixf( matrix.data. ?? ); |
j'amerais récupérer les données sous forme d'un tableau une dimention [16] en une passe voir quatre maxi
Merci d'avance (boost je dirais que c'est de la masturbation intellectuelle , c'est inbuvable leur code , sauf une fois qu'on a saisie le truc ça va tout seul , mais au premier regard c'est du chinois)
Documention ublas
Documention du type matrix
Documentation du type du data des matrices
EDIT:
Je viens d'essayer ça
Code:
1 2 3
|
unsigned tmp = 0;
glMultMatrixf(& ((GLfloat)m_Matrice.data[tmp]) ); |
et j'obtient cette erreur:
error: invalid types `<unknown type>[unsigned int]' for array subscript
Mais bon je redoute que ça ne soit pas contigu si c'est le cas "tchao boost , tu sert à rien dans le temps réel"...dsl je commence à m'énerver , une simple matrice devenir aussi complexe c'est du n'importe quoi.
EDIT:
Voila où c'est stocker
http://www.boost.org/libs/numeric/ub...ge_concept.htm
il est possible d'envoyer un tableau , l'invers on peut pas si je comprend bien...
EDIT:
Voici à parament la solution ça compile , reste à voir si ça prend toutes les composantes
Code:
1 2 3 4
|
m_Matrice = matrix<float,row_major,std::vector<float> >(4,4);
&m_Matrice.data()[0] |
ça marche pas, comme je le pensais, les crochets sont des opérateurs surdéfinis qui renvoi un élément par copie.
EDIT:
http://c.developpez.com/faq/cpp/inde...teneurs_avec_c
je comprend pas pourquoi ça marche pas alors:(
EDIT : En fait ça fonctionne bien , c'est juste ma matrice qui à l'initialisation m_Matrice.assign(m_Identite); mais c'est comme si j'avais fait ça avec une zero_matrix. bizard. (je mettrais résolu quand je serais sur de mon cou)
EDIT :
m_Matrice += m_Identite;
ça fait planter direct l'application avant même que la classe, qui va implémenter ça , ne soit crée. (j'enlève cette ligne et l'appli marche correctement :p enfin ça me dérenge pas, c'était juste un test car l'assign ne fonctionne pas entre une identity_matrix et une matrix (m_Matrice.assign(m_Identite) )