[Bf-blender-cvs] [7ace2796962] functions: cleanup pack list node converter

Jacques Lucke noreply at git.blender.org
Mon Apr 1 10:42:19 CEST 2019


Commit: 7ace27969629901cd84cfb77166124fa00e3f2a0
Author: Jacques Lucke
Date:   Mon Apr 1 10:42:13 2019 +0200
Branches: functions
https://developer.blender.org/rB7ace27969629901cd84cfb77166124fa00e3f2a0

cleanup pack list node converter

===================================================================

M	source/blender/functions/frontends/data_flow_nodes/inserters/nodes.cpp

===================================================================

diff --git a/source/blender/functions/frontends/data_flow_nodes/inserters/nodes.cpp b/source/blender/functions/frontends/data_flow_nodes/inserters/nodes.cpp
index 2c758fdb23a..d18e0824839 100644
--- a/source/blender/functions/frontends/data_flow_nodes/inserters/nodes.cpp
+++ b/source/blender/functions/frontends/data_flow_nodes/inserters/nodes.cpp
@@ -83,21 +83,22 @@ namespace FN { namespace DataFlowNodes {
 		builder.map_sockets(node, bnode);
 	}
 
-	static void insert_pack_list_node(
+	static Socket insert_pack_list_sockets(
 		Builder &builder,
 		const BuilderContext ctx,
-		bNode *bnode)
+		bNode *bnode,
+		SharedType &base_type,
+		const char *prop_name,
+		uint start_index)
 	{
-		SharedType &base_type = ctx.type_from_rna(bnode, "active_type");
-
 		auto &empty_fn = Functions::empty_list(base_type);
 		Node *node = builder.insert_function(empty_fn, ctx.btree(), bnode);
 
 		PointerRNA ptr;
 		ctx.get_rna(bnode, &ptr);
 
-		int index = 0;
-		RNA_BEGIN(&ptr, itemptr, "variadic")
+		uint index = start_index;
+		RNA_BEGIN(&ptr, itemptr, prop_name)
 		{
 			Node *new_node;
 			int state = RNA_enum_get(&itemptr, "state");
@@ -124,7 +125,18 @@ namespace FN { namespace DataFlowNodes {
 		}
 		RNA_END;
 
-		builder.map_output(node->output(0), bnode, 0);
+		return node->output(0);
+	}
+
+	static void insert_pack_list_node(
+		Builder &builder,
+		const BuilderContext ctx,
+		bNode *bnode)
+	{
+		SharedType &base_type = ctx.type_from_rna(bnode, "active_type");
+		Socket packed_list_socket = insert_pack_list_sockets(
+			builder, ctx, bnode, base_type, "variadic", 0);
+		builder.map_output(packed_list_socket, bnode, 0);
 	}
 
 	static void insert_call_node(



More information about the Bf-blender-cvs mailing list