[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31502] branches/particles-2010/source/ blender: Removed type enum for particle properties, these are now identified by just the name.

Lukas Toenne lukas.toenne at googlemail.com
Sat Aug 21 18:11:49 CEST 2010


Revision: 31502
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31502
Author:   lukastoenne
Date:     2010-08-21 18:11:49 +0200 (Sat, 21 Aug 2010)

Log Message:
-----------
Removed type enum for particle properties, these are now identified by just the name.
Added missing SOCK_FLOAT handling for some nodes.
Improved debug print in the job execution macros.

Modified Paths:
--------------
    branches/particles-2010/source/blender/blenkernel/BKE_particleset.h
    branches/particles-2010/source/blender/blenkernel/intern/particleset.c
    branches/particles-2010/source/blender/editors/particleset/particleset_edit.c
    branches/particles-2010/source/blender/makesdna/DNA_particleset_types.h
    branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_filter.c
    branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_for.c
    branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_get_particle_data.c
    branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_if.c
    branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_pass.c
    branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_set_particle_data.c
    branches/particles-2010/source/blender/nodes/intern/SIM_util.h
    branches/particles-2010/source/blender/nodes/intern/node_tree_simulation.c

Modified: branches/particles-2010/source/blender/blenkernel/BKE_particleset.h
===================================================================
--- branches/particles-2010/source/blender/blenkernel/BKE_particleset.h	2010-08-21 12:52:10 UTC (rev 31501)
+++ branches/particles-2010/source/blender/blenkernel/BKE_particleset.h	2010-08-21 16:11:49 UTC (rev 31502)
@@ -37,11 +37,10 @@
 
 /* attribute management */
 extern struct ParticlePropertyInfo pset_std_properties[];
-struct ParticlePropertyInfo *pset_stdproperty_get_info(enum eParticleStdProperty type);
 
 struct ParticlePropertyInfo *pset_find_particle_property(struct ParticleSet *pset, const char *name);
 
-struct ParticlePropertyInfo *pset_property_add(struct ParticleSet *pset, eParticleStdProperty type);
+struct ParticlePropertyInfo *pset_property_add(struct ParticleSet *pset, char *name);
 int pset_property_remove(struct ParticleSet *pset, int index);
 int pset_property_moveup(struct ParticleSet *pset, int index);
 int pset_property_movedown(struct ParticleSet *pset, int index);

Modified: branches/particles-2010/source/blender/blenkernel/intern/particleset.c
===================================================================
--- branches/particles-2010/source/blender/blenkernel/intern/particleset.c	2010-08-21 12:52:10 UTC (rev 31501)
+++ branches/particles-2010/source/blender/blenkernel/intern/particleset.c	2010-08-21 16:11:49 UTC (rev 31502)
@@ -110,17 +110,6 @@
 	#endif
 }
 
-ParticlePropertyInfo *pset_stdproperty_get_info(eParticleStdProperty type)
-{
-	if(type >= 0 && type < NUM_PARPROP &&
-	   particle_std_properties[type].name[0] != '\0') {
-		return particle_std_properties + type;
-	}
-	else {
-		return NULL;
-	}
-}
-
 ParticlePropertyInfo *pset_find_particle_property(struct ParticleSet *pset, const char *name)
 {
 	ParticlePropertyInfo *propinfo;
@@ -185,17 +174,17 @@
 	}
 }
 
-ParticlePropertyInfo *pset_property_add(ParticleSet *pset, eParticleStdProperty type)
+ParticlePropertyInfo *pset_property_add(ParticleSet *pset, char *name)
 {
-	ParticlePropertyInfo *propinfo, *propexist, *nproperties;
+	ParticlePropertyInfo *propinfo, *nproperties;
 	
-	propinfo = pset_stdproperty_get_info(type);
-	if (!propinfo)
-		return NULL;
+	propinfo = pset_find_particle_property(pset, name);
+	if (propinfo)
+		return propinfo;
 	
-	propexist = pset_find_particle_property(pset, propinfo->name);
-	if (propexist)
-		return propexist;
+	for (propinfo=particle_std_properties; strcmp(propinfo->name, name) != 0; ++propinfo)
+		if (propinfo->name[0] == '\0')
+			return NULL;
 	
 	/* construct new property array */
 	nproperties = MEM_callocN((pset->totprop + 1) * sizeof(ParticlePropertyInfo), "ParticlePropertyInfo");
@@ -300,12 +289,10 @@
 
 static void pset_add_default_properties(ParticleSet *pset)
 {
-	eParticleStdProperty stdprop;
 	ParticlePropertyInfo *propinfo;
-	for (stdprop=0; stdprop != NUM_PARPROP; ++stdprop) {
-		propinfo = pset_stdproperty_get_info(stdprop);
-		if (propinfo && (propinfo->flag & PARPROP_DEFAULT) != 0) {
-			pset_property_add(pset, stdprop);
+	for (propinfo=particle_std_properties; propinfo->name[0] != '\0'; ++propinfo) {
+		if ((propinfo->flag & PARPROP_DEFAULT) != 0) {
+			pset_property_add(pset, propinfo->name);
 		}
 	}
 }

Modified: branches/particles-2010/source/blender/editors/particleset/particleset_edit.c
===================================================================
--- branches/particles-2010/source/blender/editors/particleset/particleset_edit.c	2010-08-21 12:52:10 UTC (rev 31501)
+++ branches/particles-2010/source/blender/editors/particleset/particleset_edit.c	2010-08-21 16:11:49 UTC (rev 31502)
@@ -163,7 +163,7 @@
 		return OPERATOR_CANCELLED;
 	pset = (ParticleSet*)ob->data;
 
-	if (!pset_property_add(pset, type));
+	if (!pset_property_add(pset, particle_std_properties[type].name));
 		return OPERATOR_CANCELLED;
 
 	WM_event_add_notifier(C, NC_OBJECT|ND_DATA, ob);

Modified: branches/particles-2010/source/blender/makesdna/DNA_particleset_types.h
===================================================================
--- branches/particles-2010/source/blender/makesdna/DNA_particleset_types.h	2010-08-21 12:52:10 UTC (rev 31501)
+++ branches/particles-2010/source/blender/makesdna/DNA_particleset_types.h	2010-08-21 16:11:49 UTC (rev 31502)
@@ -71,15 +71,6 @@
 
 extern ParticlePropertyInfo particle_std_properties[];
 
-typedef enum eParticleStdProperty {
-	PARPROP_POSITION = 0,
-	PARPROP_VELOCITY,
-	PARPROP_MASS,
-	
-	PARPROP_CUSTOM,
-	NUM_PARPROP
-} eParticleStdProperty;
-
 typedef struct NParticle {
 	int number;
 	char alive;

Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_filter.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_filter.c	2010-08-21 12:52:10 UTC (rev 31501)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_filter.c	2010-08-21 16:11:49 UTC (rev 31502)
@@ -52,6 +52,14 @@
 	switch (job->node->outputs[0].datatype) {
 	case SOCK_OP:
 		break;
+	case SOCK_FLOAT:
+		SIM_JOBEXEC_BEGIN(ctx, job, istream, ostream);
+		if (sim_istream_read_bool(istream, 0))
+			sim_ostream_filter(ostream, 0);
+		else
+			sim_ostream_write_float(ostream, 0, sim_istream_read_float(istream, 1));
+		SIM_JOBEXEC_END(ctx, job)
+		break;
 	case SOCK_INT:
 		SIM_JOBEXEC_BEGIN(ctx, job, istream, ostream);
 		if (sim_istream_read_bool(istream, 0))

Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_for.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_for.c	2010-08-21 12:52:10 UTC (rev 31501)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_for.c	2010-08-21 16:11:49 UTC (rev 31502)
@@ -34,7 +34,7 @@
  */
 
 static bNodeSocketType inputs[]= { 
-	{ SOCK_INT, 1, "Iterations", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0, NDC_SINGLETON },
+	{ SOCK_INT, 1, "Iterations", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f, 0, NDC_SINGLETON },
 	{ SOCK_OP, 1, "Op", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0, NDC_SINGLETON },
 	{ -1, 0, "" }
 };

Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_get_particle_data.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_get_particle_data.c	2010-08-21 12:52:10 UTC (rev 31501)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_get_particle_data.c	2010-08-21 16:11:49 UTC (rev 31502)
@@ -52,7 +52,7 @@
 
 static int exec(SimNodeThreadContext *ctx, SimNodeJob *job)
 {
-	SimNodeDataStream ostream[4];
+	SimNodeDataStream ostream[5];
 	Object *ob = (Object*)job->node->node->id;
 	
 	if (ob && ob->type == OB_PSET) {
@@ -74,7 +74,7 @@
 		if (propmass)
 			sim_ostream_write_float(ostream, 3, *(float*)pset_parprop(pit.pa, propmass));
 		if (propinit)
-			sim_ostream_write_float(ostream, 4, *(char*)pset_parprop(pit.pa, propinit));
+			sim_ostream_write_bool(ostream, 4, *(char*)pset_parprop(pit.pa, propinit));
 		pit_next(&pit);
 		SIM_JOBEXEC_INPUT_END(ctx, job)
 		if (pit.pa != NULL)

Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_if.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_if.c	2010-08-21 12:52:10 UTC (rev 31501)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_if.c	2010-08-21 16:11:49 UTC (rev 31502)
@@ -56,6 +56,14 @@
 		job->node->node->custom1 = sim_istream_read_bool(istream, 0);
 		SIM_JOBEXEC_OUTPUT_END(ctx, job)
 		break;
+	case SOCK_FLOAT:
+		SIM_JOBEXEC_BEGIN(ctx, job, istream, ostream);
+		if (sim_istream_read_bool(istream, 0))
+			sim_ostream_write_float(ostream, 0, sim_istream_read_float(istream, 1));
+		else
+			sim_ostream_write_float(ostream, 0, sim_istream_read_float(istream, 2));
+		SIM_JOBEXEC_END(ctx, job)
+		break;
 	case SOCK_INT:
 		SIM_JOBEXEC_BEGIN(ctx, job, istream, ostream);
 		if (sim_istream_read_bool(istream, 0))

Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_pass.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_pass.c	2010-08-21 12:52:10 UTC (rev 31501)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_pass.c	2010-08-21 16:11:49 UTC (rev 31502)
@@ -48,6 +48,11 @@
 	switch (job->node->outputs[0].datatype) {
 	case SOCK_OP:
 		break;
+	case SOCK_FLOAT:
+		SIM_JOBEXEC_BEGIN(ctx, job, istream, ostream);
+		sim_ostream_write_float(ostream, 0, sim_istream_read_float(istream, 0));
+		SIM_JOBEXEC_END(ctx, job)
+		break;
 	case SOCK_INT:
 		SIM_JOBEXEC_BEGIN(ctx, job, istream, ostream);
 		sim_ostream_write_int(ostream, 0, sim_istream_read_int(istream, 0));

Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_set_particle_data.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_set_particle_data.c	2010-08-21 12:52:10 UTC (rev 31501)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_set_particle_data.c	2010-08-21 16:11:49 UTC (rev 31502)
@@ -54,7 +54,7 @@
 
 static int exec(SimNodeThreadContext *ctx, SimNodeJob *job)
 {
-	SimNodeDataStream istream[4];
+	SimNodeDataStream istream[5];
 	Object *ob = (Object*)job->node->node->id;
 	
 	if (ob && ob->type == OB_PSET) {

Modified: branches/particles-2010/source/blender/nodes/intern/SIM_util.h
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_util.h	2010-08-21 12:52:10 UTC (rev 31501)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_util.h	2010-08-21 16:11:49 UTC (rev 31502)
@@ -183,14 +183,20 @@
 void sim_ostream_write_rgba(struct SimNodeDataStream *stream, int sock, float *value);
 
 
-#if 1
+#if 0
+#define SIM_JOBEXEC_DEBUGPRINT_BEGIN \
+	printf("-> Node %s: ", job->node->node->name);
 #define SIM_JOBEXEC_DEBUGPRINT \
-	if (i == 0) printf("-> Node %s: %d", job->node->node->name, job->current); \
-	else if (i < 3) printf(", %d", job->current); \
-	else if (i == 3) printf(", ...");
+	printf(", %d", job->current);
+#define SIM_JOBEXEC_DEBUGPRINT_FILTER \
+	if (sim_istream_isfiltered(istream)) \
+		printf(", (%d)", job->current); \
+	else \

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list