Revision: 24014
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24014
Author:   blendix
Date:     2009-10-20 20:49:21 +0200 (Tue, 20 Oct 2009)

Log Message:
-----------
Bugfix for a crash with the cut tool in particle mode.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/physics/particle_edit.c

Modified: trunk/blender/source/blender/editors/physics/particle_edit.c
===================================================================
--- trunk/blender/source/blender/editors/physics/particle_edit.c        
2009-10-20 18:27:46 UTC (rev 24013)
+++ trunk/blender/source/blender/editors/physics/particle_edit.c        
2009-10-20 18:49:21 UTC (rev 24014)
@@ -2901,7 +2901,7 @@
        (data->edit->points + point_index)->flag |= PEP_EDIT_RECALC;
 }
 
-static void brush_add(PEData *data, short number)
+static int brush_add(PEData *data, short number)
 {
        Scene *scene= data->scene;
        Object *ob= data->ob;
@@ -2922,7 +2922,7 @@
        Mat4Invert(imat,ob->obmat);
 
        if(psys->flag & PSYS_GLOBAL_HAIR)
-               return;
+               return 0;
 
        BLI_srandom(psys->seed+data->mval[0]+data->mval[1]);
        
@@ -3097,6 +3097,8 @@
        
        if(!psmd->dm->deformedOnly)
                dm->release(dm);
+       
+       return n;
 }
 
 /************************* brush edit operator ********************/
@@ -3147,7 +3149,7 @@
        ARegion *ar= CTX_wm_region(C);
        float vec[3], mousef[2];
        short mval[2], mvalo[2];
-       int flip, mouse[2], dx, dy, removed= 0, selected= 0;
+       int flip, mouse[2], dx, dy, removed= 0, added=0, selected= 0;
        int lock_root = pset->flag & PE_LOCK_FIRST;
 
        if(!PE_start_edit(edit))
@@ -3225,6 +3227,9 @@
                                        if(pset->flag & PE_KEEP_LENGTHS)
                                                recalc_lengths(edit);
                                }
+                               else
+                                       removed= 0;
+
                                break;
                        }
                        case PE_BRUSH_LENGTH:
@@ -3279,11 +3284,13 @@
                                        PE_set_view3d_data(C, &data);
                                        data.mval= mval;
 
-                                       brush_add(&data, brush->strength);
+                                       added= brush_add(&data, 
brush->strength);
 
                                        if(pset->flag & PE_KEEP_LENGTHS)
                                                recalc_lengths(edit);
                                }
+                               else
+                                       added= 0;
                                break;
                        }
                        case PE_BRUSH_SMOOTH:
@@ -3314,13 +3321,15 @@
                if((pset->flag & PE_KEEP_LENGTHS)==0)
                        recalc_lengths(edit);
 
-               if(pset->brushtype == PE_BRUSH_ADD || removed) {
-                       if(pset->brushtype == PE_BRUSH_ADD && (pset->flag & 
PE_X_MIRROR))
-                               PE_mirror_x(scene, ob, 1);
+               if(ELEM(pset->brushtype, PE_BRUSH_ADD, PE_BRUSH_CUT)) {
+                       if(added || removed) {
+                               if(pset->brushtype == PE_BRUSH_ADD && 
(pset->flag & PE_X_MIRROR))
+                                       PE_mirror_x(scene, ob, 1);
 
-                       update_world_cos(ob,edit);
-                       psys_free_path_cache(NULL, edit);
-                       DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+                               update_world_cos(ob,edit);
+                               psys_free_path_cache(NULL, edit);
+                               DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+                       }
                }
                else
                        PE_update_object(scene, ob, 1);


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to