[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23237] trunk/blender/source/blender: * Added RNA path functionality to fluidsim modifier settings, to allow keying of fluidsim settings properties.

Matt Ebb matt at mke3.net
Tue Sep 15 05:54:14 CEST 2009


Revision: 23237
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23237
Author:   broken
Date:     2009-09-15 05:54:13 +0200 (Tue, 15 Sep 2009)

Log Message:
-----------
* Added RNA path functionality to fluidsim modifier settings, to allow keying of fluidsim settings properties.

Note: Although the properties can be animated with the RNA system, the values are not exported to the actual fluid sim yet, that can come later.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/fluidsim.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/makesdna/DNA_object_fluidsim.h
    trunk/blender/source/blender/makesrna/intern/rna_fluidsim.c

Modified: trunk/blender/source/blender/blenkernel/intern/fluidsim.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/fluidsim.c	2009-09-14 23:00:58 UTC (rev 23236)
+++ trunk/blender/source/blender/blenkernel/intern/fluidsim.c	2009-09-15 03:54:13 UTC (rev 23237)
@@ -80,6 +80,7 @@
 		if(!fss)
 			return;
 		
+		fss->fmd = fluidmd;
 		fss->type = OB_FLUIDSIM_ENABLE;
 		fss->show_advancedoptions = 0;
 

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2009-09-14 23:00:58 UTC (rev 23236)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2009-09-15 03:54:13 UTC (rev 23237)
@@ -9692,10 +9692,23 @@
 	/* put 2.50 compatibility code here until next subversion bump */
 	{
 		Scene *sce;
+		Object *ob;
 
 		for(sce = main->scene.first; sce; sce = sce->id.next)
 			if(sce->unit.scale_length == 0.0f)
 				sce->unit.scale_length= 1.0f;
+		
+		for(ob = main->object.first; ob; ob = ob->id.next) {
+			ModifierData *md;
+
+			/* add backwards pointer for fluidsim modifier RNA access */
+			for (md=ob->modifiers.first; md; md = md->next) {
+				if (md->type == eModifierType_Fluidsim) {
+					FluidsimModifierData *fluidmd= (FluidsimModifierData*) md;
+					fluidmd->fss->fmd = fluidmd;
+				}
+			}
+		}
 	}
 
 	/* WATCH IT!!!: pointers from libdata have not been converted yet here! */

Modified: trunk/blender/source/blender/makesdna/DNA_object_fluidsim.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_object_fluidsim.h	2009-09-14 23:00:58 UTC (rev 23236)
+++ trunk/blender/source/blender/makesdna/DNA_object_fluidsim.h	2009-09-15 03:54:13 UTC (rev 23237)
@@ -41,6 +41,7 @@
 struct MVert;
 	
 typedef struct FluidsimSettings {
+	struct FluidsimModifierData *fmd; /* for fast RNA access */
 	/* domain,fluid or obstacle */
 	short type;
 	/* display advanced options in fluid sim tab (on=1,off=0)*/

Modified: trunk/blender/source/blender/makesrna/intern/rna_fluidsim.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_fluidsim.c	2009-09-14 23:00:58 UTC (rev 23236)
+++ trunk/blender/source/blender/makesrna/intern/rna_fluidsim.c	2009-09-15 03:54:13 UTC (rev 23237)
@@ -151,6 +151,14 @@
 	return 32;
 }
 
+static char *rna_FluidSettings_path(PointerRNA *ptr)
+{
+	FluidsimSettings *fss = (FluidsimSettings*)ptr->data;
+	ModifierData *md= (ModifierData *)fss->fmd;
+
+	return BLI_sprintfN("modifiers[%s].settings", md->name);
+}
+
 #else
 
 static void rna_def_fluidsim_slip(StructRNA *srna)
@@ -509,6 +517,7 @@
 	srna= RNA_def_struct(brna, "FluidSettings", NULL);
 	RNA_def_struct_sdna(srna, "FluidsimSettings");
 	RNA_def_struct_refine_func(srna, "rna_FluidSettings_refine");
+	RNA_def_struct_path_func(srna, "rna_FluidSettings_path");
 	RNA_def_struct_ui_text(srna, "Fluid Simulation Settings", "Fluid simulation settings for an object taking part in the simulation.");
 
 	prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);





More information about the Bf-blender-cvs mailing list