Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[MANTA] r995 - trunk/Model/Groups


Chronological Thread 
  • From: bigler@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [MANTA] r995 - trunk/Model/Groups
  • Date: Fri, 31 Mar 2006 13:29:50 -0700 (MST)

Author: bigler
Date: Fri Mar 31 13:29:50 2006
New Revision: 995

Modified:
   trunk/Model/Groups/KDTreeLoaderIW.cc
Log:

Compute the normals if they don't exits.


Modified: trunk/Model/Groups/KDTreeLoaderIW.cc
==============================================================================
--- trunk/Model/Groups/KDTreeLoaderIW.cc        (original)
+++ trunk/Model/Groups/KDTreeLoaderIW.cc        Fri Mar 31 13:29:50 2006
@@ -245,23 +245,34 @@
     unsigned int a,b,c,group;
     fscanf(geomf, "\t%u %u %u %u\n", &a, &b, &c, &group);
 
+    Vectorf va(vertices+(a*3));
+    Vectorf vb(vertices+(b*3));
+    Vectorf vc(vertices+(c*3));
     // Do bounding box extension
-    bbox.extendByPoint(vertices+(a*3));
-    bbox.extendByPoint(vertices+(b*3));
-    bbox.extendByPoint(vertices+(c*3));
+    bbox.extendByPoint(va);
+    bbox.extendByPoint(vb);
+    bbox.extendByPoint(vc);
 
     // Add the triangle geometry
     Triangle& t = kdtree->tris->get(ti);
-    t.v = Vectorf(vertices+(a*3));
-    t.edge1 = Vectorf(vertices+(b*3)) - t.v;
-    t.edge2 = Vectorf(vertices+(c*3)) - t.v;
+    t.v = va;
+    t.edge1 = vb - t.v;
+    t.edge2 = vc - t.v;
     //    kdtree->triToGroupMap->get(ti) = group;
 
     // Set up the vertex normal
     TriangleNormal& tn= kdtree->normals[ti];
-    tn[0] = Vectorf(vtxnormals+(a*3));
-    tn[1] = Vectorf(vtxnormals+(b*3));
-    tn[2] = Vectorf(vtxnormals+(c*3));
+    if (a < num_vtxnormals && b < num_vtxnormals && c < num_vtxnormals) {
+      tn[0] = Vectorf(vtxnormals+(a*3));
+      tn[1] = Vectorf(vtxnormals+(b*3));
+      tn[2] = Vectorf(vtxnormals+(c*3));
+    } else {
+      // Compute the normal
+      Vectorf normal(Cross(t.edge1, t.edge2).normal());
+      tn[0] = normal;
+      tn[1] = normal;
+      tn[2] = normal;
+    }
   }
 
   // Here you should parse out the shaders, but we skip this for now




  • [MANTA] r995 - trunk/Model/Groups, bigler, 03/31/2006

Archive powered by MHonArc 2.6.16.

Top of page