[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