diff --git a/src/main.rs b/src/main.rs index 7e930c3..026f803 100644 --- a/src/main.rs +++ b/src/main.rs @@ -163,6 +163,9 @@ fn main() { glEnd(); + glTranslatef(0.0, 0.0, -3.); + slice(tex_exterior, tex_top, tex_interior); + //xrot += 56.0; yrot += 44.0; //zrot += 72.0; @@ -199,3 +202,72 @@ fn main() { println!("Bye!"); } + +unsafe fn slice(tex_exterior: u32, tex_top: u32, tex_interior: u32) { + // left face + glBindTexture(GL_TEXTURE_2D, tex_interior); + glBegin(GL_QUADS); + glColor3f(1.0, 1.0, 1.0); + glTexCoord2f(1.0, 0.0); + glVertex3f(0., -1.0, 1.0); + glTexCoord2f(0.0, 0.0); + glVertex3f(1.0, -1.0, 1.5); + glTexCoord2f(0.0, 1.0); + glVertex3f(1.0, 1.0, 1.5); + glTexCoord2f(1.0, 1.0); + glVertex3f(0.0, 1.0, 1.0); + glEnd(); + + // right face + glBindTexture(GL_TEXTURE_2D, tex_interior); + glBegin(GL_QUADS); + glColor3f(1.0, 1.0, 1.0); + glTexCoord2f(1.0, 0.0); + glVertex3f(0., -1.0, 1.0); + glTexCoord2f(0.0, 0.0); + glVertex3f(1.0, -1.0, 0.5); + glTexCoord2f(0.0, 1.0); + glVertex3f(1.0, 1.0, 0.5); + glTexCoord2f(1.0, 1.0); + glVertex3f(0.0, 1.0, 1.0); + glEnd(); + + // top face + glBindTexture(GL_TEXTURE_2D, tex_top); + glBegin(GL_TRIANGLES); + glColor3f(1.0, 1.0, 1.0); + glTexCoord2f(1.0, 0.0); + glVertex3f(1.0, 1.0, 0.5); + glTexCoord2f(1.0, 1.0); + glVertex3f(0.0, 1.0, 1.0); + glTexCoord2f(0.0, 0.0); + glVertex3f(1.0, 1.0, 1.5); + glEnd(); + + // bottom face + glBindTexture(GL_TEXTURE_2D, tex_exterior); + glBegin(GL_TRIANGLES); + glColor3f(1.0, 1.0, 1.0); + glTexCoord2f(1.0, 0.0); + glVertex3f(1.0, -1.0, 0.5); + glTexCoord2f(1.0, 1.0); + glVertex3f(0.0, -1.0, 1.0); + glTexCoord2f(0.0, 0.0); + glVertex3f(1.0, -1.0, 1.5); + glEnd(); + + // outer face + glBindTexture(GL_TEXTURE_2D, tex_exterior); + glBegin(GL_QUADS); + glColor3f(1.0, 1.0, 1.0); + + glTexCoord2f(1.0, 0.0); + glVertex3f(1.0, 1.0, 0.5); + glTexCoord2f(0.0, 0.0); + glVertex3f(1.0, 1.0, 1.5); + glTexCoord2f(0.0, 1.0); + glVertex3f(1.0, -1.0, 1.5); + glTexCoord2f(1.0, 1.0); + glVertex3f(1.0, -1.0, 0.5); + glEnd(); +}