[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57188] trunk/blender/source/blender/ modifiers/intern: corrections to modifiers from recent normal handling changes

Campbell Barton ideasman42 at gmail.com
Sun Jun 2 06:09:30 CEST 2013


Revision: 57188
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57188
Author:   campbellbarton
Date:     2013-06-02 04:09:29 +0000 (Sun, 02 Jun 2013)
Log Message:
-----------
corrections to modifiers from recent normal handling changes
- solidify didn't define a dependsOnNormals callback (which it should have)
- build wasn't passing on dirty normals.
- decimate wasnt setting dirty normals.

Modified Paths:
--------------
    trunk/blender/source/blender/modifiers/intern/MOD_build.c
    trunk/blender/source/blender/modifiers/intern/MOD_decimate.c
    trunk/blender/source/blender/modifiers/intern/MOD_solidify.c

Modified: trunk/blender/source/blender/modifiers/intern/MOD_build.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_build.c	2013-06-02 03:59:19 UTC (rev 57187)
+++ trunk/blender/source/blender/modifiers/intern/MOD_build.c	2013-06-02 04:09:29 UTC (rev 57188)
@@ -296,6 +296,10 @@
 	MEM_freeN(edgeMap);
 	MEM_freeN(faceMap);
 
+	if (dm->dirty & DM_DIRTY_NORMALS) {
+		result->dirty |= DM_DIRTY_NORMALS;
+	}
+
 	return result;
 }
 

Modified: trunk/blender/source/blender/modifiers/intern/MOD_decimate.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_decimate.c	2013-06-02 03:59:19 UTC (rev 57187)
+++ trunk/blender/source/blender/modifiers/intern/MOD_decimate.c	2013-06-02 04:09:29 UTC (rev 57188)
@@ -197,6 +197,8 @@
 	TIMEIT_END(decim);
 #endif
 
+	result->dirty = DM_DIRTY_NORMALS;
+
 	return result;
 }
 

Modified: trunk/blender/source/blender/modifiers/intern/MOD_solidify.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_solidify.c	2013-06-02 03:59:19 UTC (rev 57187)
+++ trunk/blender/source/blender/modifiers/intern/MOD_solidify.c	2013-06-02 04:09:29 UTC (rev 57188)
@@ -819,7 +819,7 @@
 		MEM_freeN(old_vert_arr);
 
 	/* must recalculate normals with vgroups since they can displace unevenly [#26888] */
-	if (dvert) {
+	if ((dm->dirty & DM_DIRTY_NORMALS) || dvert) {
 		result->dirty |= DM_DIRTY_NORMALS;
 	}
 
@@ -832,7 +832,13 @@
 
 #undef SOLIDIFY_SIDE_NORMALS
 
+static bool dependsOnNormals(ModifierData *md)
+{
+	SolidifyModifierData *smd = (SolidifyModifierData *) md;
 
+	return (smd->flag & MOD_SOLIDIFY_NORMAL_CALC) == 0;
+}
+
 ModifierTypeInfo modifierType_Solidify = {
 	/* name */              "Solidify",
 	/* structName */        "SolidifyModifierData",
@@ -858,7 +864,7 @@
 	/* isDisabled */        NULL,
 	/* updateDepgraph */    NULL,
 	/* dependsOnTime */     NULL,
-	/* dependsOnNormals */  NULL,
+	/* dependsOnNormals */  dependsOnNormals,
 	/* foreachObjectLink */ NULL,
 	/* foreachIDLink */     NULL,
 	/* foreachTexLink */    NULL,




More information about the Bf-blender-cvs mailing list