in jsuarez/tools/gl.py [0:0]
def draw_half(self, mirror):
# The plane equations cutting corners of cube
eqn = [-1.0, 0.0, 0.0, 0.0]
eqn1 = [1.0, 1.0, 1.0, 1.25]
eqn2 = [1.0, -1.0, 1.0, 1.25]
eqn3 = [1.0, 1.0, -1.0, 1.25]
eqn4 = [1.0, -1.0, -1.0, 1.25]
eqn5 = [-1.0, 1.0, 1.0, 1.25]
# Set the color to white
glColor3f(1.0, 1.0, 1.0)
# Reset the matrix
glLoadIdentity()
# Set the camera
gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0)
if mirror:
glScalef(-self.scale, self.scale, self.scale)
glRotatef(-self.rotate_y, 0.0, 1.0, 0.0)
else:
glScalef(self.scale, self.scale, self.scale)
glRotatef(self.rotate_y, 0.0, 1.0, 0.0)
glRotatef(self.rotate_x, 1.0, 0.0, 0.0)
# Draw solid cube
glutSolidCube(1.0)
# Draw a red wire cube to highlight the background
glColor3f(1.0, 0.0, 0.0)
glutWireCube(1.0)
# Clip the corners of the cube with these equations
glClipPlane(GL_CLIP_PLANE0, eqn1)
glEnable(GL_CLIP_PLANE0)
glClipPlane(GL_CLIP_PLANE1, eqn2)
glEnable(GL_CLIP_PLANE1)
glClipPlane(GL_CLIP_PLANE2, eqn3)
glEnable(GL_CLIP_PLANE2)
glClipPlane(GL_CLIP_PLANE3, eqn4)
glEnable(GL_CLIP_PLANE3)
glClipPlane(GL_CLIP_PLANE4, eqn5)
glEnable(GL_CLIP_PLANE4)
# Cut the cube into half
glClipPlane(GL_CLIP_PLANE5, eqn)
glEnable(GL_CLIP_PLANE5)
glFlush()