Blender
V4.3
source
blender
compositor
operations
COM_ScreenLensDistortionOperation.h
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2011 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#pragma once
6
7
#include "
COM_MultiThreadedOperation.h
"
8
#include "
DNA_node_types.h
"
9
10
struct
RNG
;
11
12
namespace
blender::compositor
{
13
14
class
ScreenLensDistortionOperation
:
public
MultiThreadedOperation
{
15
private
:
16
struct
RNG
*rng_;
17
18
bool
fit_;
19
bool
jitter_;
20
21
float
dispersion_;
22
float
distortion_;
23
bool
dispersion_const_;
24
bool
distortion_const_;
25
bool
variables_ready_;
26
float
k_[3];
27
float
k4_
[3];
28
float
dk4_[3];
29
float
maxk_;
30
float
sc_, cx_, cy_;
31
32
public
:
33
ScreenLensDistortionOperation
();
34
35
void
init_data
()
override
;
36
37
void
init_execution
()
override
;
38
void
deinit_execution
()
override
;
39
40
void
set_fit
(
bool
fit)
41
{
42
fit_ = fit;
43
}
44
void
set_jitter
(
bool
jitter)
45
{
46
jitter_ = jitter;
47
}
48
50
void
set_distortion
(
float
distortion);
52
void
set_dispersion
(
float
dispersion);
53
54
void
determine_canvas
(
const
rcti
&preferred_area,
rcti
&r_area)
override
;
55
void
get_area_of_interest
(
int
input_idx,
const
rcti
&output_area,
rcti
&r_input_area)
override
;
56
void
update_memory_buffer_partial
(
MemoryBuffer
*output,
57
const
rcti
&area,
58
Span<MemoryBuffer *>
inputs)
override
;
59
60
private
:
61
void
determineUV(
float
result[6],
float
x,
float
y)
const
;
62
void
update_variables(
float
distortion,
float
dispersion);
63
64
void
get_uv(
const
float
xy
[2],
float
uv[2])
const
;
65
void
distort_uv(
const
float
uv[2],
float
t,
float
xy
[2])
const
;
66
bool
get_delta(
float
r_sq,
float
k4,
const
float
uv[2],
float
delta[2])
const
;
67
void
accumulate(
const
MemoryBuffer
*buffer,
68
int
a,
69
int
b
,
70
float
r_sq,
71
const
float
uv[2],
72
const
float
delta[3][2],
73
float
sum
[4],
74
int
count
[3])
const
;
75
};
76
77
}
// namespace blender::compositor
COM_MultiThreadedOperation.h
DNA_node_types.h
sum
static T sum(const btAlignedObjectArray< T > &items)
Definition
btSoftBodyHelpers.cpp:94
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
Definition
COM_MultiThreadedOperation.h:11
blender::compositor::ScreenLensDistortionOperation
Definition
COM_ScreenLensDistortionOperation.h:14
blender::compositor::ScreenLensDistortionOperation::deinit_execution
void deinit_execution() override
Definition
COM_ScreenLensDistortionOperation.cc:125
blender::compositor::ScreenLensDistortionOperation::set_distortion
void set_distortion(float distortion)
Definition
COM_ScreenLensDistortionOperation.cc:28
blender::compositor::ScreenLensDistortionOperation::update_memory_buffer_partial
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_ScreenLensDistortionOperation.cc:189
blender::compositor::ScreenLensDistortionOperation::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_ScreenLensDistortionOperation.cc:171
blender::compositor::ScreenLensDistortionOperation::set_fit
void set_fit(bool fit)
Definition
COM_ScreenLensDistortionOperation.h:40
blender::compositor::ScreenLensDistortionOperation::determine_canvas
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
Definition
COM_ScreenLensDistortionOperation.cc:161
blender::compositor::ScreenLensDistortionOperation::ScreenLensDistortionOperation
ScreenLensDistortionOperation()
Definition
COM_ScreenLensDistortionOperation.cc:14
blender::compositor::ScreenLensDistortionOperation::init_data
void init_data() override
Definition
COM_ScreenLensDistortionOperation.cc:40
blender::compositor::ScreenLensDistortionOperation::set_dispersion
void set_dispersion(float dispersion)
Definition
COM_ScreenLensDistortionOperation.cc:34
blender::compositor::ScreenLensDistortionOperation::init_execution
void init_execution() override
Definition
COM_ScreenLensDistortionOperation.cc:56
blender::compositor::ScreenLensDistortionOperation::set_jitter
void set_jitter(bool jitter)
Definition
COM_ScreenLensDistortionOperation.h:44
b
local_group_size(16, 16) .push_constant(Type b
Definition
compositor_morphological_distance_info.hh:16
k4_
double k4_
Definition
distortion_models.cc:190
count
int count
Definition
interface_widgets.cc:1056
blender::compositor
Definition
COM_JumpFloodingAlgorithm.cc:20
RNG
Definition
rand.cc:33
rcti
Definition
DNA_vec_types.h:68
xy
int xy[2]
Definition
wm_draw.cc:170
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0