diff options
author | Hans Goudey <h.goudey@me.com> | 2022-09-04 08:04:10 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2022-09-04 08:04:10 +0300 |
commit | 86e01811a5e97767f6112daa76efc380177486a0 (patch) | |
tree | f709405682cf65c0501d33158434e58a90481372 /source/blender/nodes/composite/nodes/node_composite_directionalblur.cc | |
parent | f31e0670bd4a260417c70d8ad9c16b57a514a252 (diff) | |
parent | 0ff920b777791d6dcc002257f437f86e2d14df01 (diff) |
Merge branch 'master' into refactor-mesh-remove-pointers
Diffstat (limited to 'source/blender/nodes/composite/nodes/node_composite_directionalblur.cc')
-rw-r--r-- | source/blender/nodes/composite/nodes/node_composite_directionalblur.cc | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/source/blender/nodes/composite/nodes/node_composite_directionalblur.cc b/source/blender/nodes/composite/nodes/node_composite_directionalblur.cc index b662924acec..6e6bec70283 100644 --- a/source/blender/nodes/composite/nodes/node_composite_directionalblur.cc +++ b/source/blender/nodes/composite/nodes/node_composite_directionalblur.cc @@ -22,6 +22,8 @@ namespace blender::nodes::node_composite_directionalblur_cc { +NODE_STORAGE_FUNCS(NodeDBlurData) + static void cmp_node_directional_blur_declare(NodeDeclarationBuilder &b) { b.add_input<decl::Color>(N_("Image")) @@ -109,28 +111,27 @@ class DirectionalBlurOperation : public NodeOperation { float2 get_translation() { const float diagonal_length = math::length(float2(get_input("Image").domain().size)); - const float translation_amount = diagonal_length * get_node_directional_blur_data().distance; - const float3x3 rotation = float3x3::from_rotation(-get_node_directional_blur_data().angle); + const float translation_amount = diagonal_length * node_storage(bnode()).distance; + const float3x3 rotation = float3x3::from_rotation(-node_storage(bnode()).angle); return rotation * float2(-translation_amount / get_iterations(), 0.0f); } /* Get the amount of rotation that will be applied on each iteration. */ float get_rotation() { - return get_node_directional_blur_data().spin / get_iterations(); + return node_storage(bnode()).spin / get_iterations(); } /* Get the amount of scale that will be applied on each iteration. The scale is identity when the * user supplies 0, so we add 1. */ float2 get_scale() { - return float2(1.0f + get_node_directional_blur_data().zoom / get_iterations()); + return float2(1.0f + node_storage(bnode()).zoom / get_iterations()); } float2 get_origin() { - const float2 center = float2(get_node_directional_blur_data().center_x, - get_node_directional_blur_data().center_y); + const float2 center = float2(node_storage(bnode()).center_x, node_storage(bnode()).center_y); return float2(get_input("Image").domain().size) * center; } @@ -151,7 +152,7 @@ class DirectionalBlurOperation : public NodeOperation { * is the number of diagonal pixels. */ int get_iterations() { - const int iterations = 2 << (get_node_directional_blur_data().iter - 1); + const int iterations = 2 << (node_storage(bnode()).iter - 1); const int upper_limit = math::ceil(math::length(float2(get_input("Image").domain().size))); return math::min(iterations, upper_limit); } @@ -166,25 +167,20 @@ class DirectionalBlurOperation : public NodeOperation { } /* If any of the following options are non-zero, then the operation is not an identity. */ - if (get_node_directional_blur_data().distance != 0.0f) { + if (node_storage(bnode()).distance != 0.0f) { return false; } - if (get_node_directional_blur_data().spin != 0.0f) { + if (node_storage(bnode()).spin != 0.0f) { return false; } - if (get_node_directional_blur_data().zoom != 0.0f) { + if (node_storage(bnode()).zoom != 0.0f) { return false; } return true; } - - const NodeDBlurData &get_node_directional_blur_data() - { - return *static_cast<const NodeDBlurData *>(bnode().storage); - } }; static NodeOperation *get_compositor_operation(Context &context, DNode node) |