Cleanup: Move node editor files to proper namespace
This commit moves code in all node editor files to the `blender::ed::space_node` namespace, except for C API functions defined in `ED_node.h`, which can only be moved once all areas calling them are moved to C++. The change is fairly straightforward, I just moved a couple of "ED_" code blocks around to make the namespace more contiguous, and there's the method for adding a pointer to a struct in a C++ namespace in DNA. Differential Revision: https://developer.blender.org/D13871
This commit is contained in:
parent
19622ffc5b
commit
902a103f80
|
@ -79,7 +79,7 @@
|
|||
#include "NOD_texture.h"
|
||||
#include "node_intern.hh" /* own include */
|
||||
|
||||
using blender::float2;
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
/* Default flags for uiItemR(). Name is kept short since this is used a lot in this file. */
|
||||
#define DEFAULT_FLAGS UI_ITEM_R_SPLIT_EMPTY_NAME
|
||||
|
@ -160,6 +160,8 @@ static void node_buts_curvefloat(uiLayout *layout, bContext *UNUSED(C), PointerR
|
|||
uiTemplateCurveMapping(layout, ptr, "mapping", 0, false, false, false, false);
|
||||
}
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
||||
#define SAMPLE_FLT_ISNONE FLT_MAX
|
||||
/* Bad bad, 2.5 will do better? ... no it won't! */
|
||||
static float _sample_col[4] = {SAMPLE_FLT_ISNONE};
|
||||
|
@ -173,6 +175,8 @@ void ED_node_sample_set(const float col[4])
|
|||
}
|
||||
}
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
static void node_buts_curvecol(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
|
||||
{
|
||||
bNode *node = (bNode *)ptr->data;
|
||||
|
@ -1101,8 +1105,12 @@ static void node_socket_undefined_interface_draw_color(bContext *UNUSED(C),
|
|||
|
||||
/** \} */
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
||||
void ED_node_init_butfuncs()
|
||||
{
|
||||
using namespace blender::ed::space_node;
|
||||
|
||||
/* Fallback types for undefined tree, nodes, sockets
|
||||
* Defined in blenkernel, but not registered in type hashes.
|
||||
*/
|
||||
|
@ -1135,9 +1143,11 @@ void ED_init_custom_node_type(bNodeType *UNUSED(ntype))
|
|||
|
||||
void ED_init_custom_node_socket_type(bNodeSocketType *stype)
|
||||
{
|
||||
stype->draw = node_socket_button_label;
|
||||
stype->draw = blender::ed::space_node::node_socket_button_label;
|
||||
}
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
static const float virtual_node_socket_color[4] = {0.2, 0.2, 0.2, 1.0};
|
||||
|
||||
/* maps standard socket integer type to a color */
|
||||
|
@ -1420,14 +1430,6 @@ static void std_node_socket_interface_draw(bContext *UNUSED(C), uiLayout *layout
|
|||
uiItemR(layout, ptr, "hide_value", DEFAULT_FLAGS, nullptr, 0);
|
||||
}
|
||||
|
||||
void ED_init_standard_node_socket_type(bNodeSocketType *stype)
|
||||
{
|
||||
stype->draw = std_node_socket_draw;
|
||||
stype->draw_color = std_node_socket_draw_color;
|
||||
stype->interface_draw = std_node_socket_interface_draw;
|
||||
stype->interface_draw_color = std_node_socket_interface_draw_color;
|
||||
}
|
||||
|
||||
static void node_socket_virtual_draw_color(bContext *UNUSED(C),
|
||||
PointerRNA *UNUSED(ptr),
|
||||
PointerRNA *UNUSED(node_ptr),
|
||||
|
@ -1436,12 +1438,26 @@ static void node_socket_virtual_draw_color(bContext *UNUSED(C),
|
|||
copy_v4_v4(r_color, virtual_node_socket_color);
|
||||
}
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
||||
void ED_init_standard_node_socket_type(bNodeSocketType *stype)
|
||||
{
|
||||
using namespace blender::ed::space_node;
|
||||
stype->draw = std_node_socket_draw;
|
||||
stype->draw_color = std_node_socket_draw_color;
|
||||
stype->interface_draw = std_node_socket_interface_draw;
|
||||
stype->interface_draw_color = std_node_socket_interface_draw_color;
|
||||
}
|
||||
|
||||
void ED_init_node_socket_type_virtual(bNodeSocketType *stype)
|
||||
{
|
||||
using namespace blender::ed::space_node;
|
||||
stype->draw = node_socket_button_label;
|
||||
stype->draw_color = node_socket_virtual_draw_color;
|
||||
}
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
/* ************** Generic drawing ************** */
|
||||
|
||||
void draw_nodespace_back_pix(const bContext &C,
|
||||
|
@ -2148,6 +2164,8 @@ void node_draw_link(const bContext &C,
|
|||
node_draw_link_bezier(C, v2d, snode, link, th_col1, th_col2, th_col3);
|
||||
}
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
||||
void ED_node_draw_snap(View2D *v2d, const float cent[2], float size, NodeBorder border, uint pos)
|
||||
{
|
||||
immBegin(GPU_PRIM_LINES, 4);
|
||||
|
|
|
@ -62,6 +62,8 @@
|
|||
/** \name Utilities
|
||||
* \{ */
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
bNode *node_add_node(const bContext &C, const char *idname, int type, float locx, float locy)
|
||||
{
|
||||
SpaceNode &snode = *CTX_wm_space_node(&C);
|
||||
|
@ -1046,3 +1048,5 @@ void NODE_OT_new_node_tree(wmOperatorType *ot)
|
|||
}
|
||||
|
||||
/** \} */
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
|
|
@ -88,13 +88,6 @@
|
|||
|
||||
#include "node_intern.hh" /* own include */
|
||||
|
||||
using blender::Array;
|
||||
using blender::float2;
|
||||
using blender::Map;
|
||||
using blender::Set;
|
||||
using blender::Span;
|
||||
using blender::Vector;
|
||||
using blender::VectorSet;
|
||||
using blender::fn::CPPType;
|
||||
using blender::fn::FieldCPPType;
|
||||
using blender::fn::FieldInput;
|
||||
|
@ -115,6 +108,8 @@ float ED_node_grid_size()
|
|||
|
||||
void ED_node_tree_update(const bContext *C)
|
||||
{
|
||||
using namespace blender::ed::space_node;
|
||||
|
||||
SpaceNode *snode = CTX_wm_space_node(C);
|
||||
if (snode) {
|
||||
snode_set_context(*C);
|
||||
|
@ -176,6 +171,8 @@ void ED_node_tag_update_id(ID *id)
|
|||
}
|
||||
}
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
static bool compare_nodes(const bNode *a, const bNode *b)
|
||||
{
|
||||
/* These tell if either the node or any of the parent nodes is selected.
|
||||
|
@ -1071,8 +1068,12 @@ static void node_socket_draw_nested(const bContext &C,
|
|||
UI_block_emboss_set(&block, old_emboss);
|
||||
}
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
||||
void ED_node_socket_draw(bNodeSocket *sock, const rcti *rect, const float color[4], float scale)
|
||||
{
|
||||
using namespace blender::ed::space_node;
|
||||
|
||||
const float size = 2.25f * NODE_SOCKSIZE * scale;
|
||||
rcti draw_rect = *rect;
|
||||
float outline_color[4] = {0};
|
||||
|
@ -1119,6 +1120,8 @@ void ED_node_socket_draw(bNodeSocket *sock, const rcti *rect, const float color[
|
|||
GPU_blend(state);
|
||||
}
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
/* ************** Socket callbacks *********** */
|
||||
|
||||
static void node_draw_preview_background(rctf *rect)
|
||||
|
@ -2879,3 +2882,5 @@ void node_draw_space(const bContext &C, ARegion ®ion)
|
|||
/* Scrollers. */
|
||||
UI_view2d_scrollers_draw(&v2d, nullptr);
|
||||
}
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
|
|
@ -76,10 +76,9 @@
|
|||
#include "NOD_texture.h"
|
||||
#include "node_intern.hh" /* own include */
|
||||
|
||||
#define USE_ESC_COMPO
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
using blender::float2;
|
||||
using blender::Map;
|
||||
#define USE_ESC_COMPO
|
||||
|
||||
/* ***************** composite job manager ********************** */
|
||||
|
||||
|
@ -320,8 +319,12 @@ static void compo_startjob(void *cjv,
|
|||
ntree->progress = nullptr;
|
||||
}
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
||||
void ED_node_composite_job(const bContext *C, struct bNodeTree *nodetree, Scene *scene_owner)
|
||||
{
|
||||
using namespace blender::ed::space_node;
|
||||
|
||||
Main *bmain = CTX_data_main(C);
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
ViewLayer *view_layer = CTX_data_view_layer(C);
|
||||
|
@ -361,6 +364,8 @@ void ED_node_composite_job(const bContext *C, struct bNodeTree *nodetree, Scene
|
|||
WM_jobs_start(CTX_wm_manager(C), wm_job);
|
||||
}
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
/* ***************************************** */
|
||||
|
||||
bool composite_node_active(bContext *C)
|
||||
|
@ -411,18 +416,20 @@ static void send_notifiers_after_tree_change(ID *id, bNodeTree *ntree)
|
|||
}
|
||||
}
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
||||
void ED_node_tree_propagate_change(const bContext *C, Main *bmain, bNodeTree *root_ntree)
|
||||
{
|
||||
if (C != nullptr) {
|
||||
SpaceNode *snode = CTX_wm_space_node(C);
|
||||
if (snode != nullptr && root_ntree != nullptr) {
|
||||
send_notifiers_after_tree_change(snode->id, root_ntree);
|
||||
blender::ed::space_node::send_notifiers_after_tree_change(snode->id, root_ntree);
|
||||
}
|
||||
}
|
||||
|
||||
NodeTreeUpdateExtraParams params = {nullptr};
|
||||
params.tree_changed_fn = [](ID *id, bNodeTree *ntree, void *UNUSED(user_data)) {
|
||||
send_notifiers_after_tree_change(id, ntree);
|
||||
blender::ed::space_node::send_notifiers_after_tree_change(id, ntree);
|
||||
DEG_id_tag_update(&ntree->id, ID_RECALC_COPY_ON_WRITE);
|
||||
};
|
||||
params.tree_output_changed_fn = [](ID *UNUSED(id), bNodeTree *ntree, void *UNUSED(user_data)) {
|
||||
|
@ -589,6 +596,8 @@ void ED_node_texture_default(const bContext *C, Tex *tex)
|
|||
BKE_ntree_update_main_tree(CTX_data_main(C), tex->nodetree, nullptr);
|
||||
}
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
/**
|
||||
* Here we set the active tree(s), even called for each redraw now, so keep it fast :)
|
||||
*/
|
||||
|
@ -631,6 +640,8 @@ void snode_set_context(const bContext &C)
|
|||
}
|
||||
}
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
||||
void ED_node_set_active(
|
||||
Main *bmain, SpaceNode *snode, bNodeTree *ntree, bNode *node, bool *r_active_texture_changed)
|
||||
{
|
||||
|
@ -796,6 +807,8 @@ void ED_node_post_apply_transform(bContext *UNUSED(C), bNodeTree *UNUSED(ntree))
|
|||
// node_update_nodetree(C, ntree, 0.0f, 0.0f);
|
||||
}
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
/* ***************** generic operator functions for nodes ***************** */
|
||||
|
||||
#if 0 /* UNUSED */
|
||||
|
@ -2929,3 +2942,4 @@ void NODE_OT_cryptomatte_layer_remove(wmOperatorType *ot)
|
|||
/* flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
}
|
||||
} // namespace blender::ed::space_node
|
||||
|
|
|
@ -46,13 +46,11 @@
|
|||
|
||||
#include "node_intern.hh"
|
||||
|
||||
using blender::IndexRange;
|
||||
using blender::Map;
|
||||
using blender::Set;
|
||||
using blender::StringRef;
|
||||
namespace geo_log = blender::nodes::geometry_nodes_eval_log;
|
||||
using geo_log::GeometryAttributeInfo;
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
struct AttributeSearchData {
|
||||
const bNodeTree *tree;
|
||||
const bNode *node;
|
||||
|
@ -139,3 +137,5 @@ void node_geometry_add_attribute_search_button(const bContext &UNUSED(C),
|
|||
attribute_search_exec_fn,
|
||||
nullptr);
|
||||
}
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
|
|
@ -43,6 +43,8 @@
|
|||
|
||||
#include "node_intern.hh"
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Local Utilities
|
||||
* \{ */
|
||||
|
@ -636,3 +638,5 @@ void NODE_GGT_backdrop_corner_pin(wmGizmoGroupType *gzgt)
|
|||
}
|
||||
|
||||
/** \} */
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
|
|
@ -62,9 +62,7 @@
|
|||
#include "NOD_socket.h"
|
||||
#include "node_intern.hh" /* own include */
|
||||
|
||||
using blender::float2;
|
||||
using blender::Map;
|
||||
using blender::Vector;
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Local Utilities
|
||||
|
@ -1109,3 +1107,5 @@ void NODE_OT_group_insert(wmOperatorType *ot)
|
|||
}
|
||||
|
||||
/** \} */
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
|
|
@ -45,10 +45,12 @@ struct wmGizmoGroupType;
|
|||
struct wmKeyConfig;
|
||||
struct wmWindow;
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
/** Temporary data used in node link drag modal operator. */
|
||||
struct bNodeLinkDrag {
|
||||
/** Links dragged by the operator. */
|
||||
blender::Vector<bNodeLink *> links;
|
||||
Vector<bNodeLink *> links;
|
||||
bool from_multi_input_socket;
|
||||
eNodeSocketInOut in_out;
|
||||
|
||||
|
@ -82,7 +84,7 @@ struct SpaceNode_Runtime {
|
|||
float aspect;
|
||||
|
||||
/** Mouse position for drawing socket-less links and adding nodes. */
|
||||
blender::float2 cursor;
|
||||
float2 cursor;
|
||||
|
||||
/** For auto compositing. */
|
||||
bool recalc;
|
||||
|
@ -107,12 +109,12 @@ ENUM_OPERATORS(NodeResizeDirection, NODE_RESIZE_LEFT);
|
|||
/**
|
||||
* Transform between View2Ds in the tree path.
|
||||
*/
|
||||
blender::float2 space_node_group_offset(const SpaceNode &snode);
|
||||
float2 space_node_group_offset(const SpaceNode &snode);
|
||||
|
||||
float node_socket_calculate_height(const bNodeSocket &socket);
|
||||
blender::float2 node_link_calculate_multi_input_position(const blender::float2 &socket_position,
|
||||
int index,
|
||||
int total_inputs);
|
||||
float2 node_link_calculate_multi_input_position(const float2 &socket_position,
|
||||
int index,
|
||||
int total_inputs);
|
||||
|
||||
int node_get_resize_cursor(NodeResizeDirection directions);
|
||||
NodeResizeDirection node_get_resize_direction(const bNode *node, int x, int y);
|
||||
|
@ -133,11 +135,11 @@ void node_draw_space(const bContext &C, ARegion ®ion);
|
|||
*/
|
||||
void node_sort(bNodeTree &ntree);
|
||||
|
||||
void node_set_cursor(wmWindow &win, SpaceNode &snode, const blender::float2 &cursor);
|
||||
void node_set_cursor(wmWindow &win, SpaceNode &snode, const float2 &cursor);
|
||||
/* DPI scaled coords */
|
||||
blender::float2 node_to_view(const bNode &node, const blender::float2 &co);
|
||||
float2 node_to_view(const bNode &node, const float2 &co);
|
||||
void node_to_updated_rect(const bNode &node, rctf &r_rect);
|
||||
blender::float2 node_from_view(const bNode &node, const blender::float2 &co);
|
||||
float2 node_from_view(const bNode &node, const float2 &co);
|
||||
|
||||
void node_operatortypes();
|
||||
void node_keymap(wmKeyConfig *keyconf);
|
||||
|
@ -237,7 +239,7 @@ void NODE_OT_group_edit(wmOperatorType *ot);
|
|||
void sort_multi_input_socket_links(SpaceNode &snode,
|
||||
bNode &node,
|
||||
bNodeLink *drag_link,
|
||||
const blender::float2 *cursor);
|
||||
const float2 *cursor);
|
||||
|
||||
void NODE_OT_link(wmOperatorType *ot);
|
||||
void NODE_OT_link_make(wmOperatorType *ot);
|
||||
|
@ -267,7 +269,7 @@ int node_render_changed_exec(bContext *, wmOperator *);
|
|||
bool node_find_indicated_socket(SpaceNode &snode,
|
||||
bNode **nodep,
|
||||
bNodeSocket **sockp,
|
||||
const blender::float2 &cursor,
|
||||
const float2 &cursor,
|
||||
eNodeSocketInOut in_out);
|
||||
float node_link_dim_factor(const View2D &v2d, const bNodeLink &link);
|
||||
bool node_link_is_hidden_or_dimmed(const View2D &v2d, const bNodeLink &link);
|
||||
|
@ -339,8 +341,6 @@ extern const char *node_context_dir[];
|
|||
#define NODE_RESIZE_MARGIN (0.20f * U.widget_unit)
|
||||
#define NODE_LINK_RESOL 12
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
Vector<ui::ContextPathItem> context_path_for_space_node(const bContext &C);
|
||||
|
||||
void invoke_node_link_drag_add_menu(bContext &C,
|
||||
|
|
|
@ -35,6 +35,8 @@
|
|||
|
||||
#include "node_intern.hh" /* own include */
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
void node_operatortypes()
|
||||
{
|
||||
WM_operatortype_append(NODE_OT_select);
|
||||
|
@ -127,6 +129,17 @@ void node_operatortypes()
|
|||
WM_operatortype_append(NODE_OT_cryptomatte_layer_remove);
|
||||
}
|
||||
|
||||
void node_keymap(struct wmKeyConfig *keyconf)
|
||||
{
|
||||
/* Entire Editor only ----------------- */
|
||||
WM_keymap_ensure(keyconf, "Node Generic", SPACE_NODE, 0);
|
||||
|
||||
/* Main Region only ----------------- */
|
||||
WM_keymap_ensure(keyconf, "Node Editor", SPACE_NODE, 0);
|
||||
}
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
||||
void ED_operatormacros_node()
|
||||
{
|
||||
wmOperatorType *ot;
|
||||
|
@ -203,12 +216,3 @@ void ED_operatormacros_node()
|
|||
WM_operatortype_macro_define(ot, "NODE_OT_links_detach");
|
||||
WM_operatortype_macro_define(ot, "NODE_OT_translate_attach");
|
||||
}
|
||||
|
||||
void node_keymap(struct wmKeyConfig *keyconf)
|
||||
{
|
||||
/* Entire Editor only ----------------- */
|
||||
WM_keymap_ensure(keyconf, "Node Generic", SPACE_NODE, 0);
|
||||
|
||||
/* Main Region only ----------------- */
|
||||
WM_keymap_ensure(keyconf, "Node Editor", SPACE_NODE, 0);
|
||||
}
|
||||
|
|
|
@ -68,10 +68,6 @@
|
|||
#include "node_intern.hh" /* own include */
|
||||
|
||||
using namespace blender::nodes::node_tree_ref_types;
|
||||
using blender::float2;
|
||||
using blender::StringRef;
|
||||
using blender::StringRefNull;
|
||||
using blender::Vector;
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Add Node
|
||||
|
@ -100,6 +96,8 @@ static void clear_picking_highlight(ListBase *links)
|
|||
}
|
||||
}
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
static bNodeLink *create_drag_link(bNode &node, bNodeSocket &sock)
|
||||
{
|
||||
bNodeLink *oplink = MEM_cnew<bNodeLink>(__func__);
|
||||
|
@ -455,7 +453,7 @@ static void snode_autoconnect(Main &bmain,
|
|||
/** \name Link Viewer Operator
|
||||
* \{ */
|
||||
|
||||
namespace blender::ed::nodes::viewer_linking {
|
||||
namespace viewer_linking {
|
||||
|
||||
/* Depending on the node tree type, different socket types are supported by viewer nodes. */
|
||||
static bool socket_can_be_viewed(const OutputSocketRef &socket)
|
||||
|
@ -722,7 +720,7 @@ static int node_link_viewer(const bContext &C, bNode &bnode_to_view)
|
|||
return link_socket_to_viewer(C, viewer_bnode, bnode_to_view, bsocket_to_view);
|
||||
}
|
||||
|
||||
} // namespace blender::ed::nodes::viewer_linking
|
||||
} // namespace viewer_linking
|
||||
|
||||
static int node_active_link_viewer_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
|
@ -735,7 +733,7 @@ static int node_active_link_viewer_exec(bContext *C, wmOperator *UNUSED(op))
|
|||
|
||||
ED_preview_kill_jobs(CTX_wm_manager(C), CTX_data_main(C));
|
||||
|
||||
if (blender::ed::nodes::viewer_linking::node_link_viewer(*C, *node) == OPERATOR_CANCELLED) {
|
||||
if (viewer_linking::node_link_viewer(*C, *node) == OPERATOR_CANCELLED) {
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
|
@ -1076,12 +1074,10 @@ static int node_link_modal(bContext *C, wmOperator *op, const wmEvent *event)
|
|||
if (should_create_drag_link_search_menu(*snode.edittree, *nldrag)) {
|
||||
bNodeLink &link = *nldrag->links.first();
|
||||
if (nldrag->in_out == SOCK_OUT) {
|
||||
blender::ed::space_node::invoke_node_link_drag_add_menu(
|
||||
*C, *link.fromnode, *link.fromsock, cursor);
|
||||
invoke_node_link_drag_add_menu(*C, *link.fromnode, *link.fromsock, cursor);
|
||||
}
|
||||
else {
|
||||
blender::ed::space_node::invoke_node_link_drag_add_menu(
|
||||
*C, *link.tonode, *link.tosock, cursor);
|
||||
invoke_node_link_drag_add_menu(*C, *link.tonode, *link.tosock, cursor);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1949,8 +1945,12 @@ static bool ed_node_link_conditions(ScrArea *area,
|
|||
return true;
|
||||
}
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
||||
void ED_node_link_intersect_test(ScrArea *area, int test)
|
||||
{
|
||||
using namespace blender::ed::space_node;
|
||||
|
||||
bNode *select;
|
||||
SpaceNode *snode;
|
||||
if (!ed_node_link_conditions(area, test, &snode, &select)) {
|
||||
|
@ -2010,6 +2010,8 @@ void ED_node_link_intersect_test(ScrArea *area, int test)
|
|||
}
|
||||
}
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
/** \} */
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
@ -2049,20 +2051,17 @@ static int get_main_socket_priority(const bNodeSocket *socket)
|
|||
/** Get the "main" socket based on the node declaration or an heuristic. */
|
||||
static bNodeSocket *get_main_socket(bNodeTree &ntree, bNode &node, eNodeSocketInOut in_out)
|
||||
{
|
||||
using namespace blender;
|
||||
using namespace blender::nodes;
|
||||
|
||||
ListBase *sockets = (in_out == SOCK_IN) ? &node.inputs : &node.outputs;
|
||||
|
||||
/* Try to get the main socket based on the socket declaration. */
|
||||
nodeDeclarationEnsure(&ntree, &node);
|
||||
const NodeDeclaration *node_decl = node.declaration;
|
||||
const nodes::NodeDeclaration *node_decl = node.declaration;
|
||||
if (node_decl != nullptr) {
|
||||
Span<SocketDeclarationPtr> socket_decls = (in_out == SOCK_IN) ? node_decl->inputs() :
|
||||
node_decl->outputs();
|
||||
Span<nodes::SocketDeclarationPtr> socket_decls = (in_out == SOCK_IN) ? node_decl->inputs() :
|
||||
node_decl->outputs();
|
||||
int index;
|
||||
LISTBASE_FOREACH_INDEX (bNodeSocket *, socket, sockets, index) {
|
||||
const SocketDeclaration &socket_decl = *socket_decls[index];
|
||||
const nodes::SocketDeclaration &socket_decl = *socket_decls[index];
|
||||
if (nodeSocketIsHidden(socket)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -2426,12 +2425,16 @@ void NODE_OT_insert_offset(wmOperatorType *ot)
|
|||
|
||||
/** \} */
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Note Link Insert
|
||||
* \{ */
|
||||
|
||||
void ED_node_link_insert(Main *bmain, ScrArea *area)
|
||||
{
|
||||
using namespace blender::ed::space_node;
|
||||
|
||||
bNode *select;
|
||||
SpaceNode *snode;
|
||||
if (!ed_node_link_conditions(area, true, &snode, &select)) {
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
|
||||
#include "node_intern.hh" /* own include */
|
||||
|
||||
using blender::float2;
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
/**
|
||||
* Function to detect if there is a visible view3d that uses workbench in texture mode.
|
||||
|
@ -1309,3 +1309,5 @@ void NODE_OT_find_node(wmOperatorType *ot)
|
|||
}
|
||||
|
||||
/** \} */
|
||||
|
||||
}
|
||||
|
|
|
@ -53,9 +53,10 @@
|
|||
|
||||
#include "ED_undo.h"
|
||||
|
||||
using blender::Vector;
|
||||
using blender::nodes::NodeDeclaration;
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
/************************* Node Socket Manipulation **************************/
|
||||
|
||||
/* describes an instance of a node type and a specific socket to link */
|
||||
|
@ -716,9 +717,13 @@ static void ui_template_node_link_menu(bContext *C, uiLayout *layout, void *but_
|
|||
ui_node_menu_column(arg, NODE_CLASS_GROUP, N_("Group"));
|
||||
}
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
||||
void uiTemplateNodeLink(
|
||||
uiLayout *layout, bContext *C, bNodeTree *ntree, bNode *node, bNodeSocket *input)
|
||||
{
|
||||
using namespace blender::ed::space_node;
|
||||
|
||||
uiBlock *block = uiLayoutGetBlock(layout);
|
||||
NodeLinkArg *arg;
|
||||
uiBut *but;
|
||||
|
@ -760,6 +765,8 @@ void uiTemplateNodeLink(
|
|||
}
|
||||
}
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
/**************************** Node Tree Layout *******************************/
|
||||
|
||||
static void ui_node_draw_input(
|
||||
|
@ -912,9 +919,13 @@ static void ui_node_draw_input(
|
|||
node->flag &= ~NODE_TEST;
|
||||
}
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
||||
void uiTemplateNodeView(
|
||||
uiLayout *layout, bContext *C, bNodeTree *ntree, bNode *node, bNodeSocket *input)
|
||||
{
|
||||
using namespace blender::ed::space_node;
|
||||
|
||||
bNode *tnode;
|
||||
|
||||
if (!ntree) {
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
|
||||
#include "node_intern.hh" /* own include */
|
||||
|
||||
using blender::StringRef;
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name View All Operator
|
||||
|
@ -444,6 +444,8 @@ static void sample_draw(const bContext *C, ARegion *region, void *arg_info)
|
|||
}
|
||||
}
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
||||
bool ED_space_node_get_position(
|
||||
Main *bmain, SpaceNode *snode, struct ARegion *region, const int mval[2], float fpos[2])
|
||||
{
|
||||
|
@ -526,6 +528,8 @@ bool ED_space_node_color_sample(
|
|||
return ret;
|
||||
}
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
static void sample_apply(bContext *C, wmOperator *op, const wmEvent *event)
|
||||
{
|
||||
Main *bmain = CTX_data_main(C);
|
||||
|
@ -783,3 +787,5 @@ void NODE_OT_geometry_node_view_legacy(wmOperatorType *ot)
|
|||
}
|
||||
|
||||
/** \} */
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
|
|
@ -206,6 +206,18 @@ void ED_node_set_active_viewer_key(SpaceNode *snode)
|
|||
}
|
||||
}
|
||||
|
||||
void ED_node_cursor_location_get(const SpaceNode *snode, float value[2])
|
||||
{
|
||||
copy_v2_v2(value, snode->runtime->cursor);
|
||||
}
|
||||
|
||||
void ED_node_cursor_location_set(SpaceNode *snode, const float value[2])
|
||||
{
|
||||
copy_v2_v2(snode->runtime->cursor, value);
|
||||
}
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
||||
float2 space_node_group_offset(const SpaceNode &snode)
|
||||
{
|
||||
const bNodeTreePath *path = (bNodeTreePath *)snode.treepath.last;
|
||||
|
@ -556,16 +568,6 @@ static void node_toolbar_region_draw(const bContext *C, ARegion *region)
|
|||
ED_region_panels(C, region);
|
||||
}
|
||||
|
||||
void ED_node_cursor_location_get(const SpaceNode *snode, float value[2])
|
||||
{
|
||||
copy_v2_v2(value, snode->runtime->cursor);
|
||||
}
|
||||
|
||||
void ED_node_cursor_location_set(SpaceNode *snode, const float value[2])
|
||||
{
|
||||
copy_v2_v2(snode->runtime->cursor, value);
|
||||
}
|
||||
|
||||
static void node_cursor(wmWindow *win, ScrArea *area, ARegion *region)
|
||||
{
|
||||
SpaceNode *snode = (SpaceNode *)area->spacedata.first;
|
||||
|
@ -978,8 +980,12 @@ static void node_space_subtype_item_extend(bContext *C, EnumPropertyItem **item,
|
|||
}
|
||||
}
|
||||
|
||||
} // namespace blender::ed::space_node
|
||||
|
||||
void ED_spacetype_node()
|
||||
{
|
||||
using namespace blender::ed::space_node;
|
||||
|
||||
SpaceType *st = MEM_cnew<SpaceType>("spacetype node");
|
||||
ARegionType *art;
|
||||
|
||||
|
|
|
@ -65,7 +65,14 @@ struct wmTimer;
|
|||
typedef struct SpaceProperties_Runtime SpaceProperties_Runtime;
|
||||
|
||||
/** Defined in `node_intern.hh`. */
|
||||
#ifdef __cplusplus
|
||||
namespace blender::ed::space_node {
|
||||
struct SpaceNode_Runtime;
|
||||
} // namespace blender::nodes
|
||||
using SpaceNode_Runtime = blender::ed::space_node::SpaceNode_Runtime;
|
||||
#else
|
||||
typedef struct SpaceNode_Runtime SpaceNode_Runtime;
|
||||
#endif
|
||||
|
||||
/** Defined in `file_intern.h`. */
|
||||
typedef struct SpaceFile_Runtime SpaceFile_Runtime;
|
||||
|
|
Loading…
Reference in New Issue