glVertex3f(0, machineSize.y, machineSize.z)\r
glEnd()\r
\r
+ glPushMatrix()\r
+ glTranslate(-5,-5,0)\r
+ glLineWidth(2)\r
+ glColor3f(0.5,0,0)\r
+ glBegin(GL_LINES)\r
+ glVertex3f(0,0,0)\r
+ glVertex3f(20,0,0)\r
+ glEnd()\r
+ glColor3f(0,0.5,0)\r
+ glBegin(GL_LINES)\r
+ glVertex3f(0,0,0)\r
+ glVertex3f(0,20,0)\r
+ glEnd()\r
+ glColor3f(0,0,0.5)\r
+ glBegin(GL_LINES)\r
+ glVertex3f(0,0,0)\r
+ glVertex3f(0,0,20)\r
+ glEnd()\r
+\r
+ glDisable(GL_DEPTH_TEST)\r
+ #X\r
+ glColor3f(1,0,0)\r
+ glPushMatrix()\r
+ glTranslate(23,0,0)\r
+ noZ = ResetMatrixRotationAndScale()\r
+ glBegin(GL_LINES)\r
+ glVertex3f(-0.8,1,0)\r
+ glVertex3f(0.8,-1,0)\r
+ glVertex3f(0.8,1,0)\r
+ glVertex3f(-0.8,-1,0)\r
+ glEnd()\r
+ glPopMatrix()\r
+\r
+ #Y\r
+ glColor3f(0,1,0)\r
+ glPushMatrix()\r
+ glTranslate(0,23,0)\r
+ ResetMatrixRotationAndScale()\r
+ glBegin(GL_LINES)\r
+ glVertex3f(-0.8, 1,0)\r
+ glVertex3f( 0.0, 0,0)\r
+ glVertex3f( 0.8, 1,0)\r
+ glVertex3f(-0.8,-1,0)\r
+ glEnd()\r
+ glPopMatrix()\r
+\r
+ #Z\r
+ if not noZ:\r
+ glColor3f(0,0,1)\r
+ glPushMatrix()\r
+ glTranslate(0,0,23)\r
+ ResetMatrixRotationAndScale()\r
+ glBegin(GL_LINES)\r
+ glVertex3f(-0.8, 1,0)\r
+ glVertex3f( 0.8, 1,0)\r
+ glVertex3f( 0.8, 1,0)\r
+ glVertex3f(-0.8,-1,0)\r
+ glVertex3f(-0.8,-1,0)\r
+ glVertex3f( 0.8,-1,0)\r
+ glEnd()\r
+ glPopMatrix()\r
+\r
+ glPopMatrix()\r
+ glEnable(GL_DEPTH_TEST)\r
+ \r
+def ResetMatrixRotationAndScale():\r
+ matrix = glGetFloatv(GL_MODELVIEW_MATRIX)\r
+\r
+ for x in xrange(0, 4):\r
+ s = ""\r
+ for y in xrange(0, 4):\r
+ s = s + " %8.8f" % (matrix[x][y])\r
+ print s\r
+\r
+ noZ = False\r
+ scale2D = matrix[0][0]\r
+ matrix[0][0] = 1.0\r
+ matrix[1][0] = 0.0\r
+ matrix[2][0] = 0.0\r
+ matrix[0][1] = 0.0\r
+ matrix[1][1] = 1.0\r
+ matrix[2][1] = 0.0\r
+ matrix[0][2] = 0.0\r
+ matrix[1][2] = 0.0\r
+ matrix[2][2] = 1.0\r
+ \r
+ if matrix[3][2] != 0.0:\r
+ matrix[3][0] /= -matrix[3][2] / 100\r
+ matrix[3][1] /= -matrix[3][2] / 100\r
+ matrix[3][2] = -100\r
+ else:\r
+ matrix[0][0] = scale2D\r
+ matrix[1][1] = scale2D\r
+ matrix[2][2] = scale2D\r
+ matrix[3][2] = -100\r
+ noZ = True\r
+ \r
+ glLoadMatrixf(matrix)\r
+ return noZ\r
+\r
def DrawBox(vMin, vMax):\r
glBegin(GL_LINE_LOOP)\r
glVertex3f(vMin.x, vMin.y, vMin.z)\r