[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46197] trunk/blender/source/blender/ collada: Fix #31176: Collada model shows weird textures in editmode
Juha Mäki-Kanto
kiskosika at gmail.com
Wed May 2 18:18:20 CEST 2012
Revision: 46197
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46197
Author: kanttori
Date: 2012-05-02 16:18:20 +0000 (Wed, 02 May 2012)
Log Message:
-----------
Fix #31176: Collada model shows weird textures in editmode
Issue with multimaterial meshes and mface to mpoly conversion being before assignment of materials (which is done on meshobject instancing?).
Added explicit bmesh conversion to MeshImporter which is called from DocumentImporter::import.
Modified Paths:
--------------
trunk/blender/source/blender/collada/DocumentImporter.cpp
trunk/blender/source/blender/collada/MeshImporter.cpp
trunk/blender/source/blender/collada/MeshImporter.h
Modified: trunk/blender/source/blender/collada/DocumentImporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/DocumentImporter.cpp 2012-05-02 16:17:04 UTC (rev 46196)
+++ trunk/blender/source/blender/collada/DocumentImporter.cpp 2012-05-02 16:18:20 UTC (rev 46197)
@@ -144,6 +144,8 @@
delete ehandler;
+ mesh_importer.bmeshConversion();
+
return true;
}
Modified: trunk/blender/source/blender/collada/MeshImporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/MeshImporter.cpp 2012-05-02 16:17:04 UTC (rev 46196)
+++ trunk/blender/source/blender/collada/MeshImporter.cpp 2012-05-02 16:18:20 UTC (rev 46197)
@@ -727,6 +727,16 @@
MeshImporter::MeshImporter(UnitConverter *unitconv, ArmatureImporter *arm, Scene *sce) : unitconverter(unitconv), scene(sce), armature_importer(arm) {}
+void MeshImporter::bmeshConversion()
+{
+ for (std::map<COLLADAFW::UniqueId, Mesh*>::iterator m = uid_mesh_map.begin();
+ m != uid_mesh_map.end(); ++m)
+ {
+ if ((*m).second) BKE_mesh_convert_mfaces_to_mpolys((*m).second);
+ }
+}
+
+
Object *MeshImporter::get_object_by_geom_uid(const COLLADAFW::UniqueId& geom_uid)
{
if (uid_object_map.find(geom_uid) != uid_object_map.end())
@@ -921,7 +931,7 @@
fprintf(stderr, "invalid referenced material for %s\n", mat_array[i].getName().c_str());
}
}
-
+
return ob;
}
@@ -964,6 +974,5 @@
mesh_calc_normals_mapping(me->mvert, me->totvert, me->mloop, me->mpoly, me->totloop, me->totpoly, NULL, NULL, 0, NULL, NULL);
- BKE_mesh_convert_mfaces_to_mpolys(me);
return true;
}
Modified: trunk/blender/source/blender/collada/MeshImporter.h
===================================================================
--- trunk/blender/source/blender/collada/MeshImporter.h 2012-05-02 16:17:04 UTC (rev 46196)
+++ trunk/blender/source/blender/collada/MeshImporter.h 2012-05-02 16:18:20 UTC (rev 46197)
@@ -129,6 +129,8 @@
MeshImporter(UnitConverter *unitconv, ArmatureImporter *arm, Scene *sce);
+ void bmeshConversion();
+
virtual Object *get_object_by_geom_uid(const COLLADAFW::UniqueId& geom_uid);
MTex *assign_textures_to_uvlayer(COLLADAFW::TextureCoordinateBinding &ctexture,
More information about the Bf-blender-cvs
mailing list