diff Renderer/Engine/polygon.cc @ 860:649e4cb84683

Still on the way
author yutaka@localhost.localdomain
date Fri, 18 Jun 2010 01:30:06 +0900
parents 735f76483bb2
children 000a8b63ad9a
line wrap: on
line diff
--- a/Renderer/Engine/polygon.cc	Thu Jun 17 04:46:25 2010 +0900
+++ b/Renderer/Engine/polygon.cc	Fri Jun 18 01:30:06 2010 +0900
@@ -177,6 +177,36 @@
 
 void Polygon::pickup_coordinate(char *cont)
 {
+
+#if SPE_CREATE_POLYGON
+
+    TrianglePackPtr cur = tri_pack;
+
+    for(int n=0; n<size; n+=3)
+    {
+
+        cont = pickup_float(cont, &cur->ver1.x);
+        cont = pickup_float(cont, &cur->ver1.y);
+        cont = pickup_float(cont, &cur->ver1.z);
+
+        cont = pickup_float(cont, &cur->ver2.x);
+        cont = pickup_float(cont, &cur->ver2.y);
+        cont = pickup_float(cont, &cur->ver2.z);
+
+        cont = pickup_float(cont, &cur->ver3.x);
+        cont = pickup_float(cont, &cur->ver3.y);
+        cont = pickup_float(cont, &cur->ver3.z);
+
+	cur = cur + 1;
+
+        if (cont == NULL)
+        {
+            cout << "Analyzing obj data failed coordinate\n";
+        }
+    }
+
+#else
+
     for(int n=0; n<size*3; n+=3)
     {
         cont = pickup_float(cont, coord_xyz+n);
@@ -188,10 +218,44 @@
             cout << "Analyzing obj data failed coordinate\n";
         }
     }
+
+#endif
+
 }
 
 void Polygon::pickup_normal(char *cont)
 {
+
+#if SPE_CREATE_POLYGON
+
+    TrianglePackPtr cur = tri_pack;
+
+    for(int n=0; n<size; n+=3)
+    {
+
+        cont = pickup_float(cont, &cur->normal1.x);
+        cont = pickup_float(cont, &cur->normal1.y);
+        cont = pickup_float(cont, &cur->normal1.z);
+
+        cont = pickup_float(cont, &cur->normal2.x);
+        cont = pickup_float(cont, &cur->normal2.y);
+        cont = pickup_float(cont, &cur->normal2.z);
+
+        cont = pickup_float(cont, &cur->normal3.x);
+        cont = pickup_float(cont, &cur->normal3.y);
+        cont = pickup_float(cont, &cur->normal3.z);
+
+	cur = cur + 1;
+
+        if (cont == NULL)
+        {
+            cout << "Analyzing obj data failed coordinate\n";
+        }
+    }
+
+#else
+
+
     for (int n = 0; n<size*3; n += 3)
     {
         cont = pickup_float(cont, normal+n);
@@ -203,6 +267,9 @@
             cout << "Analyzing obj data failed normal\n";
         }
     }
+
+#endif
+
 }
 
 void Polygon::pickup_model(char *cont)
@@ -219,6 +286,33 @@
 
 void Polygon::pickup_texture(char *cont)
 {
+
+#if SPE_CREATE_POLYGON
+
+    TrianglePackPtr cur = tri_pack;
+
+    for(int n=0; n<size; n+=3)
+    {
+
+        cont = pickup_float(cont, &cur->ver1.tex_x);
+        cont = pickup_float(cont, &cur->ver1.tex_y);
+
+        cont = pickup_float(cont, &cur->ver2.tex_x);
+        cont = pickup_float(cont, &cur->ver2.tex_y);
+
+        cont = pickup_float(cont, &cur->ver3.tex_x);
+        cont = pickup_float(cont, &cur->ver3.tex_y);
+
+	cur = cur + 1;
+
+        if (cont == NULL)
+        {
+            cout << "Analyzing obj data failed coordinate\n";
+        }
+    }
+
+#else
+
     for (int n = 0; n < size*3; n += 3)
     {
         cont = pickup_float(cont, coord_tex+n);
@@ -230,6 +324,9 @@
             cout << "Analyzing obj data failed texture\n";
         }
     }
+
+#endif
+
 }
 
 char *get_pixel(int tx, int ty, SDL_Surface *texture_image)