[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55898] trunk/blender/source/blender: Exposed the bNodeSocket->limit value in RNA, so it can be redefined by pynodes.

Lukas Toenne lukas.toenne at googlemail.com
Mon Apr 8 10:59:30 CEST 2013


Revision: 55898
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55898
Author:   lukastoenne
Date:     2013-04-08 08:59:30 +0000 (Mon, 08 Apr 2013)
Log Message:
-----------
Exposed the bNodeSocket->limit value in RNA, so it can be redefined by pynodes. All sockets will have strict n-to-1 connectivity by default, which is fine for data sockets, but things like geometry nodes with a more data-flow based connectivity for certain socket types will need to change this.

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_nodetree.c
    trunk/blender/source/blender/nodes/intern/node_socket.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_nodetree.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_nodetree.c	2013-04-08 08:43:16 UTC (rev 55897)
+++ trunk/blender/source/blender/makesrna/intern/rna_nodetree.c	2013-04-08 08:59:30 UTC (rev 55898)
@@ -2008,6 +2008,12 @@
 	ED_node_tag_update_nodetree(bmain, ntree);
 }
 
+static void rna_NodeSocket_link_limit_set(PointerRNA *ptr, int value)
+{
+	bNodeSocket *sock = ptr->data;
+	sock->limit = (value == 0 ? 0xFFF : value);
+}
+
 static void rna_NodeSocket_hide_set(PointerRNA *ptr, int value)
 {
 	bNodeSocket *sock = (bNodeSocket *)ptr->data;
@@ -5893,6 +5899,13 @@
 	RNA_def_property_ui_text(prop, "Enabled", "Enable the socket");
 	RNA_def_property_update(prop, NC_NODE | ND_DISPLAY, NULL);
 
+	prop = RNA_def_property(srna, "link_limit", PROP_INT, PROP_NONE);
+	RNA_def_property_int_sdna(prop, NULL, "limit");
+	RNA_def_property_int_funcs(prop, NULL, "rna_NodeSocket_link_limit_set", NULL);
+	RNA_def_property_range(prop, 1, 0xFFF);
+	RNA_def_property_ui_text(prop, "Link Limit", "Max number of links allowed for this socket");
+	RNA_def_property_update(prop, NC_NODE | NA_EDITED, NULL);
+
 	prop = RNA_def_property(srna, "is_linked", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", SOCK_IN_USE);
 	RNA_def_property_clear_flag(prop, PROP_EDITABLE);

Modified: trunk/blender/source/blender/nodes/intern/node_socket.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/node_socket.c	2013-04-08 08:43:16 UTC (rev 55897)
+++ trunk/blender/source/blender/nodes/intern/node_socket.c	2013-04-08 08:59:30 UTC (rev 55898)
@@ -111,8 +111,7 @@
 	}
 	if (sock) {
 		sock->type = stemp->type;
-		if (stemp->limit == 0) sock->limit= 0xFFF;
-		else sock->limit = stemp->limit;
+		sock->limit = (stemp->limit == 0 ? 0xFFF : stemp->limit);
 		sock->flag |= stemp->flag;
 		
 		BLI_remlink(socklist, sock);




More information about the Bf-blender-cvs mailing list