Revision: 39903
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39903
Author: nazgul
Date: 2011-09-04 11:13:41 +0000 (Sun, 04 Sep 2011)
Log Message:
-----------
Fix #28423: Screw-modifier crash in cunjunction with subsurf modifier
Problems was caused by angle=2*pi and steps=2 in screw modifier.
Such configuration produced duplicated geometry to close object
and it was confusing for subsurf cache.
Restrict steps=2 for screw modifier now, so now 3<=steps<=512.
Modified Paths:
--------------
trunk/blender/source/blender/makesrna/intern/rna_modifier.c
trunk/blender/source/blender/modifiers/intern/MOD_screw.c
Modified: trunk/blender/source/blender/makesrna/intern/rna_modifier.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_modifier.c 2011-09-04
02:12:03 UTC (rev 39902)
+++ trunk/blender/source/blender/makesrna/intern/rna_modifier.c 2011-09-04
11:13:41 UTC (rev 39903)
@@ -2366,7 +2366,7 @@
prop= RNA_def_property(srna, "steps", PROP_INT, PROP_UNSIGNED);
RNA_def_property_range(prop, 2, 10000);
- RNA_def_property_ui_range(prop, 2, 512, 1, 0);
+ RNA_def_property_ui_range(prop, 3, 512, 1, 0);
RNA_def_property_ui_text(prop, "Steps", "Number of steps in the
revolution");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
Modified: trunk/blender/source/blender/modifiers/intern/MOD_screw.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_screw.c 2011-09-04
02:12:03 UTC (rev 39902)
+++ trunk/blender/source/blender/modifiers/intern/MOD_screw.c 2011-09-04
11:13:41 UTC (rev 39903)
@@ -275,7 +275,7 @@
if (fabsf(screw_ofs) <= (FLT_EPSILON*100.0f) && fabsf(fabsf(angle) -
((float)M_PI * 2.0f)) <= (FLT_EPSILON*100.0f)) {
close= 1;
step_tot--;
- if(step_tot < 2) step_tot= 2;
+ if(step_tot < 3) step_tot= 3;
maxVerts = totvert * step_tot; /* -1 because we're
joining back up */
maxEdges = (totvert * step_tot) + /* these are the edges
between new verts */
@@ -286,7 +286,7 @@
}
else {
close= 0;
- if(step_tot < 2) step_tot= 2;
+ if(step_tot < 3) step_tot= 3;
maxVerts = totvert * step_tot; /* -1 because we're
joining back up */
maxEdges = (totvert * (step_tot-1)) + /* these are the
edges between new verts */
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs