[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