aboutsummaryrefslogtreecommitdiff
path: root/geometry/box.py
diff options
context:
space:
mode:
Diffstat (limited to 'geometry/box.py')
-rw-r--r--geometry/box.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/geometry/box.py b/geometry/box.py
new file mode 100644
index 0000000..5538819
--- /dev/null
+++ b/geometry/box.py
@@ -0,0 +1,58 @@
+from OpenGL.GL import *
+
+class Box:
+ def __init__(self, x0, x1, y0, y1, z0, z1):
+ self.x0 = x0
+ self.x1 = x1
+ self.y0 = y0
+ self.y1 = y1
+ self.z0 = z0
+ self.z1 = z1
+
+ def indicator(self):
+ return lambda x, y, z: x >= self.x0 and x <= self.x1 and y >= self.y0 and y <= self.y1 and z >= self.z0 and z <= self.z1
+
+ def draw(self):
+ glBegin(GL_POLYGON)
+ glNormal(-1,0,0)
+ glVertex(self.x0, self.y0, self.z0)
+ glVertex(self.x0, self.y1, self.z0)
+ glVertex(self.x0, self.y1, self.z1)
+ glVertex(self.x0, self.y0, self.z1)
+ glEnd()
+ glBegin(GL_POLYGON)
+ glNormal(1,0,0)
+ glVertex(self.x1, self.y0, self.z0)
+ glVertex(self.x1, self.y1, self.z0)
+ glVertex(self.x1, self.y1, self.z1)
+ glVertex(self.x1, self.y0, self.z1)
+ glEnd()
+ glBegin(GL_POLYGON)
+ glNormal(0,0,1)
+ glVertex(self.x0, self.y0, self.z1)
+ glVertex(self.x1, self.y0, self.z1)
+ glVertex(self.x1, self.y1, self.z1)
+ glVertex(self.x0, self.y1, self.z1)
+ glEnd()
+ glBegin(GL_POLYGON)
+ glNormal(0,0,-1)
+ glVertex(self.x0, self.y0, self.z0)
+ glVertex(self.x1, self.y0, self.z0)
+ glVertex(self.x1, self.y1, self.z0)
+ glVertex(self.x0, self.y1, self.z0)
+ glEnd()
+ glBegin(GL_POLYGON)
+ glNormal(0,-1,0)
+ glVertex(self.x0, self.y0, self.z0)
+ glVertex(self.x1, self.y0, self.z0)
+ glVertex(self.x1, self.y0, self.z1)
+ glVertex(self.x0, self.y0, self.z1)
+ glEnd()
+ glBegin(GL_POLYGON)
+ glNormal(0,1,0)
+ glVertex(self.x0,self.y1,self.z0)
+ glVertex(self.x1,self.y1,self.z0)
+ glVertex(self.x1,self.y1,self.z1)
+ glVertex(self.x0,self.y1,self.z1)
+ glEnd()
+