[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21053] branches/blender2.5/blender: Particle system parenting

Janne Karhu jhkarh at utu.fi
Sun Jun 21 13:09:16 CEST 2009


Revision: 21053
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21053
Author:   jhk
Date:     2009-06-21 13:09:16 +0200 (Sun, 21 Jun 2009)

Log Message:
-----------
Particle system parenting
* Allows moving, rotating & scaling of particle simulations.
* Setting in particle render options.
* Changes viewed & rendered particles from global space to parent space.
* Doesn't effect simulations at all.

Modified Paths:
--------------
    branches/blender2.5/blender/release/ui/buttons_particle.py
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_particle_types.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_particle.c
    branches/blender2.5/blender/source/blender/render/intern/source/convertblender.c

Modified: branches/blender2.5/blender/release/ui/buttons_particle.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_particle.py	2009-06-21 11:08:30 UTC (rev 21052)
+++ branches/blender2.5/blender/release/ui/buttons_particle.py	2009-06-21 11:09:16 UTC (rev 21053)
@@ -288,7 +288,9 @@
 		psys = context.particle_system
 		part = psys.settings
 		
-		layout.itemR(part, "material")
+		row = layout.row()
+		row.itemR(part, "material")
+		row.itemR(psys, "parent");
 		
 		split = layout.split()
 			

Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c	2009-06-21 11:08:30 UTC (rev 21052)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c	2009-06-21 11:09:16 UTC (rev 21053)
@@ -3239,6 +3239,9 @@
 			if(draw_as!=PART_DRAW_PATH){
 				state.time=cfra;
 				if(psys_get_particle_state(scene,ob,psys,a,&state,0)){
+					if(psys->parent)
+						Mat4MulVecfl(psys->parent->obmat, state.co);
+
 					/* create actiual particle data */
 					switch(draw_as){
 						case PART_DRAW_DOT:

Modified: branches/blender2.5/blender/source/blender/makesdna/DNA_particle_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesdna/DNA_particle_types.h	2009-06-21 11:08:30 UTC (rev 21052)
+++ branches/blender2.5/blender/source/blender/makesdna/DNA_particle_types.h	2009-06-21 11:09:16 UTC (rev 21053)
@@ -192,6 +192,7 @@
 	struct Object *target_ob;
 	struct Object *keyed_ob;
 	struct Object *lattice;
+	struct Object *parent;					/* particles from global space -> parent space */
 
 	struct ListBase effectors, reactevents;	/* runtime */
 	

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_particle.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_particle.c	2009-06-21 11:08:30 UTC (rev 21052)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_particle.c	2009-06-21 11:09:16 UTC (rev 21053)
@@ -1715,6 +1715,14 @@
 	RNA_def_property_pointer_sdna(prop, NULL, "pointcache");
 	RNA_def_property_struct_type(prop, "PointCache");
 	RNA_def_property_ui_text(prop, "Point Cache", "");
+
+	/* offset ob */
+	prop= RNA_def_property(srna, "parent", PROP_POINTER, PROP_NONE);
+	RNA_def_property_pointer_sdna(prop, NULL, "parent");
+	RNA_def_property_flag(prop, PROP_EDITABLE);
+	RNA_def_property_ui_text(prop, "Parent", "Use this object's coordinate system instead of global coordinate system.");
+	RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Particle_redo");
+
 }
 
 void RNA_def_particle(BlenderRNA *brna)

Modified: branches/blender2.5/blender/source/blender/render/intern/source/convertblender.c
===================================================================
--- branches/blender2.5/blender/source/blender/render/intern/source/convertblender.c	2009-06-21 11:08:30 UTC (rev 21052)
+++ branches/blender2.5/blender/source/blender/render/intern/source/convertblender.c	2009-06-21 11:09:16 UTC (rev 21053)
@@ -1886,6 +1886,9 @@
 			if(psys_get_particle_state(re->scene,ob,psys,a,&state,0)==0)
 				continue;
 
+			if(psys->parent)
+				Mat4MulVecfl(psys->parent->obmat, state.co);
+
 			VECCOPY(loc,state.co);
 			if(part->ren_as!=PART_DRAW_BB)
 				MTC_Mat4MulVecfl(re->viewmat,loc);





More information about the Bf-blender-cvs mailing list