Hola profesorX, gracias por contestar. Aquí tienes las clases:
Vertice.h
#include <GL/gl.h>
#include <GL/glut.h>
class Vertex {
private:
GLfloat x, y, z;
public:
Vertex();
Vertex(GLfloat, GLfloat, GLfloat);
GLfloat getX();
GLfloat getY();
GLfloat getZ();
void setX(GLfloat);
void setY(GLfloat);
void setZ(GLfloat);
};
Vertice.cpp
#include "vertice.h"
Vertex::Vertex(){
}
Vertex::Vertex(GLfloat x, GLfloat y, GLfloat z){
this->x = x;
this->y = y;
this->z = z;
}
GLfloat Vertex::getX(){
return this->x;
}
GLfloat Vertex::getY(){
return this->y;
}
GLfloat Vertex::getZ(){
return this->z;
}
void Vertex::setX(GLfloat x){
this->x = x;
}
void Vertex::setY(GLfloat y){
this->y = y;
}
void Vertex::setZ(GLfloat z){
this->z = z;
}
polygon.h
#include "vertice.h"
class Polygon {
private:
Vertex v[3]; //Vector que contiene los tres vertices del poligono
public:
Polygon(); //Constructores
Polygon(Vertex*);
Vertex getVer(int);
};
polygon.cpp
#include "polygon.h"
Polygon::Polygon(){
for(int i = 0 ; i < 3 ; i++){
this->v.setX(0.0);
this->v.setY(0.0);
this->v.setZ(0.0);
}
}
Polygon::Polygon(Vertex *v){
this->v[0] = v[0];
this->v[1] = v[1];
this->v[2] = v[2];
}
Vertex Polygon::getVer(int n){
return this->v[n];
}
main.cpp
#include <iostream>
#include "polygon.h"
using namespace std;
int main(){
Polygon p;
p.getVer(0).setX(1.0);
p.getVer(0).setY(1.0);
p.getVer(0).setZ(1.0);
cout<< "Valor del vertice 0: (" << p.getVer(0).getX() << "," << p.getVer(0).getY() << "," << p.getVer(0).getZ()<<")."<<endl;
return 0;
}
Al compilar main, devuelve lo siguiente:
Valor del vertice 0: (0,0,0).
Así que no se han modificado las coordenadas... Alguna idea sobre que es lo que pasa?
Muchas gracias.