[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24548] trunk/blender/source/blender/ collada/DocumentImporter.cpp: Merge -c 24547 from COLLADA branch ( fix flipping of triangles created by tesselation).
Arystanbek Dyussenov
arystan.d at gmail.com
Fri Nov 13 16:48:45 CET 2009
Revision: 24548
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24548
Author: kazanbas
Date: 2009-11-13 16:48:45 +0100 (Fri, 13 Nov 2009)
Log Message:
-----------
Merge -c 24547 from COLLADA branch (fix flipping of triangles created by tesselation).
Modified Paths:
--------------
trunk/blender/source/blender/collada/DocumentImporter.cpp
Modified: trunk/blender/source/blender/collada/DocumentImporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/DocumentImporter.cpp 2009-11-13 15:36:46 UTC (rev 24547)
+++ trunk/blender/source/blender/collada/DocumentImporter.cpp 2009-11-13 15:48:45 UTC (rev 24548)
@@ -85,6 +85,7 @@
#include <string>
#include <map>
+#include <algorithm> // sort()
#include <math.h>
#include <float.h>
@@ -1298,9 +1299,16 @@
tottri = dl->parts;
int *index = dl->index;
- for (i = 0; i < tottri * 3; i++) {
- tri.push_back(*index);
- index++;
+ for (i= 0; i < tottri; i++) {
+ int t[3]= {*index, *(index + 1), *(index + 2)};
+
+ std::sort(t, t + 3);
+
+ tri.push_back(t[0]);
+ tri.push_back(t[1]);
+ tri.push_back(t[2]);
+
+ index += 3;
}
}
@@ -1414,6 +1422,8 @@
MTFace *mtface = (MTFace*)CustomData_get_layer_n(&me->fdata, CD_MTFACE, k);
set_face_uv(&mtface[face_index], uvs, k, *index_list_array[k], index, false);
}
+
+ test_index_face(mface, &me->fdata, face_index, 3);
index += 3;
mface++;
@@ -1432,7 +1442,6 @@
if (vcount == 3 || vcount == 4) {
set_face_indices(mface, indices, vcount == 4);
- indices += vcount;
// set mtface for each uv set
// it is assumed that all primitives have equal number of UV sets
@@ -1445,7 +1454,6 @@
test_index_face(mface, &me->fdata, face_index, vcount);
- index += mface->v4 ? 4 : 3;
mface++;
face_index++;
prim.totface++;
@@ -1483,10 +1491,10 @@
face_index++;
prim.totface++;
}
-
- index += vcount;
- indices += vcount;
}
+
+ index += vcount;
+ indices += vcount;
}
}
More information about the Bf-blender-cvs
mailing list