- fixed crash with ALT+C conversion of subsurf to mesh with subdiv level 0
authorTon Roosendaal <ton@blender.org>
Sat, 25 Oct 2003 19:17:24 +0000 (19:17 +0000)
committerTon Roosendaal <ton@blender.org>
Sat, 25 Oct 2003 19:17:24 +0000 (19:17 +0000)
- also changed the limits in the subdiv levels buttons; ranging now 1-6
  (note: '6' gives 16k new faces per old face... and max was 12!)

source/blender/blenkernel/intern/subsurf.c
source/blender/src/buttons_editing.c

index 613cc69d9f71071cd5e4c96dea6fc063645dd6a6..2a2723686df8e6fabf8b700e2b6788f67b0a24e5 100644 (file)
@@ -948,7 +948,7 @@ void subsurf_make_mesh(Object *ob, short subdiv) {
 void subsurf_to_mesh(Object *oldob, Mesh *me) {
        Mesh *oldme= oldob->data;
        
-       if (oldme->totface) {
+       if (oldme->totface && oldme->subdiv) {
                HyperMesh *hme= hypermesh_from_mesh(oldme, NULL);
                DispList *dl= subsurf_subdivide_to_displist(hme, oldme->subdiv, oldme->flag);
                DispListMesh *dlm= dl->mesh;
index 0022eae1416ba1c35bf7eb9b330eebdd6fb4ce09..5e614f5c337cab30c64595036afdf6948eb09469 100644 (file)
@@ -380,8 +380,8 @@ static void editing_panel_mesh_type(Object *ob, Mesh *me)
        uiDefButS(block, TOG|BIT|7, B_MAKEDISP, "SubSurf",              10,124,130,17, &me->flag, 0, 0, 0, 0, "Treats the active object as a Catmull-Clark Subdivision Surface");
        uiBlockSetCol(block, TH_AUTO);
 
-       uiDefButS(block, NUM, B_MAKEDISP, "Subdiv:",                    10,104,100,18, &me->subdiv, 0, 12, 0, 0, "Defines the level of subdivision to display in real time interactively");
-       uiDefButS(block, NUM, B_MAKEDISP, "",                                   110, 104, 30, 18, &me->subdivr, 0, 12, 0, 0, "Defines the level of subdivision to apply during rendering");
+       uiDefButS(block, NUM, B_MAKEDISP, "Subdiv:",                    10,104,100,18, &me->subdiv, 1, 6, 0, 0, "Defines the level of subdivision to display in real time interactively");
+       uiDefButS(block, NUM, B_MAKEDISP, "",                                   110, 104, 30, 18, &me->subdivr, 1, 6, 0, 0, "Defines the level of subdivision to apply during rendering");
        uiDefButS(block, TOG|BIT|8, B_MAKEDISP, "Optimal",      10,84,130,17, &me->flag, 0, 0, 0, 0, "Only draws optimal wireframe");
        
        if(me->msticky) val= 1.0; else val= 0.0;