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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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...