[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33634] trunk/blender: "Fix" for [#25184] Forces for growing hair - update inconsistency - as discussed with Jahka on Saturday on IRC

Janne Karhu jhkarh at gmail.com
Mon Dec 13 11:45:24 CET 2010


Revision: 33634
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33634
Author:   jhk
Date:     2010-12-13 11:45:24 +0100 (Mon, 13 Dec 2010)

Log Message:
-----------
"Fix" for [#25184] Forces for growing hair - update inconsistency - as discussed with Jahka on Saturday on IRC
* New option to "Regrow hair" for each frame.
* This was perhaps more a feature request, but there was a similar useful feature called "animated hair" in particles at some point.
* The previous behavior for hair growing was inconsistent to say the least, so this is a nice option to have.

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/properties_particle.py
    trunk/blender/source/blender/blenkernel/intern/particle.c
    trunk/blender/source/blender/blenkernel/intern/particle_system.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/makesdna/DNA_particle_types.h
    trunk/blender/source/blender/makesrna/intern/rna_particle.c

Modified: trunk/blender/release/scripts/ui/properties_particle.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_particle.py	2010-12-13 10:24:05 UTC (rev 33633)
+++ trunk/blender/release/scripts/ui/properties_particle.py	2010-12-13 10:45:24 UTC (rev 33634)
@@ -125,7 +125,9 @@
                     if psys.is_edited:
                         split.operator("particle.edited_clear", text="Free Edit")
                     else:
-                        split.label(text="")
+                        row = split.row()
+                        row.enabled = particle_panel_enabled(context, psys)
+                        row.prop(part, "regrow_hair")
                     row = split.row()
                     row.enabled = particle_panel_enabled(context, psys)
                     row.prop(part, "hair_step")

Modified: trunk/blender/source/blender/blenkernel/intern/particle.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle.c	2010-12-13 10:24:05 UTC (rev 33633)
+++ trunk/blender/source/blender/blenkernel/intern/particle.c	2010-12-13 10:45:24 UTC (rev 33634)
@@ -3473,7 +3473,7 @@
 	part->bb_uv_split=1;
 	part->bb_align=PART_BB_VIEW;
 	part->bb_split_offset=PART_BB_OFF_LINEAR;
-	part->flag=PART_REACT_MULTIPLE|PART_HAIR_GEOMETRY|PART_EDISTR|PART_TRAND;
+	part->flag=PART_EDISTR|PART_TRAND;
 
 	part->sta= 1.0;
 	part->end= 200.0;

Modified: trunk/blender/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle_system.c	2010-12-13 10:24:05 UTC (rev 33633)
+++ trunk/blender/source/blender/blenkernel/intern/particle_system.c	2010-12-13 10:45:24 UTC (rev 33634)
@@ -4006,7 +4006,7 @@
 static int hair_needs_recalc(ParticleSystem *psys)
 {
 	if(!(psys->flag & PSYS_EDITED) && (!psys->edit || !psys->edit->edited) &&
-		((psys->flag & PSYS_HAIR_DONE)==0 || psys->recalc & PSYS_RECALC_RESET)) {
+		((psys->flag & PSYS_HAIR_DONE)==0 || psys->recalc & PSYS_RECALC_RESET || (psys->part->flag & PART_HAIR_REGROW && !psys->edit))) {
 		return 1;
 	}
 

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2010-12-13 10:24:05 UTC (rev 33633)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2010-12-13 10:45:24 UTC (rev 33634)
@@ -11173,6 +11173,8 @@
 		for(part = main->particle.first; part; part = part->id.next) {
 			if(part->boids)
 				part->boids->pitch = 1.0f;
+
+			part->flag &= ~PART_HAIR_REGROW; /* this was a deprecated flag before */
 		}
 
 		for (sc= main->screen.first; sc; sc= sc->id.next) {

Modified: trunk/blender/source/blender/makesdna/DNA_particle_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_particle_types.h	2010-12-13 10:24:05 UTC (rev 33633)
+++ trunk/blender/source/blender/makesdna/DNA_particle_types.h	2010-12-13 10:45:24 UTC (rev 33634)
@@ -273,7 +273,7 @@
 		/* for dopesheet */
 #define PART_DS_EXPAND		8
 
-#define PART_HAIR_GEOMETRY	16
+#define PART_HAIR_REGROW	16	/* regrow hair for each frame */
 
 #define PART_UNBORN			32	/*show unborn particles*/
 #define PART_DIED			64	/*show died particles*/

Modified: trunk/blender/source/blender/makesrna/intern/rna_particle.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_particle.c	2010-12-13 10:24:05 UTC (rev 33633)
+++ trunk/blender/source/blender/makesrna/intern/rna_particle.c	2010-12-13 10:45:24 UTC (rev 33634)
@@ -1183,6 +1183,11 @@
 	RNA_def_property_ui_text(prop, "Multi React", "React multiple times");
 	RNA_def_property_update(prop, 0, "rna_Particle_reset");
 
+	prop= RNA_def_property(srna, "regrow_hair", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "flag", PART_HAIR_REGROW);
+	RNA_def_property_ui_text(prop, "Regrow", "Regrow hair for each frame");
+	RNA_def_property_update(prop, 0, "rna_Particle_redo");
+
 	prop= RNA_def_property(srna, "show_unborn", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", PART_UNBORN);
 	RNA_def_property_ui_text(prop, "Unborn", "Show particles before they are emitted");





More information about the Bf-blender-cvs mailing list