|
Blender
V2.59
|
#include <math.h>#include <stdio.h>#include <string.h>#include "MEM_guardedalloc.h"#include "DNA_node_types.h"#include "DNA_material_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_space_types.h"#include "DNA_screen_types.h"#include "BLI_math.h"#include "BLI_blenlib.h"#include "BLI_threads.h"#include "BLI_utildefines.h"#include "BKE_context.h"#include "BKE_depsgraph.h"#include "BKE_main.h"#include "BKE_node.h"#include "BIF_gl.h"#include "BIF_glutil.h"#include "WM_api.h"#include "WM_types.h"#include "ED_node.h"#include "ED_gpencil.h"#include "UI_interface.h"#include "UI_interface_icons.h"#include "UI_resources.h"#include "UI_view2d.h"#include "RNA_access.h"#include "CMP_node.h"#include "SHD_node.h"#include "node_intern.h"Go to the source code of this file.
Classes | |
| struct | SocketVectorMenuArgs |
Defines | |
| #define | NODE_GROUP_FRAME 120 |
Typedefs | |
| typedef struct SocketVectorMenuArgs | SocketVectorMenuArgs |
Functions | |
| void | ui_dropshadow (rctf *rct, float radius, float aspect, int select) |
| void | ED_node_changed_update (ID *id, bNode *node) |
| static int | has_nodetree (bNodeTree *ntree, bNodeTree *lookup) |
| void | ED_node_generic_update (Main *bmain, bNodeTree *ntree, bNode *node) |
| static void | do_node_internal_buttons (bContext *C, void *node_v, int event) |
| static void | node_scaling_widget (int color_id, float aspect, float xmin, float ymin, float xmax, float ymax) |
| static void | node_uiblocks_init (const bContext *C, bNodeTree *ntree) |
| static void | node_update (const bContext *C, bNodeTree *ntree, bNode *node) |
| static void | node_update_hidden (bNode *node) |
| static int | node_get_colorid (bNode *node) |
| static void | node_update_group (const bContext *C, bNodeTree *UNUSED(ntree), bNode *gnode) |
| static void | node_draw_mute_line (View2D *v2d, SpaceNode *snode, bNode *node) |
| static void | circle_draw (float x, float y, float size, int col[3]) |
| static void | socket_circle_draw (bNodeSocket *sock, float size) |
| static void | node_sync_cb (bContext *UNUSED(C), void *snode_v, void *node_v) |
| static void | node_draw_preview (bNodePreview *preview, rctf *prv) |
| static uiBlock * | socket_vector_menu (bContext *C, ARegion *ar, void *args_v) |
| static void | node_draw_socket_button (bNodeTree *ntree, bNodeSocket *sock, const char *name, uiBlock *block, int x, int y, int width, uiButHandleFunc cb, void *arg1, void *arg2) |
| static void | node_draw_basis (const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree, bNode *node) |
| static void | node_draw_hidden (const bContext *C, ARegion *ar, SpaceNode *snode, bNode *node) |
| static void | node_draw_nodetree (const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree) |
| static void | group_verify_cb (bContext *UNUSED(C), void *UNUSED(snode_v), void *ngroup_v) |
| static void | node_draw_group (const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree, bNode *gnode) |
| void | drawnodespace (const bContext *C, ARegion *ar, View2D *v2d) |
Definition in file node_draw.c.
| #define NODE_GROUP_FRAME 120 |
Definition at line 79 of file node_draw.c.
Referenced by node_draw_group(), and node_update_group().
| typedef struct SocketVectorMenuArgs SocketVectorMenuArgs |
| static void circle_draw | ( | float | x, |
| float | y, | ||
| float | size, | ||
| int | col[3] | ||
| ) | [static] |
Definition at line 517 of file node_draw.c.
Referenced by socket_circle_draw().
| static void do_node_internal_buttons | ( | bContext * | C, |
| void * | node_v, | ||
| int | event | ||
| ) | [static] |
Definition at line 149 of file node_draw.c.
References B_NODE_EXEC, CTX_wm_space_node(), ED_node_changed_update(), and SpaceNode::id.
Referenced by node_uiblocks_init().
Definition at line 1224 of file node_draw.c.
References SpaceNode::aspect, RenderData::color_mgt_flag, CTX_data_scene(), CTX_wm_space_node(), View2D::cur, draw_gpencil_view2d(), draw_nodespace_back_pix(), ListBase::first, bNode::flag, bNode::id, bNodeLinkDrag::link, SpaceNode::linkdrag, bNodeLinkDrag::next, bNode::next, node_draw_group(), node_draw_link(), node_draw_nodetree(), NODE_GROUP_EDIT, NODE_HIDDEN, node_uiblocks_init(), node_update(), node_update_group(), node_update_hidden(), bNodeTree::nodes, SpaceNode::nodetree, Scene::r, R_COLOR_MANAGEMENT, snode_set_context(), TH_BACK, UI_ThemeClearColor(), UI_view2d_constant_grid_draw(), UI_view2d_scrollers_calc(), UI_view2d_scrollers_draw(), UI_view2d_scrollers_free(), UI_view2d_view_ortho(), UI_view2d_view_restore(), ARegion::v2d, V2D_ARG_DUMMY, V2D_GRID_CLAMP, ARegion::winx, rctf::xmax, and rctf::xmin.
Referenced by node_main_area_draw().
Definition at line 84 of file node_draw.c.
References DAG_id_tag_update(), bNode::id, NC_MATERIAL, NC_SCENE, NC_TEXTURE, ND_NODES, ND_SHADING_DRAW, node_tree_from_ID(), node_tree_get_editgroup(), NodeTagChanged(), NodeTagIDChanged(), NTREE_COMPOSIT, NTREE_SHADER, NTREE_TEXTURE, and WM_main_add_notifier().
Referenced by do_node_internal_buttons(), ED_node_generic_update(), ED_node_link_insert(), node_duplicate_exec(), and node_set_active().
Definition at line 126 of file node_draw.c.
References ED_node_changed_update(), ListBase::first, has_nodetree(), Material::id, Tex::id, Scene::id, Main::mat, ID::next, Material::nodetree, Tex::nodetree, Scene::nodetree, NTREE_TEXTURE, ntreeTexCheckCyclics(), Main::scene, Main::tex, bNodeTree::type, Material::use_nodes, Tex::use_nodes, and Scene::use_nodes.
Referenced by node_normal_cb().
| static void group_verify_cb | ( | bContext * | UNUSEDC, |
| void * | UNUSEDsnode_v, | ||
| void * | ngroup_v | ||
| ) | [static] |
Definition at line 1040 of file node_draw.c.
References nodeGroupVerify().
Referenced by node_draw_group().
Definition at line 111 of file node_draw.c.
References ListBase::first, bNode::id, bNode::next, NODE_GROUP, bNodeTree::nodes, and bNode::type.
Referenced by ED_node_generic_update().
| static void node_draw_basis | ( | const bContext * | C, |
| ARegion * | ar, | ||
| SpaceNode * | snode, | ||
| bNodeTree * | ntree, | ||
| bNode * | node | ||
| ) | [static] |
Definition at line 719 of file node_draw.c.
References SpaceNode::aspect, B_REDR, BASIS_RAD, BLI_lock_thread(), BLI_rctf_is_empty(), BLI_strncpy(), BLI_unlock_thread(), bNode::block, View2D::cur, ListBase::first, bNodeSocket::flag, bNodeType::flag, bNode::flag, bNode::id, bNode::inputs, LABEL, bNode::label, bNodeType::labelfunc, bNodeSocket::link, LOCK_PREVIEW, bNodeSocket::locx, bNodeSocket::locy, bNodeSocket::name, bNodeType::name, bNodeSocket::next, NODE_ACTIVE, NODE_ACTIVE_ID, NODE_DO_OUTPUT, node_draw_mute_line(), node_draw_preview(), node_draw_socket_button(), NODE_DY, NODE_DYS, node_get_colorid(), NODE_GROUP, NODE_MUTED, NODE_OPTIONS, NODE_PREVIEW, node_scaling_widget(), NODE_SOCKSIZE, node_sync_cb(), nodeShaderSynchronizeID(), NTREE_SHADER, NULL, bNode::outputs, bNode::preview, bNode::prvr, bNodePreview::rect, SELECT, SOCK_HIDDEN, SOCK_UNAVAIL, socket_circle_draw(), TH_NODE, TH_REDALERT, TH_TEXT, TH_TEXT_HI, bNode::totr, SpaceNode::treetype, bNode::type, bNode::typeinfo, UI_DrawTriIcon(), ui_dropshadow(), UI_GetStringWidth(), UI_ThemeClearColor(), UI_ThemeColor(), UI_ThemeColor4(), UI_ThemeColorBlend(), UI_ThemeColorBlendShade(), UI_ThemeColorShade(), UI_ThemeColorShadeAlpha(), UI_UNIT_X, UI_UNIT_Y, uiDefBut(), uiDefIconBut(), uiDrawBlock(), uiDrawBox(), uiEndBlock(), uiRoundBox(), uiSetRoundBox(), ARegion::v2d, bNode::width, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.
Referenced by node_draw_nodetree().
| static void node_draw_group | ( | const bContext * | C, |
| ARegion * | ar, | ||
| SpaceNode * | snode, | ||
| bNodeTree * | ntree, | ||
| bNode * | gnode | ||
| ) | [static] |
Definition at line 1048 of file node_draw.c.
References BASIS_RAD, bNode::block, BUT, ListBase::first, group_verify_cb(), bNode::id, bNodeTree::id, bNodeTree::inputs, MIN2, node_draw_nodetree(), node_draw_socket_button(), NODE_DY, NODE_DYS, NODE_GROUP_FRAME, NODE_SOCKSIZE, NULL, bNodeTree::outputs, RNA_enum_set(), RNA_int_set(), RNA_Node, RNA_pointer_create(), SOCK_IN, SOCK_OUT, socket_circle_draw(), TEX, TH_BACK, TH_NODE_GROUP, TH_TEXT_HI, bNode::totr, UI_BUT_DISABLED, UI_EMBOSS, UI_EMBOSSN, UI_LAYOUT_PANEL, UI_LAYOUT_VERTICAL, UI_ThemeColor(), UI_ThemeColorShadeAlpha(), UI_TOP, UI_UNIT_X, uiBlockBeginAlign(), uiBlockEndAlign(), uiBlockLayout(), uiBlockLayoutResolve(), uiBlockSetDirection(), uiBlockSetEmboss(), uiButGetOperatorPtrRNA(), uiButSetFlag(), uiButSetFunc(), uiDefBut(), uiDefIconButO(), uiDrawBlock(), uiDrawBox(), uiEndBlock(), uiSetRoundBox(), and uiTemplateIDBrowse().
Referenced by drawnodespace().
| static void node_draw_hidden | ( | const bContext * | C, |
| ARegion * | ar, | ||
| SpaceNode * | snode, | ||
| bNode * | node | ||
| ) | [static] |
Definition at line 906 of file node_draw.c.
References SpaceNode::aspect, BLI_strncpy(), bNode::block, fdrawline(), ListBase::first, bNodeSocket::flag, bNode::flag, bNode::inputs, LABEL, bNode::label, bNodeType::labelfunc, bNode::miniwidth, bNodeType::name, bNodeSocket::next, NODE_ACTIVE, node_draw_mute_line(), NODE_DY, node_get_colorid(), NODE_MUTED, NODE_SOCKSIZE, NULL, bNode::outputs, SELECT, SOCK_HIDDEN, SOCK_UNAVAIL, socket_circle_draw(), TH_REDALERT, TH_TEXT, TH_TEXT_HI, bNode::totr, bNode::typeinfo, UI_DrawTriIcon(), ui_dropshadow(), UI_ThemeColor(), UI_ThemeColorBlend(), UI_ThemeColorBlendShade(), UI_ThemeColorShade(), UI_ThemeColorShadeAlpha(), uiDefBut(), uiDrawBlock(), uiDrawBox(), uiEndBlock(), uiRoundBox(), uiSetRoundBox(), ARegion::v2d, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.
Referenced by node_draw_nodetree().
Definition at line 465 of file node_draw.c.
References SpaceNode::edittree, ListBase::first, bNodeLink::fromsock, bNode::inputs, link(), bNodeSocket::next, node_draw_link_bezier(), nodeCountSocketLinks(), NULL, bNode::outputs, SOCK_RGBA, SOCK_VALUE, SOCK_VECTOR, TH_REDALERT, TH_WIRE, bNodeLink::tosock, and bNodeSocket::type.
Referenced by node_draw_basis(), and node_draw_hidden().
| static void node_draw_nodetree | ( | const bContext * | C, |
| ARegion * | ar, | ||
| SpaceNode * | snode, | ||
| bNodeTree * | ntree | ||
| ) | [static] |
Definition at line 1000 of file node_draw.c.
References ListBase::first, bNode::flag, link(), bNodeTree::links, bNode::next, bNodeLink::next, node_draw_basis(), node_draw_hidden(), node_draw_link(), NODE_GROUP_EDIT, NODE_HIDDEN, bNodeTree::nodes, bNode::nr, NULL, SELECT, and ARegion::v2d.
Referenced by drawnodespace(), and node_draw_group().
| static void node_draw_preview | ( | bNodePreview * | preview, |
| rctf * | prv | ||
| ) | [static] |
Definition at line 589 of file node_draw.c.
References fdrawbox(), glaDrawPixelsTex(), bNodePreview::rect, TH_BACK, UI_ThemeColorShadeAlpha(), rctf::xmax, rctf::xmin, bNodePreview::xsize, rctf::ymax, rctf::ymin, and bNodePreview::ysize.
Referenced by node_draw_basis().
| static void node_draw_socket_button | ( | bNodeTree * | ntree, |
| bNodeSocket * | sock, | ||
| const char * | name, | ||
| uiBlock * | block, | ||
| int | x, | ||
| int | y, | ||
| int | width, | ||
| uiButHandleFunc | cb, | ||
| void * | arg1, | ||
| void * | arg2 | ||
| ) | [static] |
Definition at line 666 of file node_draw.c.
References SocketVectorMenuArgs::arg1, SocketVectorMenuArgs::arg2, B_NODE_EXEC, SocketVectorMenuArgs::cb, COL, bNodeTree::id, LABEL, bNodeStack::max, MEM_callocN(), bNodeStack::min, NODE_DY, bNodeSocket::ns, NULL, NUM, SocketVectorMenuArgs::ptr, RNA_NodeSocket, RNA_pointer_create(), SOCK_RGBA, SOCK_VALUE, SOCK_VECTOR, socket_vector_menu(), bNodeSocket::type, uiButSetFunc(), uiDefBlockButN(), uiDefBut(), uiDefButR(), SocketVectorMenuArgs::width, SocketVectorMenuArgs::x, and SocketVectorMenuArgs::y.
Referenced by node_draw_basis(), and node_draw_group().
| static int node_get_colorid | ( | bNode * | node | ) | [static] |
Definition at line 367 of file node_draw.c.
References ELEM3, bNode::flag, bNodeType::nclass, NODE_CLASS_CONVERTOR, NODE_CLASS_GROUP, NODE_CLASS_INPUT, NODE_CLASS_OP_COLOR, NODE_CLASS_OP_FILTER, NODE_CLASS_OP_VECTOR, NODE_CLASS_OUTPUT, NODE_DO_OUTPUT, TH_NODE, TH_NODE_CONVERTOR, TH_NODE_GROUP, TH_NODE_IN_OUT, TH_NODE_OPERATOR, and bNode::typeinfo.
Referenced by node_draw_basis(), and node_draw_hidden().
| static void node_scaling_widget | ( | int | color_id, |
| float | aspect, | ||
| float | xmin, | ||
| float | ymin, | ||
| float | xmax, | ||
| float | ymax | ||
| ) | [static] |
Definition at line 159 of file node_draw.c.
References fdrawline(), and UI_ThemeColorShade().
Referenced by node_draw_basis().
| static void node_sync_cb | ( | bContext * | UNUSEDC, |
| void * | snode_v, | ||
| void * | node_v | ||
| ) | [static] |
Definition at line 576 of file node_draw.c.
References nodeShaderSynchronizeID(), NTREE_SHADER, and SpaceNode::treetype.
Referenced by node_draw_basis().
Definition at line 176 of file node_draw.c.
References CTX_wm_region(), do_node_internal_buttons(), bNode::flag, ListBase::last, NODE_GROUP_EDIT, NODE_SELECT, bNodeTree::nodes, bNode::prev, str, UI_EMBOSS, uiBeginBlock(), and uiBlockSetHandleFunc().
Referenced by drawnodespace().
Definition at line 207 of file node_draw.c.
References BLI_lock_thread(), BLI_unlock_thread(), bNode::block, bNode::butr, ListBase::first, bNodeSocket::flag, bNode::flag, bNodeTree::id, bNode::inputs, LOCK_PREVIEW, bNodeSocket::locx, bNode::locx, bNodeSocket::locy, bNode::locy, MIN2, bNodeSocket::next, NODE_DY, NODE_DYS, NODE_OPTIONS, NODE_PREVIEW, NULL, bNode::outputs, bNode::preview, bNode::prvr, bNodePreview::rect, RNA_Node, RNA_pointer_create(), SOCK_HIDDEN, SOCK_UNAVAIL, SWAP, bNode::totr, bNode::typeinfo, UI_LAYOUT_PANEL, UI_LAYOUT_VERTICAL, uiBlockEndAlign(), uiBlockLayout(), uiBlockLayoutResolve(), bNodeType::uifunc, bNode::width, rctf::xmax, rctf::xmin, bNodePreview::xsize, rctf::ymax, rctf::ymin, and bNodePreview::ysize.
Referenced by drawnodespace(), and node_update_group().
| static void node_update_group | ( | const bContext * | C, |
| bNodeTree * | UNUSEDntree, | ||
| bNode * | gnode | ||
| ) | [static] |
Definition at line 389 of file node_draw.c.
References BLI_countlist(), BLI_union_rctf(), ListBase::first, bNode::id, bNode::inputs, bNodeTree::inputs, bNode::locx, bNode::locy, NODE_DY, NODE_DYS, NODE_GROUP_FRAME, NODE_HIDDEN, node_update(), node_update_hidden(), bNodeTree::nodes, bNode::outputs, bNodeTree::outputs, and bNode::totr.
Referenced by drawnodespace().
| static void node_update_hidden | ( | bNode * | node | ) | [static] |
Definition at line 320 of file node_draw.c.
References cos(), ListBase::first, bNodeSocket::flag, HIDDEN_RAD, bNode::inputs, bNodeSocket::locx, bNode::locx, bNodeSocket::locy, bNode::locy, M_PI, MAX2, bNode::miniwidth, bNodeSocket::next, NODE_DY, bNode::outputs, sin(), SOCK_HIDDEN, SOCK_UNAVAIL, bNode::totr, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.
Referenced by drawnodespace(), and node_update_group().
| static void socket_circle_draw | ( | bNodeSocket * | sock, |
| float | size | ||
| ) | [static] |
Definition at line 553 of file node_draw.c.
References circle_draw(), ShadeResult::col, bNodeSocket::locx, bNodeSocket::locy, SOCK_RGBA, SOCK_VALUE, SOCK_VECTOR, and bNodeSocket::type.
Referenced by node_draw_basis(), node_draw_group(), and node_draw_hidden().
Definition at line 650 of file node_draw.c.
References NODE_DY, SocketVectorMenuArgs::ptr, UI_BLOCK_KEEP_OPEN, UI_EMBOSS, UI_ITEM_R_EXPAND, UI_LAYOUT_PANEL, UI_LAYOUT_VERTICAL, uiBeginBlock(), uiBlockLayout(), uiBlockSetFlag(), uiItemR(), uiLayoutColumn(), SocketVectorMenuArgs::width, SocketVectorMenuArgs::x, and SocketVectorMenuArgs::y.
Referenced by node_draw_socket_button().
| void ui_dropshadow | ( | rctf * | rct, |
| float | radius, | ||
| float | aspect, | ||
| int | select | ||
| ) |