[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24014] trunk/blender/source/blender/ editors/physics/particle_edit.c: Bugfix for a crash with the cut tool in particle mode.
Brecht Van Lommel
brecht at blender.org
Tue Oct 20 20:49:23 CEST 2009
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);
More information about the Bf-blender-cvs
mailing list