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

Reply via email to