[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