Blender V4.3
COM_TransformOperation.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2021 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
8
9namespace blender::compositor {
10
12 private:
13 constexpr static int IMAGE_INPUT_INDEX = 0;
14 constexpr static int X_INPUT_INDEX = 1;
15 constexpr static int Y_INPUT_INDEX = 2;
16 constexpr static int DEGREE_INPUT_INDEX = 3;
17 constexpr static int SCALE_INPUT_INDEX = 4;
18
19 float rotate_cosine_;
20 float rotate_sine_;
21 int translate_x_;
22 int translate_y_;
23 float scale_;
24 rcti scale_canvas_ = COM_AREA_NONE;
25 rcti rotate_canvas_ = COM_AREA_NONE;
26 rcti translate_canvas_ = COM_AREA_NONE;
27
28 /* Set variables. */
29 PixelSampler sampler_;
30 bool convert_degree_to_rad_;
31 float translate_factor_x_;
32 float translate_factor_y_;
33 bool invert_;
34
35 public:
37
38 void set_translate_factor_xy(float x, float y)
39 {
40 translate_factor_x_ = x;
41 translate_factor_y_ = y;
42 }
43
45 {
46 convert_degree_to_rad_ = value;
47 }
48
50 {
51 sampler_ = sampler;
52 }
53
54 void set_invert(bool value)
55 {
56 invert_ = value;
57 }
58
59 void init_data() override;
60 void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) override;
62 const rcti &area,
63 Span<MemoryBuffer *> inputs) override;
64
65 void determine_canvas(const rcti &preferred_area, rcti &r_area) override;
66
67 private:
69 void transform(BuffersIterator<float> &it, const MemoryBuffer *input_img);
71 void transform_inverted(BuffersIterator<float> &it, const MemoryBuffer *input_img);
72};
73
74} // namespace blender::compositor
a MemoryBuffer contains access to the data
void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) override
Get input operation area being read by this operation on rendering given output area.
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
local_group_size(16, 16) .push_constant(Type local_group_size(16, 16) .push_constant(Type input_tx sampler(1, ImageType::FLOAT_2D, "matte_tx") .image(0
constexpr rcti COM_AREA_NONE
Definition COM_defines.h:89
typename BuffersIteratorBuilder< T >::Iterator BuffersIterator