Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Goudey <h.goudey@me.com>2022-01-18 22:32:36 +0300
committerHans Goudey <h.goudey@me.com>2022-01-18 22:32:36 +0300
commit221ff895d962a305d37eafd72f236a84d2e979b8 (patch)
tree2619008fd6fbdeb312df8de2119e56cb21b7f35f /source/blender
parenta5610da1d5ece3a3800d65cff1da926ca6ccf6c2 (diff)
Cleanup: Use references, LISTBASE_FOREACH macro
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/editors/space_node/node_draw.cc10
-rw-r--r--source/blender/editors/space_node/node_edit.cc11
-rw-r--r--source/blender/editors/space_node/node_intern.hh2
-rw-r--r--source/blender/editors/space_node/node_relationships.cc36
-rw-r--r--source/blender/editors/space_node/node_select.cc111
5 files changed, 80 insertions, 90 deletions
diff --git a/source/blender/editors/space_node/node_draw.cc b/source/blender/editors/space_node/node_draw.cc
index a68d34f7682..ee6dbc15c15 100644
--- a/source/blender/editors/space_node/node_draw.cc
+++ b/source/blender/editors/space_node/node_draw.cc
@@ -232,14 +232,14 @@ static bool compare_nodes(const bNode *a, const bNode *b)
return false;
}
-void node_sort(bNodeTree *ntree)
+void node_sort(bNodeTree &ntree)
{
/* Merge sort is the algorithm of choice here. */
- int totnodes = BLI_listbase_count(&ntree->nodes);
+ int totnodes = BLI_listbase_count(&ntree.nodes);
int k = 1;
while (k < totnodes) {
- bNode *first_a = (bNode *)ntree->nodes.first;
+ bNode *first_a = (bNode *)ntree.nodes.first;
bNode *first_b = first_a;
do {
@@ -266,8 +266,8 @@ void node_sort(bNodeTree *ntree)
bNode *tmp = node_b;
node_b = node_b->next;
b++;
- BLI_remlink(&ntree->nodes, tmp);
- BLI_insertlinkbefore(&ntree->nodes, node_a, tmp);
+ BLI_remlink(&ntree.nodes, tmp);
+ BLI_insertlinkbefore(&ntree.nodes, node_a, tmp);
}
}
diff --git a/source/blender/editors/space_node/node_edit.cc b/source/blender/editors/space_node/node_edit.cc
index 1e520f43a67..35cd74552ec 100644
--- a/source/blender/editors/space_node/node_edit.cc
+++ b/source/blender/editors/space_node/node_edit.cc
@@ -2040,18 +2040,15 @@ void NODE_OT_output_file_move_active_socket(wmOperatorType *ot)
static int node_copy_color_exec(bContext *C, wmOperator *UNUSED(op))
{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNodeTree *ntree = snode->edittree;
+ SpaceNode &snode = *CTX_wm_space_node(C);
+ bNodeTree &ntree = *snode.edittree;
- if (!ntree) {
- return OPERATOR_CANCELLED;
- }
- bNode *node = nodeGetActive(ntree);
+ bNode *node = nodeGetActive(&ntree);
if (!node) {
return OPERATOR_CANCELLED;
}
- LISTBASE_FOREACH (bNode *, node_iter, &ntree->nodes) {
+ LISTBASE_FOREACH (bNode *, node_iter, &ntree.nodes) {
if (node_iter->flag & NODE_SELECT && node_iter != node) {
if (node->flag & NODE_CUSTOM_COLOR) {
node_iter->flag |= NODE_CUSTOM_COLOR;
diff --git a/source/blender/editors/space_node/node_intern.hh b/source/blender/editors/space_node/node_intern.hh
index c811cb408b6..6016bf5da71 100644
--- a/source/blender/editors/space_node/node_intern.hh
+++ b/source/blender/editors/space_node/node_intern.hh
@@ -131,7 +131,7 @@ void node_draw_space(const bContext &C, ARegion &region);
* Sort nodes by selection: unselected nodes first, then selected,
* then the active node at the very end. Relative order is kept intact.
*/
-void node_sort(bNodeTree *ntree);
+void node_sort(bNodeTree &ntree);
void node_set_cursor(wmWindow &win, SpaceNode &snode, const blender::float2 &cursor);
/* DPI scaled coords */
diff --git a/source/blender/editors/space_node/node_relationships.cc b/source/blender/editors/space_node/node_relationships.cc
index a5117fbd25b..45b2dbda48b 100644
--- a/source/blender/editors/space_node/node_relationships.cc
+++ b/source/blender/editors/space_node/node_relationships.cc
@@ -1588,14 +1588,14 @@ void NODE_OT_links_detach(wmOperatorType *ot)
static int node_parent_set_exec(bContext *C, wmOperator *UNUSED(op))
{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNodeTree *ntree = snode->edittree;
- bNode *frame = nodeGetActive(ntree);
+ SpaceNode &snode = *CTX_wm_space_node(C);
+ bNodeTree &ntree = *snode.edittree;
+ bNode *frame = nodeGetActive(&ntree);
if (!frame || frame->type != NODE_FRAME) {
return OPERATOR_CANCELLED;
}
- LISTBASE_FOREACH (bNode *, node, &ntree->nodes) {
+ LISTBASE_FOREACH (bNode *, node, &ntree.nodes) {
if (node == frame) {
continue;
}
@@ -1702,7 +1702,7 @@ static int node_join_exec(bContext *C, wmOperator *UNUSED(op))
}
}
- node_sort(&ntree);
+ node_sort(ntree);
WM_event_add_notifier(C, NC_NODE | ND_DISPLAY, nullptr);
return OPERATOR_FINISHED;
@@ -1729,15 +1729,15 @@ void NODE_OT_join(wmOperatorType *ot)
/** \name Attach Operator
* \{ */
-static bNode *node_find_frame_to_attach(ARegion *region,
- const bNodeTree *ntree,
+static bNode *node_find_frame_to_attach(ARegion &region,
+ const bNodeTree &ntree,
const int mouse_xy[2])
{
/* convert mouse coordinates to v2d space */
float cursor[2];
- UI_view2d_region_to_view(&region->v2d, UNPACK2(mouse_xy), &cursor[0], &cursor[1]);
+ UI_view2d_region_to_view(&region.v2d, UNPACK2(mouse_xy), &cursor[0], &cursor[1]);
- LISTBASE_FOREACH_BACKWARD (bNode *, frame, &ntree->nodes) {
+ LISTBASE_FOREACH_BACKWARD (bNode *, frame, &ntree.nodes) {
/* skip selected, those are the nodes we want to attach */
if ((frame->type != NODE_FRAME) || (frame->flag & NODE_SELECT)) {
continue;
@@ -1752,13 +1752,13 @@ static bNode *node_find_frame_to_attach(ARegion *region,
static int node_attach_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *event)
{
- ARegion *region = CTX_wm_region(C);
- SpaceNode *snode = CTX_wm_space_node(C);
- bNodeTree *ntree = snode->edittree;
+ ARegion &region = *CTX_wm_region(C);
+ SpaceNode &snode = *CTX_wm_space_node(C);
+ bNodeTree &ntree = *snode.edittree;
bNode *frame = node_find_frame_to_attach(region, ntree, event->mval);
if (frame) {
- LISTBASE_FOREACH_BACKWARD (bNode *, node, &ntree->nodes) {
+ LISTBASE_FOREACH_BACKWARD (bNode *, node, &ntree.nodes) {
if (node->flag & NODE_SELECT) {
if (node->parent == nullptr) {
/* disallow moving a parent into its child */
@@ -1848,17 +1848,17 @@ static void node_detach_recursive(bNode *node)
/* detach the root nodes in the current selection */
static int node_detach_exec(bContext *C, wmOperator *UNUSED(op))
{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNodeTree *ntree = snode->edittree;
+ SpaceNode &snode = *CTX_wm_space_node(C);
+ bNodeTree &ntree = *snode.edittree;
/* reset tags */
- LISTBASE_FOREACH (bNode *, node, &ntree->nodes) {
+ LISTBASE_FOREACH (bNode *, node, &ntree.nodes) {
node->done = 0;
}
/* detach nodes recursively
* relative order is preserved here!
*/
- LISTBASE_FOREACH (bNode *, node, &ntree->nodes) {
+ LISTBASE_FOREACH (bNode *, node, &ntree.nodes) {
if (!(node->done & NODE_DETACH_DONE)) {
node_detach_recursive(node);
}
@@ -2239,7 +2239,7 @@ static void node_link_insert_offset_ntree(NodeInsertOfsData *iofsd,
/* frame attachment wasn't handled yet
* so we search the frame that the node will be attached to later */
- insert.parent = node_find_frame_to_attach(region, ntree, mouse_xy);
+ insert.parent = node_find_frame_to_attach(*region, *ntree, mouse_xy);
/* this makes sure nodes are also correctly offset when inserting a node on top of a frame
* without actually making it a part of the frame (because mouse isn't intersecting it)
diff --git a/source/blender/editors/space_node/node_select.cc b/source/blender/editors/space_node/node_select.cc
index 351c79d4b66..d0197252588 100644
--- a/source/blender/editors/space_node/node_select.cc
+++ b/source/blender/editors/space_node/node_select.cc
@@ -280,57 +280,51 @@ void node_deselect_all_output_sockets(SpaceNode &snode, const bool deselect_node
/* Return true if we need redraw, otherwise false. */
-static bool node_select_grouped_type(SpaceNode *snode, bNode *node_act)
+static bool node_select_grouped_type(bNodeTree &node_tree, bNode &node_act)
{
- bNode *node;
bool changed = false;
-
- for (node = (bNode *)snode->edittree->nodes.first; node; node = node->next) {
+ LISTBASE_FOREACH (bNode *, node, &node_tree.nodes) {
if ((node->flag & SELECT) == 0) {
- if (node->type == node_act->type) {
+ if (node->type == node_act.type) {
nodeSetSelected(node, true);
changed = true;
}
}
}
-
return changed;
}
-static bool node_select_grouped_color(SpaceNode *snode, bNode *node_act)
+static bool node_select_grouped_color(bNodeTree &node_tree, bNode &node_act)
{
bool changed = false;
-
- LISTBASE_FOREACH (bNode *, node, &snode->edittree->nodes) {
+ LISTBASE_FOREACH (bNode *, node, &node_tree.nodes) {
if ((node->flag & SELECT) == 0) {
- if (compare_v3v3(node->color, node_act->color, 0.005f)) {
+ if (compare_v3v3(node->color, node_act.color, 0.005f)) {
nodeSetSelected(node, true);
changed = true;
}
}
}
-
return changed;
}
-static bool node_select_grouped_name(SpaceNode *snode, bNode *node_act, const bool from_right)
+static bool node_select_grouped_name(bNodeTree &node_tree, bNode &node_act, const bool from_right)
{
- bNode *node;
bool changed = false;
const uint delims[] = {'.', '-', '_', '\0'};
size_t pref_len_act, pref_len_curr;
const char *sep, *suf_act, *suf_curr;
pref_len_act = BLI_str_partition_ex_utf8(
- node_act->name, nullptr, delims, &sep, &suf_act, from_right);
+ node_act.name, nullptr, delims, &sep, &suf_act, from_right);
/* NOTE: in case we are searching for suffix, and found none, use whole name as suffix. */
if (from_right && !(sep && suf_act)) {
pref_len_act = 0;
- suf_act = node_act->name;
+ suf_act = node_act.name;
}
- for (node = (bNode *)snode->edittree->nodes.first; node; node = node->next) {
+ LISTBASE_FOREACH (bNode *, node, &node_tree.nodes) {
if (node->flag & SELECT) {
continue;
}
@@ -345,7 +339,7 @@ static bool node_select_grouped_name(SpaceNode *snode, bNode *node_act, const bo
if ((from_right && STREQ(suf_act, suf_curr)) ||
(!from_right && (pref_len_act == pref_len_curr) &&
- STREQLEN(node_act->name, node->name, pref_len_act))) {
+ STREQLEN(node_act.name, node->name, pref_len_act))) {
nodeSetSelected(node, true);
changed = true;
}
@@ -363,20 +357,20 @@ enum {
static int node_select_grouped_exec(bContext *C, wmOperator *op)
{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNode *node_act = nodeGetActive(snode->edittree);
+ SpaceNode &snode = *CTX_wm_space_node(C);
+ bNodeTree &node_tree = *snode.edittree;
+ bNode *node_act = nodeGetActive(snode.edittree);
if (node_act == nullptr) {
return OPERATOR_CANCELLED;
}
- bNode *node;
bool changed = false;
const bool extend = RNA_boolean_get(op->ptr, "extend");
const int type = RNA_enum_get(op->ptr, "type");
if (!extend) {
- for (node = (bNode *)snode->edittree->nodes.first; node; node = node->next) {
+ LISTBASE_FOREACH (bNode *, node, &node_tree.nodes) {
nodeSetSelected(node, false);
}
}
@@ -384,23 +378,23 @@ static int node_select_grouped_exec(bContext *C, wmOperator *op)
switch (type) {
case NODE_SELECT_GROUPED_TYPE:
- changed = node_select_grouped_type(snode, node_act);
+ changed = node_select_grouped_type(node_tree, *node_act);
break;
case NODE_SELECT_GROUPED_COLOR:
- changed = node_select_grouped_color(snode, node_act);
+ changed = node_select_grouped_color(node_tree, *node_act);
break;
case NODE_SELECT_GROUPED_PREFIX:
- changed = node_select_grouped_name(snode, node_act, false);
+ changed = node_select_grouped_name(node_tree, *node_act, false);
break;
case NODE_SELECT_GROUPED_SUFIX:
- changed = node_select_grouped_name(snode, node_act, true);
+ changed = node_select_grouped_name(node_tree, *node_act, true);
break;
default:
break;
}
if (changed) {
- node_sort(snode->edittree);
+ node_sort(node_tree);
WM_event_add_notifier(C, NC_NODE | NA_SELECTED, nullptr);
return OPERATOR_FINISHED;
}
@@ -451,26 +445,26 @@ void NODE_OT_select_grouped(wmOperatorType *ot)
void node_select_single(bContext &C, bNode &node)
{
Main *bmain = CTX_data_main(&C);
- SpaceNode *snode = CTX_wm_space_node(&C);
+ SpaceNode &snode = *CTX_wm_space_node(&C);
+ bNodeTree &node_tree = *snode.edittree;
const Object *ob = CTX_data_active_object(&C);
const Scene *scene = CTX_data_scene(&C);
const wmWindowManager *wm = CTX_wm_manager(&C);
bool active_texture_changed = false;
- bNode *tnode;
- for (tnode = (bNode *)snode->edittree->nodes.first; tnode; tnode = tnode->next) {
- if (tnode != &node) {
- nodeSetSelected(tnode, false);
+ LISTBASE_FOREACH (bNode *, node_iter, &node_tree.nodes) {
+ if (node_iter != &node) {
+ nodeSetSelected(node_iter, false);
}
}
nodeSetSelected(&node, true);
- ED_node_set_active(bmain, snode, snode->edittree, &node, &active_texture_changed);
- ED_node_set_active_viewer_key(snode);
+ ED_node_set_active(bmain, &snode, &node_tree, &node, &active_texture_changed);
+ ED_node_set_active_viewer_key(&snode);
- node_sort(snode->edittree);
+ node_sort(node_tree);
if (active_texture_changed && has_workbench_in_texture_color(wm, scene, ob)) {
- DEG_id_tag_update(&snode->edittree->id, ID_RECALC_COPY_ON_WRITE);
+ DEG_id_tag_update(&node_tree.id, ID_RECALC_COPY_ON_WRITE);
}
WM_event_add_notifier(&C, NC_NODE | NA_SELECTED, nullptr);
@@ -611,7 +605,7 @@ static int node_mouse_select(bContext *C,
ED_spreadsheet_context_paths_set_geometry_node(&bmain, &snode, node);
}
ED_node_set_active_viewer_key(&snode);
- node_sort(snode.edittree);
+ node_sort(*snode.edittree);
if ((active_texture_changed && has_workbench_in_texture_color(wm, scene, ob)) ||
viewer_node_changed) {
DEG_id_tag_update(&snode.edittree->id, ID_RECALC_COPY_ON_WRITE);
@@ -678,20 +672,21 @@ void NODE_OT_select(wmOperatorType *ot)
static int node_box_select_exec(bContext *C, wmOperator *op)
{
- SpaceNode *snode = CTX_wm_space_node(C);
- ARegion *region = CTX_wm_region(C);
+ SpaceNode &snode = *CTX_wm_space_node(C);
+ bNodeTree &node_tree = *snode.edittree;
+ const ARegion &region = *CTX_wm_region(C);
rctf rectf;
WM_operator_properties_border_to_rctf(op, &rectf);
- UI_view2d_region_to_view_rctf(&region->v2d, &rectf, &rectf);
+ UI_view2d_region_to_view_rctf(&region.v2d, &rectf, &rectf);
const eSelectOp sel_op = (eSelectOp)RNA_enum_get(op->ptr, "mode");
const bool select = (sel_op != SEL_OP_SUB);
if (SEL_OP_USE_PRE_DESELECT(sel_op)) {
- node_select_all(&snode->edittree->nodes, SEL_DESELECT);
+ node_select_all(&node_tree.nodes, SEL_DESELECT);
}
- LISTBASE_FOREACH (bNode *, node, &snode->edittree->nodes) {
+ LISTBASE_FOREACH (bNode *, node, &node_tree.nodes) {
bool is_inside;
if (node->type == NODE_FRAME) {
is_inside = BLI_rctf_inside_rctf(&rectf, &node->totr);
@@ -705,7 +700,7 @@ static int node_box_select_exec(bContext *C, wmOperator *op)
}
}
- node_sort(snode->edittree);
+ node_sort(node_tree);
WM_event_add_notifier(C, NC_NODE | NA_SELECTED, nullptr);
@@ -937,13 +932,13 @@ void NODE_OT_select_lasso(wmOperatorType *ot)
static int node_select_all_exec(bContext *C, wmOperator *op)
{
- SpaceNode *snode = CTX_wm_space_node(C);
- ListBase *node_lb = &snode->edittree->nodes;
+ SpaceNode &snode = *CTX_wm_space_node(C);
+ ListBase *node_lb = &snode.edittree->nodes;
int action = RNA_enum_get(op->ptr, "action");
node_select_all(node_lb, action);
- node_sort(snode->edittree);
+ node_sort(*snode.edittree);
WM_event_add_notifier(C, NC_NODE | NA_SELECTED, nullptr);
return OPERATOR_FINISHED;
@@ -974,15 +969,14 @@ void NODE_OT_select_all(wmOperatorType *ot)
static int node_select_linked_to_exec(bContext *C, wmOperator *UNUSED(op))
{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNodeLink *link;
- bNode *node;
+ SpaceNode &snode = *CTX_wm_space_node(C);
+ bNodeTree &node_tree = *snode.edittree;
- for (node = (bNode *)snode->edittree->nodes.first; node; node = node->next) {
+ LISTBASE_FOREACH (bNode *, node, &node_tree.nodes) {
node->flag &= ~NODE_TEST;
}
- for (link = (bNodeLink *)snode->edittree->links.first; link; link = link->next) {
+ LISTBASE_FOREACH (bNodeLink *, link, &node_tree.links) {
if (nodeLinkIsHidden(link)) {
continue;
}
@@ -991,13 +985,13 @@ static int node_select_linked_to_exec(bContext *C, wmOperator *UNUSED(op))
}
}
- for (node = (bNode *)snode->edittree->nodes.first; node; node = node->next) {
+ LISTBASE_FOREACH (bNode *, node, &node_tree.nodes) {
if (node->flag & NODE_TEST) {
nodeSetSelected(node, true);
}
}
- node_sort(snode->edittree);
+ node_sort(node_tree);
WM_event_add_notifier(C, NC_NODE | NA_SELECTED, nullptr);
return OPERATOR_FINISHED;
@@ -1026,15 +1020,14 @@ void NODE_OT_select_linked_to(wmOperatorType *ot)
static int node_select_linked_from_exec(bContext *C, wmOperator *UNUSED(op))
{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNodeLink *link;
- bNode *node;
+ SpaceNode &snode = *CTX_wm_space_node(C);
+ bNodeTree &node_tree = *snode.edittree;
- for (node = (bNode *)snode->edittree->nodes.first; node; node = node->next) {
+ LISTBASE_FOREACH (bNode *, node, &node_tree.nodes) {
node->flag &= ~NODE_TEST;
}
- for (link = (bNodeLink *)snode->edittree->links.first; link; link = link->next) {
+ LISTBASE_FOREACH (bNodeLink *, link, &node_tree.links) {
if (nodeLinkIsHidden(link)) {
continue;
}
@@ -1043,13 +1036,13 @@ static int node_select_linked_from_exec(bContext *C, wmOperator *UNUSED(op))
}
}
- for (node = (bNode *)snode->edittree->nodes.first; node; node = node->next) {
+ LISTBASE_FOREACH (bNode *, node, &node_tree.nodes) {
if (node->flag & NODE_TEST) {
nodeSetSelected(node, true);
}
}
- node_sort(snode->edittree);
+ node_sort(node_tree);
WM_event_add_notifier(C, NC_NODE | NA_SELECTED, nullptr);
return OPERATOR_FINISHED;