[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33111] trunk/blender/source/blender/ collada: Apply patch [#24722] COLLADA exporter: handle instancing
Nathan Letwory
nathan at letworyinteractive.com
Tue Nov 16 23:27:33 CET 2010
Revision: 33111
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33111
Author: jesterking
Date: 2010-11-16 23:27:31 +0100 (Tue, 16 Nov 2010)
Log Message:
-----------
Apply patch [#24722] COLLADA exporter: handle instancing
Submitted by Wenzel Jakob
Patch adds handling of linked meshes: instead of generating separate geometry objects, use instances.
Modified Paths:
--------------
trunk/blender/source/blender/collada/GeometryExporter.cpp
trunk/blender/source/blender/collada/GeometryExporter.h
trunk/blender/source/blender/collada/collada_internal.cpp
Modified: trunk/blender/source/blender/collada/GeometryExporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/GeometryExporter.cpp 2010-11-16 17:37:26 UTC (rev 33110)
+++ trunk/blender/source/blender/collada/GeometryExporter.cpp 2010-11-16 22:27:31 UTC (rev 33111)
@@ -63,6 +63,11 @@
std::vector<Normal> nor;
std::vector<Face> norind;
+ // Skip if linked geometry was already exported from another reference
+ if (exportedGeometry.find(geom_id) != exportedGeometry.end())
+ return;
+ exportedGeometry.insert(geom_id);
+
bool has_color = (bool)CustomData_has_layer(&me->fdata, CD_MCOL);
create_normals(nor, norind, me);
Modified: trunk/blender/source/blender/collada/GeometryExporter.h
===================================================================
--- trunk/blender/source/blender/collada/GeometryExporter.h 2010-11-16 17:37:26 UTC (rev 33110)
+++ trunk/blender/source/blender/collada/GeometryExporter.h 2010-11-16 22:27:31 UTC (rev 33111)
@@ -28,6 +28,7 @@
#include <string>
#include <vector>
+#include <set>
#include "COLLADASWStreamWriter.h"
#include "COLLADASWLibraryGeometries.h"
@@ -89,6 +90,8 @@
COLLADASW::URI makeUrl(std::string id);
/* int getTriCount(MFace *faces, int totface);*/
+private:
+ std::set<std::string> exportedGeometry;
};
struct GeometryFunctor {
Modified: trunk/blender/source/blender/collada/collada_internal.cpp
===================================================================
--- trunk/blender/source/blender/collada/collada_internal.cpp 2010-11-16 17:37:26 UTC (rev 33110)
+++ trunk/blender/source/blender/collada/collada_internal.cpp 2010-11-16 22:27:31 UTC (rev 33111)
@@ -247,7 +247,7 @@
std::string get_geometry_id(Object *ob)
{
- return translate_id(id_name(ob)) + "-mesh";
+ return translate_id(id_name(ob->data)) + "-mesh";
}
std::string get_light_id(Object *ob)
More information about the Bf-blender-cvs
mailing list