chiark / gitweb /
Moved the 3D normal generation to the model loading, so it does not block the renderi...
authordaid <daid303@gmail.com>
Wed, 14 Mar 2012 15:24:18 +0000 (16:24 +0100)
committerdaid <daid303@gmail.com>
Wed, 14 Mar 2012 15:24:18 +0000 (16:24 +0100)
SkeinPyPy_NewUI/newui/preview3d.py

index 537ba329d074948ac7f9c9606f01112abb9fb70d..fdcec82fa5502984504e4e1c634c0be6ee465299 100644 (file)
@@ -2,6 +2,7 @@ import sys
 import math\r
 import threading\r
 import re\r
+import time\r
 \r
 from wx import glcanvas\r
 import wx\r
@@ -152,8 +153,6 @@ class previewPanel(wx.Panel):
        def updateModelTransform(self, f=0):\r
                if self.triangleMesh == None:\r
                        return\r
-               for face in self.triangleMesh.faces:\r
-                       face.normal = None\r
                scale = 1.0\r
                rotate = 0.0\r
                try:\r
@@ -179,6 +178,14 @@ class previewPanel(wx.Panel):
                        self.triangleMesh.vertexes[i].x = self.triangleMesh.origonalVertexes[i].x * mat00 + self.triangleMesh.origonalVertexes[i].y * mat01\r
                        self.triangleMesh.vertexes[i].y = self.triangleMesh.origonalVertexes[i].x * mat10 + self.triangleMesh.origonalVertexes[i].y * mat11\r
                        self.triangleMesh.vertexes[i].z = self.triangleMesh.origonalVertexes[i].z * scaleZ\r
+\r
+               for face in self.triangleMesh.faces:\r
+                       v1 = self.triangleMesh.vertexes[face.vertexIndexes[0]]\r
+                       v2 = self.triangleMesh.vertexes[face.vertexIndexes[1]]\r
+                       v3 = self.triangleMesh.vertexes[face.vertexIndexes[2]]\r
+                       face.normal = (v2 - v1).cross(v3 - v1)\r
+                       face.normal.normalize()\r
+\r
                self.moveModel()\r
        \r
        def moveModel(self):\r
@@ -378,9 +385,6 @@ class PreviewGLCanvas(glcanvas.GLCanvas):
                                        v1 = self.parent.triangleMesh.vertexes[face.vertexIndexes[0]]\r
                                        v2 = self.parent.triangleMesh.vertexes[face.vertexIndexes[1]]\r
                                        v3 = self.parent.triangleMesh.vertexes[face.vertexIndexes[2]]\r
-                                       if face.normal == None:\r
-                                               face.normal = (v2 - v1).cross(v3 - v1)\r
-                                               face.normal.normalize()\r
                                        glNormal3f(face.normal.x, face.normal.y, face.normal.z)\r
                                        glVertex3f(v1.x, v1.y, v1.z)\r
                                        glVertex3f(v2.x, v2.y, v2.z)\r