Blender
V4.3
source
blender
compositor
operations
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
7
#include "
COM_MultiThreadedOperation.h
"
8
9
namespace
blender::compositor
{
10
11
class
TransformOperation
:
public
MultiThreadedOperation
{
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
:
36
TransformOperation
();
37
38
void
set_translate_factor_xy
(
float
x
,
float
y
)
39
{
40
translate_factor_x_ =
x
;
41
translate_factor_y_ =
y
;
42
}
43
44
void
set_convert_rotate_degree_to_rad
(
bool
value)
45
{
46
convert_degree_to_rad_ = value;
47
}
48
49
void
set_sampler
(
PixelSampler
sampler
)
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
;
61
void
update_memory_buffer_partial
(
MemoryBuffer
*
output
,
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
x
x
Definition
BLI_expr_pylike_eval_test.cc:345
COM_MultiThreadedOperation.h
transform
SIMD_FORCE_INLINE btVector3 transform(const btVector3 &point) const
Definition
btBoxCollision.h:205
output
#define output
blender::Span
Definition
BLI_span.hh:75
blender::compositor::MemoryBuffer
a MemoryBuffer contains access to the data
Definition
COM_MemoryBuffer.h:35
blender::compositor::MultiThreadedOperation::MultiThreadedOperation
MultiThreadedOperation()
Definition
COM_MultiThreadedOperation.cc:10
blender::compositor::TransformOperation::set_translate_factor_xy
void set_translate_factor_xy(float x, float y)
Definition
COM_TransformOperation.h:38
blender::compositor::TransformOperation::get_area_of_interest
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.
Definition
COM_TransformOperation.cc:45
blender::compositor::TransformOperation::set_invert
void set_invert(bool value)
Definition
COM_TransformOperation.h:54
blender::compositor::TransformOperation::determine_canvas
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
Definition
COM_TransformOperation.cc:105
blender::compositor::TransformOperation::TransformOperation
TransformOperation()
Definition
COM_TransformOperation.cc:12
blender::compositor::TransformOperation::update_memory_buffer_partial
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_TransformOperation.cc:91
blender::compositor::TransformOperation::set_sampler
void set_sampler(PixelSampler sampler)
Definition
COM_TransformOperation.h:49
blender::compositor::TransformOperation::set_convert_rotate_degree_to_rad
void set_convert_rotate_degree_to_rad(bool value)
Definition
COM_TransformOperation.h:44
blender::compositor::TransformOperation::init_data
void init_data() override
Definition
COM_TransformOperation.cc:29
sampler
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
y
y
Definition
compositor_morphological_blur_info.hh:15
blender::compositor
Definition
COM_JumpFloodingAlgorithm.cc:20
blender::compositor::PixelSampler
PixelSampler
Definition
COM_Enums.h:39
blender::compositor::COM_AREA_NONE
constexpr rcti COM_AREA_NONE
Definition
COM_defines.h:89
blender::compositor::BuffersIterator
typename BuffersIteratorBuilder< T >::Iterator BuffersIterator
Definition
COM_BuffersIterator.h:179
inputs
static blender::bke::bNodeSocketTemplate inputs[]
Definition
node_texture_at.cc:11
rcti
Definition
DNA_vec_types.h:68
Generated on Sat Oct 4 2025 05:32:23 for Blender by
doxygen
1.14.0