171a277e8e69aaf94c13c637deffb3973e19212b
[blender.git] / source / blender / include / BSE_node.h
1 /**
2  * $Id:
3  *
4  * ***** BEGIN GPL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your opt ion) any later version. 
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19  *
20  * The Original Code is Copyright (C) 2005 Blender Foundation.
21  * All rights reserved.
22  *
23  * The Original Code is: all of this file.
24  *
25  * Contributor(s): none yet.
26  *
27  * ***** END GPL BLOCK *****
28  */
29
30 #ifndef BSE_NODE_H
31 #define BSE_NODE_H
32
33 /* ********** drawing sizes *********** */
34 #define NODE_DY         20
35 #define NODE_DYS        10
36 #define NODE_SOCKSIZE   5
37 #define BASIS_RAD       8.0f
38 #define HIDDEN_RAD      15.0f
39
40
41 struct SpaceNode;
42 struct bNode;
43 struct bNodeTree;
44 struct Material;
45 struct ID;
46 struct Scene;
47 struct Image;
48 struct ImageUser;
49
50 /* ************* API for editnode.c *********** */
51
52                         /* helper calls to retreive active context for buttons, does groups */
53 struct Material *editnode_get_active_material(struct Material *ma);
54 struct bNode *editnode_get_active_idnode(struct bNodeTree *ntree, short id_code);
55 struct bNode *editnode_get_active(struct bNodeTree *ntree);
56
57 void snode_tag_dirty(struct SpaceNode *snode);
58
59 void snode_set_context(struct SpaceNode *snode);
60
61 void snode_home(struct ScrArea *sa, struct SpaceNode *snode);
62 void snode_zoom_in(struct ScrArea *sa);
63 void snode_zoom_out(struct ScrArea *sa);
64
65 void node_deselectall(struct SpaceNode *snode, int swap);
66 void node_border_select(struct SpaceNode *snode);
67
68 void node_delete(struct SpaceNode *snode);
69 void node_make_group(struct SpaceNode *snode);
70 void node_ungroup(struct SpaceNode *snode);
71 void snode_make_group_editable(struct SpaceNode *snode, struct bNode *gnode);
72 void node_hide(struct SpaceNode *snode);
73 void node_read_renderlayers(struct SpaceNode *snode);
74 void clear_scene_in_nodes(struct Scene *sce);
75
76 void node_transform_ext(int mode, int unused);
77 void node_shader_default(struct Material *ma);
78 void node_composit_default(struct Scene *scene);
79
80 int node_has_hidden_sockets(struct bNode *node);
81
82 struct bNode *node_add_node(struct SpaceNode *snode, int type, float locx, float locy);
83 void node_adduplicate(struct SpaceNode *snode);
84
85 void snode_autoconnect(struct SpaceNode *snode, struct bNode *node_to, int flag);
86 void node_select_linked(struct SpaceNode *snode, int out);
87
88 struct ImageUser *ntree_get_active_iuser(struct bNodeTree *ntree);
89
90 void imagepaint_composite_tags(struct bNodeTree *ntree, struct Image *image, struct ImageUser *iuser);
91
92
93
94 /* ************* drawnode.c *************** */
95 struct SpaceNode;
96 struct bNodeLink;
97 void node_draw_link(struct SpaceNode *snode, struct bNodeLink *link);
98
99 void init_node_butfuncs(void);
100
101 /* exported to CMP and SHD nodes */
102 //void node_ID_title_cb(void *node_v, void *unused_v);
103 //void node_but_title_cb(void *node_v, void *but_v);
104 //void node_texmap_cb(void *texmap_v, void *unused_v);
105 //void node_new_mat_cb(void *ntree_v, void *node_v);
106 //void node_browse_mat_cb(void *ntree_v, void *node_v);
107 //void node_mat_alone_cb(void *node_v, void *unused);
108
109
110 //void node_browse_image_cb(void *ntree_v, void *node_v);
111 //void node_active_cb(void *ntree_v, void *node_v);
112 //void node_image_type_cb(void *node_v, void *unused);
113 //char *node_image_type_pup(void);
114 //char *layer_menu(struct RenderResult *rr);
115 //void image_layer_cb(void *ima_v, void *iuser_v);
116 //void set_render_layers_title(void *node_v, void *unused);
117 //char *scene_layer_menu(struct Scene *sce);
118 //void node_browse_scene_cb(void *ntree_v, void *node_v);
119
120
121 //int node_buts_curvevec(struct uiBlock *block, struct bNodeTree *ntree, struct bNode *node, struct rctf *butr);
122 //int node_buts_curvecol(struct uiBlock *block, struct bNodeTree *ntree, struct bNode *node, struct rctf *butr);
123 //int node_buts_rgb(struct uiBlock *block, struct bNodeTree *ntree, struct bNode *node, struct rctf *butr);
124 //int node_buts_texture(struct uiBlock *block, struct bNodeTree *ntree, struct bNode *node, struct rctf *butr);
125 //int node_buts_valtorgb(struct uiBlock *block, struct bNodeTree *ntree, struct bNode *node, struct rctf *butr);
126 //int node_buts_value(struct uiBlock *block, struct bNodeTree *ntree, struct bNode *node, struct rctf *butr);
127 //int node_buts_mix_rgb(struct uiBlock *block, struct bNodeTree *ntree, struct bNode *node, struct rctf *butr);
128 //int node_buts_group(struct uiBlock *block, struct bNodeTree *ntree, struct bNode *node, struct rctf *butr);
129 //int node_buts_normal(struct uiBlock *block, struct bNodeTree *ntree, struct bNode *node, struct rctf *butr);
130 //int node_buts_math(struct uiBlock *block, struct bNodeTree *ntree, struct bNode *node, struct rctf *butr) ;
131
132
133 /* ************* Shader nodes ***************** */
134
135
136 #endif
137