[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36477] branches/particles-2010/source/ blender: Disabled loop node types registration.

Lukas Toenne lukas.toenne at googlemail.com
Wed May 4 08:45:58 CEST 2011


Revision: 36477
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36477
Author:   lukastoenne
Date:     2011-05-04 06:45:58 +0000 (Wed, 04 May 2011)
Log Message:
-----------
Disabled loop node types registration. While they work nicely on ui level, it is not possible to implement them properly on execution level, because compo/material/texture trees do not support repetition by design. New tree types should be flexible enough to allow such node types.

Modified Paths:
--------------
    branches/particles-2010/source/blender/blenkernel/intern/node.c
    branches/particles-2010/source/blender/editors/space_node/node_header.c

Modified: branches/particles-2010/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/particles-2010/source/blender/blenkernel/intern/node.c	2011-05-04 06:24:33 UTC (rev 36476)
+++ branches/particles-2010/source/blender/blenkernel/intern/node.c	2011-05-04 06:45:58 UTC (rev 36477)
@@ -1984,8 +1984,8 @@
 	register_node_type_frame(ntypelist);
 	
 	register_node_type_group_composite(ntypelist);
-	register_node_type_forloop_composite(ntypelist);
-	register_node_type_whileloop_composite(ntypelist);
+//	register_node_type_forloop_composite(ntypelist);
+//	register_node_type_whileloop_composite(ntypelist);
 	
 	register_node_type_cmp_rlayers(ntypelist);
 	register_node_type_cmp_image(ntypelist);
@@ -2064,8 +2064,8 @@
 	register_node_type_frame(ntypelist);
 	
 	register_node_type_group_shader(ntypelist);
-	register_node_type_forloop_shader(ntypelist);
-	register_node_type_whileloop_shader(ntypelist);
+//	register_node_type_forloop_shader(ntypelist);
+//	register_node_type_whileloop_shader(ntypelist);
 	
 	register_node_type_sh_output(ntypelist);
 	register_node_type_sh_mix_rgb(ntypelist);
@@ -2097,8 +2097,8 @@
 	register_node_type_frame(ntypelist);
 	
 	register_node_type_group_texture(ntypelist);
-	register_node_type_forloop_texture(ntypelist);
-	register_node_type_whileloop_texture(ntypelist);
+//	register_node_type_forloop_texture(ntypelist);
+//	register_node_type_whileloop_texture(ntypelist);
 	
 	register_node_type_tex_math(ntypelist);
 	register_node_type_tex_mix_rgb(ntypelist);

Modified: branches/particles-2010/source/blender/editors/space_node/node_header.c
===================================================================
--- branches/particles-2010/source/blender/editors/space_node/node_header.c	2011-05-04 06:24:33 UTC (rev 36476)
+++ branches/particles-2010/source/blender/editors/space_node/node_header.c	2011-05-04 06:45:58 UTC (rev 36477)
@@ -153,6 +153,17 @@
 }
 #endif
 
+static int node_tree_has_type(int treetype, int nodetype)
+{
+	bNodeTreeType *ttype= ntreeGetType(treetype);
+	bNodeType *ntype;
+	for (ntype=ttype->node_types.first; ntype; ntype=ntype->next) {
+		if (ntype->type==nodetype)
+			return 1;
+	}
+	return 0;
+}
+
 static void node_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclass)
 {
 	Main *bmain= CTX_data_main(C);
@@ -174,9 +185,12 @@
 		uiLayoutSetFunc(layout, do_node_add_group, NULL);
 		
 		/* XXX hack: negative numbers used for empty group types */
-		uiItemV(layout, "-- new group --", 0, -NODE_GROUP);
-		uiItemV(layout, "-- new for loop --", 0, -NODE_FORLOOP);
-		uiItemV(layout, "-- new while loop--", 0, -NODE_WHILELOOP);
+		if (node_tree_has_type(ntree->type, NODE_GROUP))
+			uiItemV(layout, "-- new group --", 0, -NODE_GROUP);
+		if (node_tree_has_type(ntree->type, NODE_FORLOOP))
+			uiItemV(layout, "-- new for loop --", 0, -NODE_FORLOOP);
+		if (node_tree_has_type(ntree->type, NODE_WHILELOOP))
+			uiItemV(layout, "-- new while loop--", 0, -NODE_WHILELOOP);
 		uiItemS(layout);
 		
 		for(ngroup=bmain->nodetree.first, event=0; ngroup; ngroup= ngroup->id.next, ++event) {
@@ -217,7 +231,6 @@
 		uiItemMenuF(layout, "Convertor", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR));
 		uiItemMenuF(layout, "Group", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP));
 		uiItemMenuF(layout, "Dynamic", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_DYNAMIC));
-		uiItemMenuF(layout, "Layout", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_LAYOUT));
 	}
 	else if(snode->treetype==NTREE_COMPOSIT) {
 		uiItemMenuF(layout, "Input", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT));
@@ -229,7 +242,6 @@
 		uiItemMenuF(layout, "Matte", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_MATTE));
 		uiItemMenuF(layout, "Distort", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_DISTORT));
 		uiItemMenuF(layout, "Group", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP));
-		uiItemMenuF(layout, "Layout", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_LAYOUT));
 	}
 	else if(snode->treetype==NTREE_TEXTURE) {
 		uiItemMenuF(layout, "Input", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT));
@@ -240,7 +252,6 @@
 		uiItemMenuF(layout, "Convertor", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR));
 		uiItemMenuF(layout, "Distort", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_DISTORT));
 		uiItemMenuF(layout, "Group", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP));
-		uiItemMenuF(layout, "Layout", 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_LAYOUT));
 	}
 }
 




More information about the Bf-blender-cvs mailing list