[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