J'ai commencé à programmer un moteur 3D et là j'en suis à l'affichage d'un mesh.
Mon mesh est défini comme ça:
Code :
- class CVector
- {
- float m_Vector[3];
- public:
- //Plein de méthodes
- };
- class CMesh
- {
- CVector *m_Vertices; //Tableau de sommets
- unsigned int *m_VerticeID; //Liste des triangles
- public:
- Draw();
- };
|
Maintenant, dans ma méthode Draw(), j'aimerai utilisé les VertexArray d'OpenGL donc il me faut un tableau continu dans la mémoire de floats représentant les coordonnées des sommets. Or, je stocke mes sommets comme des objets CVector et non comme des tableaux de floats...
Sachant que je veux garder, dans la classe CMesh, les sommets comme des objets CVector (pour pouvoir utiliser toutes les méthodes de CVector dessus), comment je peux faire pour obtenir ce tableau continu de float à partir de mon tableau de CVector??
J'ai pensé faire un cast bourrin vu que le seul attribut de CVector c'est le vecteur stocké dans un tableau de float, mais je sais même pas si ça marche et puis c'est quand même un peu crade
Ou alors, j'ai pensé, à chaque frame, allouer un tableau de floats et recopier les valeurs de chaque sommets dedans mais niveau performance, ca doit pas être ça...
Message édité par _momone_ le 11-12-2002 à 17:40:36