I am making a 3d walkaround in OpenGL...and some of the classes are not working right...
Code:
struct FACE {
GLuint *myTexture;
double myX[4], myY[4], myZ[4];
double myRGB[3];
bool doesExist;
FACE ( )
{
for(int x = 0; x < 4; x++)
{
myX[x] = 0;
myY[x] = 0;
myZ[x] = 0;
if(x < 3) myRGB[x] = 0;
}
myTexture = NULL;
doesExist = true;
}
void DrawFace ( void )
{
glNormal3f( 0.0f, 0.0f, 1.0f); // Normal Pointing Towards Viewer
glTexCoord2f(myX[0], myY[0]); glVertex3f(myX[0], myY[0], myZ[0]); // Point 1
glTexCoord2f(myX[1], myY[1]); glVertex3f(myX[1], myY[1], myZ[1]); // Point 2
glTexCoord2f(myX[2], myY[2]); glVertex3f(myX[2], myY[2], myZ[2]); // Point 3
glTexCoord2f(myX[3], myY[3]); glVertex3f(myX[3], myY[3], myZ[3]); // Point 4
}
};
struct BLOCK_DTP
{
FACE *myFace[6];
ifstream myLoad;
BLOCK_DTP ( )
{
for(int x = 0; x < 6; x++)
{
myFace[x] = new FACE;
}
}
void LoadFaces ( char *filename )
{
myLoad.open(filename);
for(int x = 0; !myLoad.eof(); x++)
{
myLoad >> myFace[x]->myX[0]
>> myFace[x]->myX[1]
>> myFace[x]->myX[2]
>> myFace[x]->myX[3];
myLoad >> myFace[x]->myY[0]
>> myFace[x]->myY[1]
>> myFace[x]->myY[2]
>> myFace[x]->myY[3];
myLoad >> myFace[x]->myZ[0]
>> myFace[x]->myZ[1]
>> myFace[x]->myZ[2]
>> myFace[x]->myZ[3];
}
}
void DisplayFaces ( void )
{
for(int x = 0; x < 6; x++)
{
if(myFace[x]->doesExist)
{
myFace[x]->DrawFace();
}
}
}
};
Assume that all texture loading and glBegin and glEnd happen OUTSIDE of any and all of the drawing functions. For some reason it is only drawing 3 faces of the cube that it is supposed to draw, and it is not even drawing those correctly. It is loading the texture 4 times onto 1 face, and then the other 2 faces are an odd distortion of the texture.