[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46214] trunk/blender/source/blender: Fix #31250, #31248: wrong vertex normals after transform apply, collada import,
Brecht Van Lommel
brechtvanlommel at pandora.be
Thu May 3 01:36:34 CEST 2012
Revision: 46214
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46214
Author: blendix
Date: 2012-05-02 23:36:34 +0000 (Wed, 02 May 2012)
Log Message:
-----------
Fix #31250, #31248: wrong vertex normals after transform apply, collada import,
sculpt shape key switch. All cases that called this function needed parameter
only_face_normals set to false, so changed it now.
Also fixed wrong user count for imported mesh from collada and simplified
previous fix for tesselated faces to polygons conversion.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/mesh.c
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/blenkernel/intern/mesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mesh.c 2012-05-02 23:36:31 UTC (rev 46213)
+++ trunk/blender/source/blender/blenkernel/intern/mesh.c 2012-05-02 23:36:34 UTC (rev 46214)
@@ -1783,7 +1783,7 @@
{
mesh_calc_normals_mapping_ex(mverts, numVerts, mloop, mpolys,
numLoops, numPolys, polyNors_r, mfaces, numFaces,
- origIndexFace, faceNors_r, TRUE);
+ origIndexFace, faceNors_r, FALSE);
}
void mesh_calc_normals_mapping_ex(MVert *mverts, int numVerts,
Modified: trunk/blender/source/blender/collada/DocumentImporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/DocumentImporter.cpp 2012-05-02 23:36:31 UTC (rev 46213)
+++ trunk/blender/source/blender/collada/DocumentImporter.cpp 2012-05-02 23:36:34 UTC (rev 46214)
@@ -144,8 +144,6 @@
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 23:36:31 UTC (rev 46213)
+++ trunk/blender/source/blender/collada/MeshImporter.cpp 2012-05-02 23:36:34 UTC (rev 46214)
@@ -727,16 +727,6 @@
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())
@@ -958,6 +948,7 @@
const std::string& str_geom_id = mesh->getName().size() ? mesh->getName() : mesh->getOriginalId();
Mesh *me = add_mesh((char*)str_geom_id.c_str());
+ me->id.us--; // is already 1 here, but will be set later in set_mesh
// store the Mesh pointer to link it later with an Object
this->uid_mesh_map[mesh->getUniqueId()] = me;
@@ -972,6 +963,9 @@
make_edges(me, 0);
+ BKE_mesh_convert_mfaces_to_mpolys(me);
+ BKE_mesh_tessface_clear(me);
+
mesh_calc_normals_mapping(me->mvert, me->totvert, me->mloop, me->mpoly, me->totloop, me->totpoly, NULL, NULL, 0, NULL, NULL);
return true;
Modified: trunk/blender/source/blender/collada/MeshImporter.h
===================================================================
--- trunk/blender/source/blender/collada/MeshImporter.h 2012-05-02 23:36:31 UTC (rev 46213)
+++ trunk/blender/source/blender/collada/MeshImporter.h 2012-05-02 23:36:34 UTC (rev 46214)
@@ -129,8 +129,6 @@
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