problème de structure et de classe
Bonjour !
J'ai un problème avec le resize d'un vecteur.
lors du resize, utilisé dans la classe, l'objet ne s'affiche plus. Les coordonnées sont bien présentes, j'ai fait des fonctions de retours pour inspecter le tableau.
.hpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
struct Vertex
{
float x, y, z;
};
class Surfaces
{
public://fonction membres allias méthodes
Surfaces();//constructeur
Surfaces(int ID, int nb_points);
~Surfaces();//destructeur
void give_a_name(std::string const &name);//user define
std::string return_a_name();
void build_shape(int nb_points);//build vertex default
int return_nb_points();
int return_array_size();
float return_x_of_a_point(int point);
float return_y_of_a_point(int point);
private://variables membres allias attributs
int m_nb_vert;//number of vertices for the shape
vector<Vertex> m_vertex; //vertex x y z, see struct vertex |
cpp:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
void Surfaces::build_shape(int nb_points)
{
m_nb_vert=nb_points;
m_vertex.resize(nb_points);
for(int i=0;i<m_nb_vert;i++)
{
m_vertex[i].x= -.9+(.4*i);
m_vertex[i].y= -.9+(.4*i);
m_vertex[i].z= 0.0f;
}
} |
Si je le déclares manuellement, l'objet s'affiche...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
m_vertex[0].x= -0.5f;
m_vertex[0].y= 0.5f;
m_vertex[0].z= 0.0f;
m_vertex[1].x= 0.5f;
m_vertex[1].y= 0.5f;
m_vertex[1].z= 0.0f;
m_vertex[2].x= 0.5f;
m_vertex[2].y= -0.5f;
m_vertex[2].z= 0.0f;
m_vertex[3].x= -0.5f;
m_vertex[3].y= -0.5f;
m_vertex[3].z= 0.0f; |
Celà me donne l'impression que le resize réinitialise en int ou en bool mon vecteur.
bizarre, bizarre...