Skip to content

Instantly share code, notes, and snippets.

@ThomasParistech
Last active September 27, 2023 22:17
Show Gist options
  • Save ThomasParistech/b9e14aafa6220540cbb58af97050fc69 to your computer and use it in GitHub Desktop.
Save ThomasParistech/b9e14aafa6220540cbb58af97050fc69 to your computer and use it in GitHub Desktop.
void draw_box(const glm::vec3 &scale, const glm::vec3 &color) {
glColor3f(color[0], color[1], color[2]);
glLineWidth(2.0);
glBegin(GL_QUAD_STRIP);
glNormal3f(0, 0, 1); // Face Z
glVertex3f(-scale[0], -scale[1], scale[2]);
glVertex3f(scale[0], -scale[1], scale[2]);
glVertex3f(-scale[0], scale[1], scale[2]);
glVertex3f(scale[0], scale[1], scale[2]);
glNormal3f(0, 1, 0); // Face Y
glVertex3f(-scale[0], scale[1], -scale[2]);
glVertex3f(scale[0], scale[1], -scale[2]);
glNormal3f(0, 0, -1); // Face -Z
glVertex3f(-scale[0], -scale[1], -scale[2]);
glVertex3f(scale[0], -scale[1], -scale[2]);
glNormal3f(0, -1, 0); // Face -Y
glVertex3f(-scale[0], -scale[1], scale[2]);
glVertex3f(scale[0], -scale[1], scale[2]);
glEnd();
glBegin(GL_QUADS);
glNormal3f(1, 0, 0); // Face X
glVertex3f(scale[0], scale[1], scale[2]);
glVertex3f(scale[0], -scale[1], scale[2]);
glVertex3f(scale[0], -scale[1], -scale[2]);
glVertex3f(scale[0], scale[1], -scale[2]);
glEnd();
glBegin(GL_QUADS);
glNormal3f(-1, 0, 0); // Face -X
glVertex3f(-scale[0], scale[1], scale[2]);
glVertex3f(-scale[0], -scale[1], scale[2]);
glVertex3f(-scale[0], -scale[1], -scale[2]);
glVertex3f(-scale[0], scale[1], -scale[2]);
glEnd();
}
void draw_pyramid(const glm::vec3 &scale, const glm::vec3 &color) {
glColor3f(color[0], color[1], color[2]);
glBegin(GL_TRIANGLE_FAN);
glVertex3f(scale[0], 0, 0); // Central Vertex
glNormal3f(1, 1, 1);
glVertex3f(0, 0, scale[2]);
glVertex3f(0, scale[1], 0);
glNormal3f(1, 1, -1);
glVertex3f(0, 0, -scale[2]);
glNormal3f(1, -1, -1);
glVertex3f(0, -scale[1], 0);
glNormal3f(1, -1, 1);
glVertex3f(0, 0, scale[2]);
glEnd();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment