[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31261] branches/particles-2010/source/ blender: Fixed a bug in output streams causing the fill value get too high.
Lukas Toenne
lukas.toenne at googlemail.com
Wed Aug 11 19:40:43 CEST 2010
Revision: 31261
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31261
Author: lukastoenne
Date: 2010-08-11 19:40:43 +0200 (Wed, 11 Aug 2010)
Log Message:
-----------
Fixed a bug in output streams causing the fill value get too high.
Modified Paths:
--------------
branches/particles-2010/source/blender/blenkernel/BKE_node.h
branches/particles-2010/source/blender/blenkernel/intern/node.c
branches/particles-2010/source/blender/editors/space_node/drawnode.c
branches/particles-2010/source/blender/makesrna/intern/rna_nodetree.c
branches/particles-2010/source/blender/makesrna/intern/rna_nodetree_types.h
branches/particles-2010/source/blender/nodes/SIM_node.h
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_add_particle.c
branches/particles-2010/source/blender/nodes/intern/SIM_util.c
Modified: branches/particles-2010/source/blender/blenkernel/BKE_node.h
===================================================================
--- branches/particles-2010/source/blender/blenkernel/BKE_node.h 2010-08-11 17:37:22 UTC (rev 31260)
+++ branches/particles-2010/source/blender/blenkernel/BKE_node.h 2010-08-11 17:40:43 UTC (rev 31261)
@@ -523,6 +523,7 @@
#define SIM_NODE_SETOBJECTDATA 752
#define SIM_NODE_GETVERTEXDATA 753
#define SIM_NODE_SETVERTEXDATA 754
+#define SIM_NODE_ADDPARTICLE 755
/* TO BE REMOVED: debugging stuff, testing, etc. */
#define SIM_NODE_DEBUGPRINT 801
Modified: branches/particles-2010/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/particles-2010/source/blender/blenkernel/intern/node.c 2010-08-11 17:37:22 UTC (rev 31260)
+++ branches/particles-2010/source/blender/blenkernel/intern/node.c 2010-08-11 17:40:43 UTC (rev 31261)
@@ -2846,6 +2846,7 @@
nodeRegisterType(ntypelist, &sim_node_setobjectdata);
nodeRegisterType(ntypelist, &sim_node_getvertexdata);
nodeRegisterType(ntypelist, &sim_node_setvertexdata);
+ nodeRegisterType(ntypelist, &sim_node_addparticle);
nodeRegisterType(ntypelist, &sim_node_debugprint);
}
Modified: branches/particles-2010/source/blender/editors/space_node/drawnode.c
===================================================================
--- branches/particles-2010/source/blender/editors/space_node/drawnode.c 2010-08-11 17:37:22 UTC (rev 31260)
+++ branches/particles-2010/source/blender/editors/space_node/drawnode.c 2010-08-11 17:40:43 UTC (rev 31261)
@@ -1297,6 +1297,15 @@
uiItemR(col, ptr, "object", 0, NULL, 0);
}
+static void node_simulation_buts_addparticle(uiLayout *layout, bContext *C, PointerRNA *ptr)
+{
+// bNode *node= ptr->data;
+ uiLayout *col;
+
+ col= uiLayoutColumn(layout, 0);
+ uiItemR(col, ptr, "object", 0, NULL, 0);
+}
+
/* only once called */
static void node_simulation_set_butfunc(bNodeType *ntype)
{
@@ -1313,6 +1322,9 @@
case SIM_NODE_SETVERTEXDATA:
ntype->uifunc = node_simulation_buts_setvertexdata;
break;
+ case SIM_NODE_ADDPARTICLE:
+ ntype->uifunc = node_simulation_buts_addparticle;
+ break;
default:
ntype->uifunc= NULL;
Modified: branches/particles-2010/source/blender/makesrna/intern/rna_nodetree.c
===================================================================
--- branches/particles-2010/source/blender/makesrna/intern/rna_nodetree.c 2010-08-11 17:37:22 UTC (rev 31260)
+++ branches/particles-2010/source/blender/makesrna/intern/rna_nodetree.c 2010-08-11 17:40:43 UTC (rev 31261)
@@ -2122,6 +2122,18 @@
RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
}
+static void def_sim_addparticle(StructRNA *srna)
+{
+ PropertyRNA *prop;
+
+ prop = RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "id");
+ RNA_def_property_struct_type(prop, "Object");
+ RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_ui_text(prop, "Object", "");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+}
+
/* -------------------------------------------------------------------------- */
static EnumPropertyItem shader_node_type_items[MaxNodes];
Modified: branches/particles-2010/source/blender/makesrna/intern/rna_nodetree_types.h
===================================================================
--- branches/particles-2010/source/blender/makesrna/intern/rna_nodetree_types.h 2010-08-11 17:37:22 UTC (rev 31260)
+++ branches/particles-2010/source/blender/makesrna/intern/rna_nodetree_types.h 2010-08-11 17:40:43 UTC (rev 31261)
@@ -161,5 +161,6 @@
DefNode( SimulationNode, SIM_NODE_SETOBJECTDATA, def_sim_setobjectdata, "SETOBJECTDATA", SetObjectData, "Set Object Data", "" )
DefNode( SimulationNode, SIM_NODE_GETVERTEXDATA, def_sim_getvertexdata, "GETVERTEXDATA", GetVertexData, "Get Vertex Data", "" )
DefNode( SimulationNode, SIM_NODE_SETVERTEXDATA, def_sim_setvertexdata, "SETVERTEXDATA", SetVertexData, "Set Vertex Data", "" )
+DefNode( SimulationNode, SIM_NODE_ADDPARTICLE, def_sim_addparticle, "ADDPARTICLE", AddParticle, "Add Particle", "" )
DefNode( SimulationNode, SIM_NODE_TIMESTEP, 0, "TIMESTEP", TimeStep, "Time Step", "" )
DefNode( SimulationNode, SIM_NODE_DEBUGPRINT, 0, "DEBUGPRINT", DebugPrint, "Debug Print", "" )
Modified: branches/particles-2010/source/blender/nodes/SIM_node.h
===================================================================
--- branches/particles-2010/source/blender/nodes/SIM_node.h 2010-08-11 17:37:22 UTC (rev 31260)
+++ branches/particles-2010/source/blender/nodes/SIM_node.h 2010-08-11 17:40:43 UTC (rev 31261)
@@ -69,6 +69,7 @@
extern bNodeType sim_node_setobjectdata;
extern bNodeType sim_node_getvertexdata;
extern bNodeType sim_node_setvertexdata;
+extern bNodeType sim_node_addparticle;
extern bNodeType sim_node_debugprint;
Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_add_particle.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_add_particle.c 2010-08-11 17:37:22 UTC (rev 31260)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_add_particle.c 2010-08-11 17:40:43 UTC (rev 31261)
@@ -26,35 +26,52 @@
*/
-#if 0
#include "../SIM_util.h"
#include "DNA_object_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
+#include "DNA_particleset_types.h"
+#include "BKE_particleset.h"
+
#include "RNA_access.h"
-/* **************** Get mesh vertex data ******************** */
+/* **************** Create a new particle ******************** */
static bNodeSocketType inputs[]= {
+ { SOCK_OP, 1, "OnCreate", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f },
{ -1, 0, "" }
};
static bNodeSocketType outputs[]= {
- { SOCK_VECTOR, 0, "Position", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, NDC_VERTEX },
+ { SOCK_OP, 0, "Exec", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f },
{ -1, 0, "" }
};
static int exec(SimNodeThreadContext *ctx, SimNodeJob *job)
{
+
+
return NODE_EXEC_FINISHED;
}
-bNodeType sim_node_getvertexdata= {
+static int opexec(SimNodeThreadContext *ctx, bNode *node, int level, int *r_opsock)
+{
+ SimNodeDataStream ostream[1];
+ Object *ob = (Object*)node->id;
+
+ if (ob && ob->type == OB_PSET) {
+ ParticleSet *pset = (ParticleSet*)ob->data;
+
+ pset_create_particles(pset, ctx->sim->cfra, 1);
+ *r_opsock = 0;
+ }
+ return NODE_EXEC_FINISHED;
+}
+
+bNodeType sim_node_addparticle= {
/* *next,*prev */ NULL, NULL,
- /* type code */ SIM_NODE_GETVERTEXDATA,
- /* name */ "GetVertexData",
+ /* type code */ SIM_NODE_ADDPARTICLE,
+ /* name */ "AddParticle",
/* width+range */ 140, 100, 320,
/* class+opts */ NODE_CLASS_SIMULATION, NODE_OPTIONS,
/* input sock */ inputs,
@@ -69,6 +86,5 @@
/* pynode, pydict */ NULL, NULL,
/* gpufunc */ NULL,
/* sim_exec */ exec,
- /* sim_opexec */ NULL
+ /* sim_opexec */ opexec
};
-#endif
Modified: branches/particles-2010/source/blender/nodes/intern/SIM_util.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_util.c 2010-08-11 17:37:22 UTC (rev 31260)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_util.c 2010-08-11 17:40:43 UTC (rev 31261)
@@ -230,7 +230,8 @@
batch->filter = NULL;
batch->flag = NODE_DATA_EXTERNAL; /* using bNodeSocket members */
batch->start = 0;
- batch->fill = batch->totdata = 1;
+ batch->totdata = 1;
+ batch->fill = 0;
batch->branches_done = 0; /* not used */
}
@@ -374,9 +375,6 @@
else {
sim_init_collection_batch(stream->batch, stream->sock->datatype, start, ctx->sim->ntmd->batchsize, 0);
stream->valid = (stream->batch->totdata > 0);
- if (stream->valid) {
- ++stream->batch->fill;
- }
}
stream->datasize = sim_get_data_size(stream->sock->datatype);
stream->current = 0;
@@ -412,12 +410,12 @@
int i, total=stream->total, valid = 1;
for (i=0; i < total; ++i, ++stream) {
++stream->current;
+ ++stream->batch->fill;
stream->valid = (stream->valid && stream->current < stream->batch->totdata);
if (stream->valid) {
stream->data = (char*)stream->data + stream->datasize;
if (stream->filter)
++stream->filter;
- ++stream->batch->fill;
}
else {
valid = 0;
More information about the Bf-blender-cvs
mailing list