diff options
author | Charlie Jolly <charlie> | 2021-12-31 05:32:28 +0300 |
---|---|---|
committer | Charlie Jolly <mistajolly@gmail.com> | 2021-12-31 05:34:23 +0300 |
commit | 71468f475b449fc2c72d9c0438db9b37788058ab (patch) | |
tree | 220c19fb0f9e03ab528071b777f342e5b9ef2bfc /source/blender/nodes/shader/nodes/node_shader_vector_math.cc | |
parent | 0aa73156083821d45c7794ea964d7fd5e6d13b25 (diff) |
Nodes: Weight drag link search for Math nodes
As @hooglyboogly suggested in D13680, this patch adds weighting
to the search results. Dragging from a vector/rgba socket weights
the Vector Math node higher than a float Math node, and vice versa.
Reviewed By: HooglyBoogly
Differential Revision: https://developer.blender.org/D13691
Diffstat (limited to 'source/blender/nodes/shader/nodes/node_shader_vector_math.cc')
-rw-r--r-- | source/blender/nodes/shader/nodes/node_shader_vector_math.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/nodes/shader/nodes/node_shader_vector_math.cc b/source/blender/nodes/shader/nodes/node_shader_vector_math.cc index 0218e759bea..a488e709373 100644 --- a/source/blender/nodes/shader/nodes/node_shader_vector_math.cc +++ b/source/blender/nodes/shader/nodes/node_shader_vector_math.cc @@ -64,6 +64,8 @@ static void sh_node_vector_math_gather_link_searches(GatherLinkSearchOpParams &p return; } + const int weight = ELEM(params.other_socket().type, SOCK_VECTOR, SOCK_RGBA) ? 0 : -1; + for (const EnumPropertyItem *item = rna_enum_node_vec_math_items; item->identifier != nullptr; item++) { if (item->name != nullptr && item->identifier != "") { @@ -72,11 +74,13 @@ static void sh_node_vector_math_gather_link_searches(GatherLinkSearchOpParams &p NODE_VECTOR_MATH_DISTANCE, NODE_VECTOR_MATH_DOT_PRODUCT)) { params.add_item(IFACE_(item->name), - SocketSearchOp{"Value", (NodeVectorMathOperation)item->value}); + SocketSearchOp{"Value", (NodeVectorMathOperation)item->value}, + weight); } else { params.add_item(IFACE_(item->name), - SocketSearchOp{"Vector", (NodeVectorMathOperation)item->value}); + SocketSearchOp{"Vector", (NodeVectorMathOperation)item->value}, + weight); } } } |