4 OpenGL.ERROR_CHECKING = False
\r
5 from OpenGL.GLU import *
\r
6 from OpenGL.GL import *
\r
9 print "Failed to find PyOpenGL: http://pyopengl.sourceforge.net/"
\r
10 hasOpenGLlibs = False
\r
12 def InitGL(window, view3D, zoom):
\r
13 # set viewing projection
\r
14 glMatrixMode(GL_MODELVIEW)
\r
16 size = window.GetSize()
\r
17 glViewport(0,0, size.GetWidth(), size.GetHeight())
\r
19 glLightfv(GL_LIGHT0, GL_POSITION, [1.0, 1.0, 1.0, 0.0])
\r
21 glEnable(GL_LIGHTING)
\r
23 glEnable(GL_DEPTH_TEST)
\r
24 glEnable(GL_CULL_FACE)
\r
27 glClearColor(0.0, 0.0, 0.0, 1.0)
\r
31 glMatrixMode(GL_PROJECTION)
\r
33 aspect = float(size.GetWidth()) / float(size.GetHeight())
\r
35 gluPerspective(90.0, aspect, 1.0, 1000.0)
\r
37 glOrtho(-aspect, aspect, -1, 1, -1000.0, 1000.0)
\r
39 glMatrixMode(GL_MODELVIEW)
\r
41 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT)
\r
43 def DrawMachine(machineSize):
\r
46 glDisable(GL_LIGHTING)
\r
47 glBegin(GL_LINE_LOOP)
\r
49 glVertex3f(machineSize.x, 0, 0)
\r
50 glVertex3f(machineSize.x, machineSize.y, 0)
\r
51 glVertex3f(0, machineSize.y, 0)
\r
55 for i in xrange(0, int(machineSize.x), 10):
\r
57 glVertex3f(i, machineSize.y, 0)
\r
58 for i in xrange(0, int(machineSize.y), 10):
\r
60 glVertex3f(machineSize.x, i, 0)
\r
63 glBegin(GL_LINE_LOOP)
\r
64 glVertex3f(0, 0, machineSize.z)
\r
65 glVertex3f(machineSize.x, 0, machineSize.z)
\r
66 glVertex3f(machineSize.x, machineSize.y, machineSize.z)
\r
67 glVertex3f(0, machineSize.y, machineSize.z)
\r
71 glVertex3f(0, 0, machineSize.z)
\r
72 glVertex3f(machineSize.x, 0, 0)
\r
73 glVertex3f(machineSize.x, 0, machineSize.z)
\r
74 glVertex3f(machineSize.x, machineSize.y, 0)
\r
75 glVertex3f(machineSize.x, machineSize.y, machineSize.z)
\r
76 glVertex3f(0, machineSize.y, 0)
\r
77 glVertex3f(0, machineSize.y, machineSize.z)
\r
80 def DrawBox(vMin, vMax):
\r
81 glBegin(GL_LINE_LOOP)
\r
82 glVertex3f(vMin.x, vMin.y, vMin.z)
\r
83 glVertex3f(vMax.x, vMin.y, vMin.z)
\r
84 glVertex3f(vMax.x, vMax.y, vMin.z)
\r
85 glVertex3f(vMin.x, vMax.y, vMin.z)
\r
88 glBegin(GL_LINE_LOOP)
\r
89 glVertex3f(vMin.x, vMin.y, vMax.z)
\r
90 glVertex3f(vMax.x, vMin.y, vMax.z)
\r
91 glVertex3f(vMax.x, vMax.y, vMax.z)
\r
92 glVertex3f(vMin.x, vMax.y, vMax.z)
\r
95 glVertex3f(vMin.x, vMin.y, vMin.z)
\r
96 glVertex3f(vMin.x, vMin.y, vMax.z)
\r
97 glVertex3f(vMax.x, vMin.y, vMin.z)
\r
98 glVertex3f(vMax.x, vMin.y, vMax.z)
\r
99 glVertex3f(vMax.x, vMax.y, vMin.z)
\r
100 glVertex3f(vMax.x, vMax.y, vMax.z)
\r
101 glVertex3f(vMin.x, vMax.y, vMin.z)
\r
102 glVertex3f(vMin.x, vMax.y, vMax.z)
\r
106 for face in mesh.faces:
\r
107 glBegin(GL_TRIANGLES)
\r
111 glNormal3f(face.normal.x, face.normal.y, face.normal.z)
\r
112 glVertex3f(v1.x, v1.y, v1.z)
\r
113 glVertex3f(v2.x, v2.y, v2.z)
\r
114 glVertex3f(v3.x, v3.y, v3.z)
\r
115 glNormal3f(-face.normal.x, -face.normal.y, -face.normal.z)
\r
116 glVertex3f(v1.x, v1.y, v1.z)
\r
117 glVertex3f(v3.x, v3.y, v3.z)
\r
118 glVertex3f(v2.x, v2.y, v2.z)
\r