[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19091] branches/blender2.5/blender/source /blender: ADR_CODE conversion done for particle systems.

Roland Hess me at harkyman.com
Mon Feb 23 15:55:28 CET 2009


Revision: 19091
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19091
Author:   harkyman
Date:     2009-02-23 15:55:23 +0100 (Mon, 23 Feb 2009)

Log Message:
-----------
ADR_CODE conversion done for particle systems. Fixed typo in particle rna.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_particle.c

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c	2009-02-23 12:35:16 UTC (rev 19090)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c	2009-02-23 14:55:23 UTC (rev 19091)
@@ -743,6 +743,72 @@
 	return NULL;	
 }
 
+/* Particle Types */
+static char *particle_adrcodes_to_paths (int adrcode, int *array_index)
+{
+	/* set array index like this in-case nothing sets it correctly  */
+	*array_index= 0;
+	
+	/* result depends on adrcode */
+	switch (adrcode) {
+		case PART_CLUMP:
+			return "settings.clump_factor";
+		case PART_AVE:
+			return "settings.angular_velocity_factor";
+		case PART_SIZE:
+			return "settings.particle_size";
+		case PART_DRAG:
+			return "settings.drag_factor";
+		case PART_BROWN:
+			return "settings.brownian_factor";
+		case PART_DAMP:
+			return "settings.damp_factor";
+		case PART_LENGTH:
+			return "settings.length";
+		case PART_GRAV_X:
+			*array_index= 0; return "settings.acceleration";
+		case PART_GRAV_Y:
+			*array_index= 1; return "settings.acceleration";
+		case PART_GRAV_Z:
+			*array_index= 2; return "settings.acceleration";
+		case PART_KINK_AMP:
+			return "settings.kink_amplitude";
+		case PART_KINK_FREQ:
+			return "settings.kink_frequency";
+		case PART_KINK_SHAPE:
+			return "settings.kink_shape";
+		case PART_BB_TILT:
+			return "settings.billboard_tilt";
+		
+		/* PartDeflect needs to be sorted out properly in rna_object_force;
+		   If anyone else works on this, but is unfamiliar, these particular
+			settings reference the particles of the system themselves
+			being used as forces -- it will use the same rna structure
+			as the similar object forces				*/
+		/*case PART_PD_FSTR:
+			if (part->pd) poin= &(part->pd->f_strength);
+			break;
+		case PART_PD_FFALL:
+			if (part->pd) poin= &(part->pd->f_power);
+			break;
+		case PART_PD_FMAXD:
+			if (part->pd) poin= &(part->pd->maxdist);
+			break;
+		case PART_PD2_FSTR:
+			if (part->pd2) poin= &(part->pd2->f_strength);
+			break;
+		case PART_PD2_FFALL:
+			if (part->pd2) poin= &(part->pd2->f_power);
+			break;
+		case PART_PD2_FMAXD:
+			if (part->pd2) poin= &(part->pd2->maxdist);
+			break;*/
+
+		}
+		
+	return NULL;	
+}
+
 /* ------- */
 
 /* Allocate memory for RNA-path for some property given a blocktype, adrcode, and 'root' parts of path
@@ -799,6 +865,9 @@
 		
 		case ID_WO: /* world */
 			propname= world_adrcodes_to_paths(adrcode, &dummy_index);
+
+		case ID_PA: /* particle */
+			propname= particle_adrcodes_to_paths(adrcode, &dummy_index);
 			
 		/* XXX problematic blocktypes */
 		case ID_CU: /* curve */
@@ -1641,71 +1710,7 @@
 	*type= IPO_FLOAT;
 
 	/* data is divided into 'blocktypes' based on ID-codes */
-	switch (GS(id->name)) {
-		case ID_PA: /* particle channels -----------------------------  */
-		{
-			ParticleSettings *part= (ParticleSettings *)id;
-			
-			switch (icu->adrcode) {
-			case PART_EMIT_FREQ:
-			case PART_EMIT_LIFE:
-			case PART_EMIT_VEL:
-			case PART_EMIT_AVE:
-			case PART_EMIT_SIZE:
-				poin= NULL; 
-				break;
-			
-			case PART_CLUMP:
-				poin= &(part->clumpfac); break;
-			case PART_AVE:
-				poin= &(part->avefac); break;
-			case PART_SIZE:
-				poin= &(part->size); break;
-			case PART_DRAG:
-				poin= &(part->dragfac); break;
-			case PART_BROWN:
-				poin= &(part->brownfac); break;
-			case PART_DAMP:
-				poin= &(part->dampfac); break;
-			case PART_LENGTH:
-				poin= &(part->length); break;
-			case PART_GRAV_X:
-				poin= &(part->acc[0]); break;
-			case PART_GRAV_Y:
-				poin= &(part->acc[1]); break;
-			case PART_GRAV_Z:
-				poin= &(part->acc[2]); break;
-			case PART_KINK_AMP:
-				poin= &(part->kink_amp); break;
-			case PART_KINK_FREQ:
-				poin= &(part->kink_freq); break;
-			case PART_KINK_SHAPE:
-				poin= &(part->kink_shape); break;
-			case PART_BB_TILT:
-				poin= &(part->bb_tilt); break;
-				
-			case PART_PD_FSTR:
-				if (part->pd) poin= &(part->pd->f_strength);
-				break;
-			case PART_PD_FFALL:
-				if (part->pd) poin= &(part->pd->f_power);
-				break;
-			case PART_PD_FMAXD:
-				if (part->pd) poin= &(part->pd->maxdist);
-				break;
-			case PART_PD2_FSTR:
-				if (part->pd2) poin= &(part->pd2->f_strength);
-				break;
-			case PART_PD2_FFALL:
-				if (part->pd2) poin= &(part->pd2->f_power);
-				break;
-			case PART_PD2_FMAXD:
-				if (part->pd2) poin= &(part->pd2->maxdist);
-				break;
-			}
-		}
-			break;
-	}
+	// all adr codes put into converters!
 
 	/* return pointer */
 	return poin;

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_particle.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_particle.c	2009-02-23 12:35:16 UTC (rev 19090)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_particle.c	2009-02-23 14:55:23 UTC (rev 19091)
@@ -966,7 +966,7 @@
 	RNA_def_property_range(prop, 0.0f, 200.0f);
 	RNA_def_property_ui_text(prop, "Brownian", "Specify the amount of brownian motion");
 
-	prop= RNA_def_property(srna, "damp_factorq", PROP_FLOAT, PROP_NONE);
+	prop= RNA_def_property(srna, "damp_factor", PROP_FLOAT, PROP_NONE);
 	RNA_def_property_float_sdna(prop, NULL, "dampfac");
 	RNA_def_property_range(prop, 0.0f, 1.0f);
 	RNA_def_property_ui_text(prop, "Damp", "Specify the amount of damping");





More information about the Bf-blender-cvs mailing list