[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25926] trunk/blender/source/blender: last commit was no good since pe_get_current was running recalc_emitter_field on mousemove and poll () functions.

Campbell Barton ideasman42 at gmail.com
Tue Jan 12 14:40:30 CET 2010


Revision: 25926
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25926
Author:   campbellbarton
Date:     2010-01-12 14:40:29 +0100 (Tue, 12 Jan 2010)

Log Message:
-----------
last commit was no good since pe_get_current was running recalc_emitter_field on mousemove and poll() functions.
run on entering particle editmode only.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_pointcache.h
    trunk/blender/source/blender/editors/physics/particle_edit.c
    trunk/blender/source/blender/makesrna/intern/rna_particle.c

Modified: trunk/blender/source/blender/blenkernel/BKE_pointcache.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_pointcache.h	2010-01-12 13:20:49 UTC (rev 25925)
+++ trunk/blender/source/blender/blenkernel/BKE_pointcache.h	2010-01-12 13:40:29 UTC (rev 25926)
@@ -213,7 +213,7 @@
 	struct ParticleSystem *psys;
 	struct ParticleData *particles;
 	struct KDTree *emitter_field;
-	float *emitter_cosnos;
+	float *emitter_cosnos; /* localspace face centers and normals (average of its verts), from the derived mesh */
 	int *mirror_cache;
 
 	struct ParticleCacheKey **pathcache;	/* path cache (runtime) */

Modified: trunk/blender/source/blender/editors/physics/particle_edit.c
===================================================================
--- trunk/blender/source/blender/editors/physics/particle_edit.c	2010-01-12 13:20:49 UTC (rev 25925)
+++ trunk/blender/source/blender/editors/physics/particle_edit.c	2010-01-12 13:40:29 UTC (rev 25926)
@@ -194,7 +194,10 @@
 	return &scene->toolsettings->particle;
 }
 
-/* always gets atleast the first particlesystem even if PSYS_CURRENT flag is not set */
+/* always gets atleast the first particlesystem even if PSYS_CURRENT flag is not set
+ *
+ * note: this function runs on poll, therefor it can runs many times a second
+ * keep it fast! */
 static PTCacheEdit *pe_get_current(Scene *scene, Object *ob, int create)
 {
 	ParticleEditSettings *pset= PE_settings(scene);
@@ -266,13 +269,8 @@
 		}
 	}
 
-	if(edit) {
+	if(edit)
 		edit->pid = *pid;
-		
-		/* mesh may have changed since last entering editmode.
-		 * note, this may have run before if the edit data was just created, so could avoid this and speed up a little */
-		recalc_emitter_field(ob, edit->psys);
-	}
 
 	BLI_freelistN(&pidlist);
 
@@ -3909,8 +3907,14 @@
 	Object *ob= CTX_data_active_object(C);
 
 	if(!(ob->mode & OB_MODE_PARTICLE_EDIT)) {
+		PTCacheEdit *edit;
 		ob->mode |= OB_MODE_PARTICLE_EDIT;
-		PE_create_current(scene, ob);
+		edit= PE_create_current(scene, ob);
+	
+		/* mesh may have changed since last entering editmode.
+		 * note, this may have run before if the edit data was just created, so could avoid this and speed up a little */
+		recalc_emitter_field(ob, edit->psys);
+		
 		toggle_particle_cursor(C, 1);
 		WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_MODE_PARTICLE, NULL);
 	}

Modified: trunk/blender/source/blender/makesrna/intern/rna_particle.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_particle.c	2010-01-12 13:20:49 UTC (rev 25925)
+++ trunk/blender/source/blender/makesrna/intern/rna_particle.c	2010-01-12 13:40:29 UTC (rev 25926)
@@ -658,7 +658,8 @@
 	RNA_def_property_ui_text(prop, "Time", "Relative time of key over hair length.");
 
 	prop= RNA_def_property(srna, "weight", PROP_FLOAT, PROP_UNSIGNED);
-	RNA_def_property_ui_text(prop, "Weight", "Weight for softbody simulation.");
+	RNA_def_property_range(prop, 0.0, 1.0);
+	RNA_def_property_ui_text(prop, "Weight", "Weight for cloth simulation.");
 }
 
 static void rna_def_particle_key(BlenderRNA *brna)





More information about the Bf-blender-cvs mailing list