chiark / gitweb /
Add Z/Y/Z indicators. Fixes #70
authorDaid <daid303@gmail.com>
Sun, 22 Apr 2012 11:11:21 +0000 (13:11 +0200)
committerDaid <daid303@gmail.com>
Sun, 22 Apr 2012 11:11:21 +0000 (13:11 +0200)
Cura/gui/opengl.py
Cura/gui/preview3d.py

index 83bbc2a4d98831dce2d3c15a97e54e43a6b28d72..91987f00cea247a3026f08526c5863bbf3aee3b4 100644 (file)
@@ -77,6 +77,106 @@ def DrawMachine(machineSize):
        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
index c421c900fc6a3511388e74cf03dd2bd0718dc267..9258a77bd3814f7b4bf75b0decb7aff57a5dde2d 100644 (file)
@@ -163,7 +163,7 @@ class previewPanel(wx.Panel):
        def On3DClick(self):\r
                self.glCanvas.yaw = 30\r
                self.glCanvas.pitch = 60\r
-               self.glCanvas.zoom = 150\r
+               self.glCanvas.zoom = 300\r
                self.glCanvas.view3D = True\r
                self.glCanvas.Refresh()\r
 \r