tech2040
October 15th, 2004, 02:33 PM
I am currently creating a program in OpenGL that is able to display freight packages of varying dimensions within a given area.
However i am having trouble placing the glBegin(GL_QUADS); in the correct locations. so far all of the boxes are being drawn "on top" of each other
this is the code i am currently using:
float x_Pos[] = {0,70, 0, 0,70, 0, 0, 0, 0, 0, 0, 0, 0, 0};
float y_Pos[] = {0, 0, 0, 0, 0, 0,45,45,45,45,75,75,75,75};
float z_Pos[] = {0, 0,24,48,48,72, 0,24,48,72,0,24,48, 72};
float x_Axisl[] = {70,14,70,70,14,70,70,70,70,70,70,70,70,70};
float y_Axisl[] = {45,40,45,45,40,45,30,30,30,29,29,29,29,29};
float z_Axisl[] = {24,48,24,24,48,24,24,24,24,24,24,24,24,24};
for (int i = 0; i <=13; i++)
{
x_Axis = x_Axisl[i]/100;y_Axis = y_Axisl[i]/100;z_Axis = z_Axisl[i]/100;
x_Pos[i]/=100;y_Pos[i]/=100;z_Pos[i]/=100;
m_xScaling = x_Axisl[i]*2; m_yScaling = y_Axisl[i]*2; m_zScaling = z_Axisl[i]*2;
glTranslatef(0.0f,-y_Pos[i],0.0f);
DefineCube();
}
void COpenGLObject::DefineCube()
{
glBegin(GL_QUADS);
// Front Face
glNormal3f( 0.0f, 0.0f, 1.0f);
glTexCoord2f(0.0f, 0.0f); glVertex3f(-x_Axis, -y_Axis, z_Axis);
glTexCoord2f(1.0f, 0.0f); glVertex3f( x_Axis, -y_Axis, z_Axis);
glTexCoord2f(1.0f, 1.0f); glVertex3f( x_Axis, y_Axis, z_Axis);
glTexCoord2f(0.0f, 1.0f); glVertex3f(-x_Axis, y_Axis, z_Axis);
// Back Face
glNormal3f( 0.0f, 0.0f,-1.0f);
glTexCoord2f(1.0f, 0.0f); glVertex3f(-x_Axis, -y_Axis, -z_Axis);
glTexCoord2f(1.0f, 1.0f); glVertex3f(-x_Axis, y_Axis, -z_Axis);
glTexCoord2f(0.0f, 1.0f); glVertex3f( x_Axis, y_Axis, -z_Axis);
glTexCoord2f(0.0f, 0.0f); glVertex3f( x_Axis, -y_Axis, -z_Axis);
// Top Face
glNormal3f( 0.0f, 1.0f, 1.0f);
glTexCoord2f(0.0f, 1.0f); glVertex3f(-x_Axis, y_Axis, -z_Axis);
glTexCoord2f(0.0f, 0.0f); glVertex3f(-x_Axis, y_Axis, z_Axis);
glTexCoord2f(1.0f, 0.0f); glVertex3f( x_Axis, y_Axis, z_Axis);
glTexCoord2f(1.0f, 1.0f); glVertex3f( x_Axis, y_Axis, -z_Axis);
// Bottom Face
glNormal3f( 0.0f,-1.0f, 1.0f);
glTexCoord2f(1.0f, 1.0f); glVertex3f(-x_Axis, -y_Axis, -z_Axis);
glTexCoord2f(0.0f, 1.0f); glVertex3f( x_Axis, -y_Axis, -z_Axis);
glTexCoord2f(0.0f, 0.0f); glVertex3f( x_Axis, -y_Axis, z_Axis);
glTexCoord2f(1.0f, 0.0f); glVertex3f(-x_Axis, -y_Axis, z_Axis);
// Right face
glNormal3f( 1.0f, 0.0f, 1.0f);
glTexCoord2f(1.0f, 0.0f); glVertex3f( x_Axis, -y_Axis, -z_Axis);
glTexCoord2f(1.0f, 1.0f); glVertex3f( x_Axis, y_Axis, -z_Axis);
glTexCoord2f(0.0f, 1.0f); glVertex3f( x_Axis, y_Axis, z_Axis);
glTexCoord2f(0.0f, 0.0f); glVertex3f( x_Axis, -y_Axis, z_Axis);
// Left Face
glNormal3f(-1.0f, 0.0f, 1.0f);
glTexCoord2f(0.0f, 0.0f); glVertex3f(-x_Axis, -y_Axis, -z_Axis);
glTexCoord2f(1.0f, 0.0f); glVertex3f(-x_Axis, -y_Axis, z_Axis);
glTexCoord2f(1.0f, 1.0f); glVertex3f(-x_Axis, y_Axis, z_Axis);
glTexCoord2f(0.0f, 1.0f); glVertex3f(-x_Axis, y_Axis, -z_Axis);
glEnd();
}
PLEASE TELL ME WHAT I AM DOING WRONG
However i am having trouble placing the glBegin(GL_QUADS); in the correct locations. so far all of the boxes are being drawn "on top" of each other
this is the code i am currently using:
float x_Pos[] = {0,70, 0, 0,70, 0, 0, 0, 0, 0, 0, 0, 0, 0};
float y_Pos[] = {0, 0, 0, 0, 0, 0,45,45,45,45,75,75,75,75};
float z_Pos[] = {0, 0,24,48,48,72, 0,24,48,72,0,24,48, 72};
float x_Axisl[] = {70,14,70,70,14,70,70,70,70,70,70,70,70,70};
float y_Axisl[] = {45,40,45,45,40,45,30,30,30,29,29,29,29,29};
float z_Axisl[] = {24,48,24,24,48,24,24,24,24,24,24,24,24,24};
for (int i = 0; i <=13; i++)
{
x_Axis = x_Axisl[i]/100;y_Axis = y_Axisl[i]/100;z_Axis = z_Axisl[i]/100;
x_Pos[i]/=100;y_Pos[i]/=100;z_Pos[i]/=100;
m_xScaling = x_Axisl[i]*2; m_yScaling = y_Axisl[i]*2; m_zScaling = z_Axisl[i]*2;
glTranslatef(0.0f,-y_Pos[i],0.0f);
DefineCube();
}
void COpenGLObject::DefineCube()
{
glBegin(GL_QUADS);
// Front Face
glNormal3f( 0.0f, 0.0f, 1.0f);
glTexCoord2f(0.0f, 0.0f); glVertex3f(-x_Axis, -y_Axis, z_Axis);
glTexCoord2f(1.0f, 0.0f); glVertex3f( x_Axis, -y_Axis, z_Axis);
glTexCoord2f(1.0f, 1.0f); glVertex3f( x_Axis, y_Axis, z_Axis);
glTexCoord2f(0.0f, 1.0f); glVertex3f(-x_Axis, y_Axis, z_Axis);
// Back Face
glNormal3f( 0.0f, 0.0f,-1.0f);
glTexCoord2f(1.0f, 0.0f); glVertex3f(-x_Axis, -y_Axis, -z_Axis);
glTexCoord2f(1.0f, 1.0f); glVertex3f(-x_Axis, y_Axis, -z_Axis);
glTexCoord2f(0.0f, 1.0f); glVertex3f( x_Axis, y_Axis, -z_Axis);
glTexCoord2f(0.0f, 0.0f); glVertex3f( x_Axis, -y_Axis, -z_Axis);
// Top Face
glNormal3f( 0.0f, 1.0f, 1.0f);
glTexCoord2f(0.0f, 1.0f); glVertex3f(-x_Axis, y_Axis, -z_Axis);
glTexCoord2f(0.0f, 0.0f); glVertex3f(-x_Axis, y_Axis, z_Axis);
glTexCoord2f(1.0f, 0.0f); glVertex3f( x_Axis, y_Axis, z_Axis);
glTexCoord2f(1.0f, 1.0f); glVertex3f( x_Axis, y_Axis, -z_Axis);
// Bottom Face
glNormal3f( 0.0f,-1.0f, 1.0f);
glTexCoord2f(1.0f, 1.0f); glVertex3f(-x_Axis, -y_Axis, -z_Axis);
glTexCoord2f(0.0f, 1.0f); glVertex3f( x_Axis, -y_Axis, -z_Axis);
glTexCoord2f(0.0f, 0.0f); glVertex3f( x_Axis, -y_Axis, z_Axis);
glTexCoord2f(1.0f, 0.0f); glVertex3f(-x_Axis, -y_Axis, z_Axis);
// Right face
glNormal3f( 1.0f, 0.0f, 1.0f);
glTexCoord2f(1.0f, 0.0f); glVertex3f( x_Axis, -y_Axis, -z_Axis);
glTexCoord2f(1.0f, 1.0f); glVertex3f( x_Axis, y_Axis, -z_Axis);
glTexCoord2f(0.0f, 1.0f); glVertex3f( x_Axis, y_Axis, z_Axis);
glTexCoord2f(0.0f, 0.0f); glVertex3f( x_Axis, -y_Axis, z_Axis);
// Left Face
glNormal3f(-1.0f, 0.0f, 1.0f);
glTexCoord2f(0.0f, 0.0f); glVertex3f(-x_Axis, -y_Axis, -z_Axis);
glTexCoord2f(1.0f, 0.0f); glVertex3f(-x_Axis, -y_Axis, z_Axis);
glTexCoord2f(1.0f, 1.0f); glVertex3f(-x_Axis, y_Axis, z_Axis);
glTexCoord2f(0.0f, 1.0f); glVertex3f(-x_Axis, y_Axis, -z_Axis);
glEnd();
}
PLEASE TELL ME WHAT I AM DOING WRONG