[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55020] trunk/blender/source/blender/ collada: Collada: Added ngon support to Vertex Color exporter
Gaia Clary
gaia.clary at machinimatrix.org
Mon Mar 4 14:12:56 CET 2013
Revision: 55020
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55020
Author: gaiaclary
Date: 2013-03-04 13:12:56 +0000 (Mon, 04 Mar 2013)
Log Message:
-----------
Collada: Added ngon support to Vertex Color exporter
Modified Paths:
--------------
trunk/blender/source/blender/collada/EffectExporter.cpp
trunk/blender/source/blender/collada/GeometryExporter.cpp
trunk/blender/source/blender/collada/MeshImporter.cpp
Modified: trunk/blender/source/blender/collada/EffectExporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/EffectExporter.cpp 2013-03-04 12:58:36 UTC (rev 55019)
+++ trunk/blender/source/blender/collada/EffectExporter.cpp 2013-03-04 13:12:56 UTC (rev 55020)
@@ -323,10 +323,10 @@
{
if (me->pdata.layers[i].type == CD_MTEXPOLY) {
MTexPoly *txface = (MTexPoly *)me->pdata.layers[i].data;
- MFace *mface = me->mface;
- for (int j = 0; j < me->totpoly; j++, mface++, txface++) {
+ MPoly *mpoly = me->mpoly;
+ for (int j = 0; j < me->totpoly; j++, mpoly++, txface++) {
- Material *mat = give_current_material(ob, mface->mat_nr + 1);
+ Material *mat = give_current_material(ob, mpoly->mat_nr + 1);
if (mat != ma)
continue;
Modified: trunk/blender/source/blender/collada/GeometryExporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/GeometryExporter.cpp 2013-03-04 12:58:36 UTC (rev 55019)
+++ trunk/blender/source/blender/collada/GeometryExporter.cpp 2013-03-04 13:12:56 UTC (rev 55020)
@@ -439,19 +439,14 @@
void GeometryExporter::createVertexColorSource(std::string geom_id, Mesh *me)
{
- if (!CustomData_has_layer(&me->fdata, CD_MCOL))
+ if (!CustomData_has_layer(&me->ldata, CD_MLOOPCOL))
return;
- MFace *f;
- int totcolor = 0, i, j;
- for (i = 0, f = me->mface; i < me->totface; i++, f++)
- totcolor += f->v4 ? 4 : 3;
-
COLLADASW::FloatSourceF source(mSW);
source.setId(getIdBySemantics(geom_id, COLLADASW::InputSemantic::COLOR));
source.setArrayId(getIdBySemantics(geom_id, COLLADASW::InputSemantic::COLOR) + ARRAY_ID_SUFFIX);
- source.setAccessorCount(totcolor);
+ source.setAccessorCount(me->totloop);
source.setAccessorStride(3);
COLLADASW::SourceBase::ParameterNameList ¶m = source.getParameterNameList();
@@ -461,14 +456,21 @@
source.prepareToAppendValues();
- int index = CustomData_get_active_layer_index(&me->fdata, CD_MCOL);
+ int index = CustomData_get_active_layer_index(&me->ldata, CD_MLOOPCOL);
+ MCol *mcol = (MCol *)me->ldata.layers[index].data;
- MCol *mcol = (MCol *)me->fdata.layers[index].data;
- MCol *c = mcol;
-
- for (i = 0, f = me->mface; i < me->totface; i++, c += 4, f++)
- for (j = 0; j < (f->v4 ? 4 : 3); j++)
- source.appendValues(c[j].b / 255.0f, c[j].g / 255.0f, c[j].r / 255.0f);
+ MPoly *mpoly;
+ int i;
+ for (i = 0, mpoly = me->mpoly; i < me->totpoly; i++, mpoly++) {
+ MCol *color = mcol + mpoly->loopstart;
+ for (int j = 0; j < mpoly->totloop; j++, color++) {
+ source.appendValues(
+ color->b / 255.0f,
+ color->g / 255.0f,
+ color->r / 255.0f
+ );
+ }
+ }
source.finish();
}
Modified: trunk/blender/source/blender/collada/MeshImporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/MeshImporter.cpp 2013-03-04 12:58:36 UTC (rev 55019)
+++ trunk/blender/source/blender/collada/MeshImporter.cpp 2013-03-04 13:12:56 UTC (rev 55020)
@@ -555,7 +555,7 @@
int collada_meshtype = mp->getPrimitiveType();
- // since we cannot set mpoly->mat_nr here, we store a portion of me->mface in Primitive
+ // since we cannot set mpoly->mat_nr here, we store a portion of me->mpoly in Primitive
Primitive prim = {mpoly, 0};
COLLADAFW::IndexListArray& index_list_array = mp->getUVCoordIndicesArray();
More information about the Bf-blender-cvs
mailing list