Hey I'm new to the threads, but I thought you guys could help me. I'm trying to build a very basic room in openGL given that I know the 8 points (the corners of the room). I'm a great deal off from being done, but I'm receiving the following error a few time:
error C2664: 'glVertex3f' : cannot convert parameter 1 from 'float (void)' to 'float'
Context does not allow for disambiguation of overloaded function
Here's the code. Thanks!
//Builds a room in openGL from a set of coordinates
#include <GL/gl.h>
#include <GL/glut.h>
#include <iostream.h>
#include <string.h>
class Point {
GLfloat xcoord, ycoord, zcoord;
public:
void setVals (float, float, float);
void buildWall (void);
float giveX (void);
float giveY (void);
float giveZ (void);
};
class Wall {
Point pA, pB, pC, pD;
public:
void setPoints (Point, Point, Point, Point);
void buildWall (void);
};
void Point::setVals (float x, float y, float z){
xcoord = x;
ycoord = y;
zcoord = z;
}
float Point::giveX (void){
return xcoord;
}
float Point::giveY (void){
return ycoord;
}
float Point::giveZ (void){
return zcoord;
}
void Wall::setPoints (Point cornA, Point cornB,
Point cornC, Point cornD){
pA = cornA;
pB = cornB;
pC = cornC;
pD = cornD;
}
void Wall::buildWall (void){
glBegin(GL_QUADS); //begin the shape
glVertex3f(pA.giveX, pA.giveY, pA.giveZ);
glVertex3f(pB.giveX, pB.giveY, pB.giveZ);
glVertex3f(pC.giveX, pC.giveY, pC.giveZ);
glVertex3f(pD.giveX, pD.giveY, pD.giveZ);
glEnd(); //end the shape
}
Point corn0;
Point corn1;
Point corn2;
Point corn3;
Point corn4;
Point corn5;
Point corn6;
Point corn7;
Wall wall0;
Wall wall1;
Wall wall2;
Wall wall3;
Wall wall4;
void display (void) {
glClearColor (0.0,0.0,0.0,1.0);
glClear (GL_COLOR_BUFFER_BIT);
glLoadIdentity();
gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
//back wall
wall1.setPoints(corn0, corn1, corn2, corn3);
wall1.buildWall();
glFlush();
}
//openGL stuff
void reshape (int w, int h) {
glViewport (0, 0, (GLsizei)w, (GLsizei)h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
gluPerspective (60, (GLfloat)w / (GLfloat)h, 1.0, 100.0);
glMatrixMode (GL_MODELVIEW);
}
int main (int argc, char **argv) {
corn0.setVals (-2.0, 2.0, -2.0);
corn1.setVals (2.0, 2.0, -2.0);
corn2.setVals (2.0, -2.0, -2.0);
corn3.setVals (-2.0, -2.0, -2.0);
corn4.setVals (-2.0, 2.0, 2.0);
corn5.setVals (2.0, 2.0, 2.0);
corn6.setVals (2.0, -2.0, 2.0);
corn7.setVals (-2.0, -2.0, 2.0);
glutInit (&argc, argv);
//builds walls
glutInitDisplayMode (GLUT_SINGLE);
glutInitWindowSize (500, 500);
glutInitWindowPosition (100, 100);
glutCreateWindow ("A basic OpenGL Window");
glutDisplayFunc (display);
glutReshapeFunc (reshape);
glutMainLoop ();
return 0;
}