[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60799] branches/vgroup_modifiers/source/ blender/blenkernel/intern: Attempt to fix bmesh crashes by adding tess-to-poly code for loop normals, but no luck so far.
Bastien Montagne
montagne29 at wanadoo.fr
Wed Oct 16 14:42:52 CEST 2013
Revision: 60799
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60799
Author: mont29
Date: 2013-10-16 12:42:51 +0000 (Wed, 16 Oct 2013)
Log Message:
-----------
Attempt to fix bmesh crashes by adding tess-to-poly code for loop normals, but no luck so far.
Modified Paths:
--------------
branches/vgroup_modifiers/source/blender/blenkernel/intern/customdata.c
branches/vgroup_modifiers/source/blender/blenkernel/intern/mesh_evaluate.c
Modified: branches/vgroup_modifiers/source/blender/blenkernel/intern/customdata.c
===================================================================
--- branches/vgroup_modifiers/source/blender/blenkernel/intern/customdata.c 2013-10-16 07:55:52 UTC (rev 60798)
+++ branches/vgroup_modifiers/source/blender/blenkernel/intern/customdata.c 2013-10-16 12:42:51 UTC (rev 60799)
@@ -2277,6 +2277,9 @@
else if (fdata->layers[i].type == CD_MDISPS) {
CustomData_add_layer_named(ldata, CD_MDISPS, CD_CALLOC, NULL, totloop, fdata->layers[i].name);
}
+ else if (fdata->layers[i].type == CD_TESSLOOPNORMAL) {
+ CustomData_add_layer_named(ldata, CD_NORMAL, CD_CALLOC, NULL, totloop, fdata->layers[i].name);
+ }
}
}
Modified: branches/vgroup_modifiers/source/blender/blenkernel/intern/mesh_evaluate.c
===================================================================
--- branches/vgroup_modifiers/source/blender/blenkernel/intern/mesh_evaluate.c 2013-10-16 07:55:52 UTC (rev 60798)
+++ branches/vgroup_modifiers/source/blender/blenkernel/intern/mesh_evaluate.c 2013-10-16 12:42:51 UTC (rev 60799)
@@ -1823,6 +1823,16 @@
}
}
+ if (CustomData_has_layer(fdata, CD_TESSLOOPNORMAL)) {
+ float (*lnors)[3] = CustomData_get(ldata, loopstart, CD_NORMAL);
+ float (*tlnors)[3] = CustomData_get(fdata, findex, CD_TESSLOOPNORMAL);
+ const int max = mf->v4 ? 4 : 3;
+
+ for (i = 0; i < max; i++, lnors++, tlnors++) {
+ copy_v3_v3(*lnors, *tlnors);
+ }
+ }
+
if (CustomData_has_layer(fdata, CD_MDISPS)) {
MDisps *ld = CustomData_get(ldata, loopstart, CD_MDISPS);
MDisps *fd = CustomData_get(fdata, findex, CD_MDISPS);
More information about the Bf-blender-cvs
mailing list