-Ivan-
31-08-2013, 11:11
Ho questa classe contenuta in un header:
typedef struct CubeCoords
{
Vector3D currentTraslation; //traslation of the cube in OBJECT SPACE
Vector3D currentRotation; //rotation of the cube in OBJECT SPACE
//vertexes
std::vector<Vector3D> verticesOBS; //vertices coords in OBJECT SPACE
std::vector<Vector3D> vertices; //vertices coords in WORLD SPACE
Vector3D center; //the center of the cube
};
class Cube_Base
{
protected:
const float dimension;
private:
CubeCoords coords;
... ometto il resto perchè non è rilevante
};
Ora, quello che voglio è inizializzare verticesOBS e vertices (dentro alla struct CubeCoords) con 8 elementi di tipo Vector3D.
Lo ho fatto in questo modo (stupido) dentro al costruttore della classe Cube_Base e vorrei sapere qual'è la forma contratta per farlo:
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
Nella documentazione online viene riportato come esempio il costruttore:
std::vector<int> second (4,100); // four ints with value 100
Ma non capisco come usarlo nel mio caso.
typedef struct CubeCoords
{
Vector3D currentTraslation; //traslation of the cube in OBJECT SPACE
Vector3D currentRotation; //rotation of the cube in OBJECT SPACE
//vertexes
std::vector<Vector3D> verticesOBS; //vertices coords in OBJECT SPACE
std::vector<Vector3D> vertices; //vertices coords in WORLD SPACE
Vector3D center; //the center of the cube
};
class Cube_Base
{
protected:
const float dimension;
private:
CubeCoords coords;
... ometto il resto perchè non è rilevante
};
Ora, quello che voglio è inizializzare verticesOBS e vertices (dentro alla struct CubeCoords) con 8 elementi di tipo Vector3D.
Lo ho fatto in questo modo (stupido) dentro al costruttore della classe Cube_Base e vorrei sapere qual'è la forma contratta per farlo:
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
coords.verticesOBS.push_back(new Vector3D(0, 0, 0));
Nella documentazione online viene riportato come esempio il costruttore:
std::vector<int> second (4,100); // four ints with value 100
Ma non capisco come usarlo nel mio caso.