Blender
V4.3
source
blender
compositor
operations
COM_PlaneDistortCommonOperation.h
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2013 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#pragma once
6
7
#include <
string.h
>
8
9
#include "
COM_MultiThreadedOperation.h
"
10
11
#include "
DNA_movieclip_types.h
"
12
#include "
DNA_tracking_types.h
"
13
14
#include "
BLI_listbase.h
"
15
#include "
BLI_string.h
"
16
17
namespace
blender::compositor
{
18
19
#define PLANE_DISTORT_MAX_SAMPLES 64
20
21
class
PlaneDistortBaseOperation
:
public
MultiThreadedOperation
{
22
protected
:
23
struct
MotionSample
{
24
float
frame_space_corners
[4][2];
/* Corners coordinates in pixel space. */
25
float
perspective_matrix
[3][3];
26
};
27
MotionSample
samples_
[
PLANE_DISTORT_MAX_SAMPLES
];
28
int
motion_blur_samples_
;
29
float
motion_blur_shutter_
;
30
31
public
:
32
PlaneDistortBaseOperation
();
33
34
void
set_motion_blur_samples
(
int
samples)
35
{
36
BLI_assert
(samples <=
PLANE_DISTORT_MAX_SAMPLES
);
37
motion_blur_samples_
= samples;
38
}
39
void
set_motion_blur_shutter
(
float
shutter)
40
{
41
motion_blur_shutter_
= shutter;
42
}
43
44
virtual
void
calculate_corners
(
const
float
corners[4][2],
bool
normalized
,
int
sample
);
45
46
private
:
47
friend
class
PlaneTrackCommon
;
48
};
49
50
class
PlaneDistortWarpImageOperation
:
public
PlaneDistortBaseOperation
{
51
public
:
52
PlaneDistortWarpImageOperation
();
53
54
void
calculate_corners
(
const
float
corners[4][2],
bool
normalized
,
int
sample
)
override
;
55
56
void
get_area_of_interest
(
int
input_idx,
const
rcti
&output_area,
rcti
&r_input_area)
override
;
57
void
update_memory_buffer_partial
(
MemoryBuffer
*
output
,
58
const
rcti
&area,
59
Span<MemoryBuffer *>
inputs
)
override
;
60
};
61
62
class
PlaneDistortMaskOperation
:
public
PlaneDistortBaseOperation
{
63
public
:
64
PlaneDistortMaskOperation
();
65
66
void
update_memory_buffer_partial
(
MemoryBuffer
*
output
,
67
const
rcti
&area,
68
Span<MemoryBuffer *>
inputs
)
override
;
69
};
70
71
}
// namespace blender::compositor
BLI_assert
#define BLI_assert(a)
Definition
BLI_assert.h:50
BLI_listbase.h
BLI_string.h
COM_MultiThreadedOperation.h
PLANE_DISTORT_MAX_SAMPLES
#define PLANE_DISTORT_MAX_SAMPLES
Definition
COM_PlaneDistortCommonOperation.h:19
DNA_movieclip_types.h
DNA_tracking_types.h
output
#define output
normalized
SIMD_FORCE_INLINE btVector3 normalized() const
Return a normalized version of this vector.
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::PlaneDistortBaseOperation::samples_
MotionSample samples_[PLANE_DISTORT_MAX_SAMPLES]
Definition
COM_PlaneDistortCommonOperation.h:27
blender::compositor::PlaneDistortBaseOperation::set_motion_blur_samples
void set_motion_blur_samples(int samples)
Definition
COM_PlaneDistortCommonOperation.h:34
blender::compositor::PlaneDistortBaseOperation::PlaneTrackCommon
friend class PlaneTrackCommon
Definition
COM_PlaneDistortCommonOperation.h:47
blender::compositor::PlaneDistortBaseOperation::PlaneDistortBaseOperation
PlaneDistortBaseOperation()
Definition
COM_PlaneDistortCommonOperation.cc:15
blender::compositor::PlaneDistortBaseOperation::motion_blur_shutter_
float motion_blur_shutter_
Definition
COM_PlaneDistortCommonOperation.h:29
blender::compositor::PlaneDistortBaseOperation::set_motion_blur_shutter
void set_motion_blur_shutter(float shutter)
Definition
COM_PlaneDistortCommonOperation.h:39
blender::compositor::PlaneDistortBaseOperation::calculate_corners
virtual void calculate_corners(const float corners[4][2], bool normalized, int sample)
Definition
COM_PlaneDistortCommonOperation.cc:20
blender::compositor::PlaneDistortBaseOperation::motion_blur_samples_
int motion_blur_samples_
Definition
COM_PlaneDistortCommonOperation.h:28
blender::compositor::PlaneDistortMaskOperation::PlaneDistortMaskOperation
PlaneDistortMaskOperation()
Definition
COM_PlaneDistortCommonOperation.cc:175
blender::compositor::PlaneDistortMaskOperation::update_memory_buffer_partial
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_PlaneDistortCommonOperation.cc:180
blender::compositor::PlaneDistortWarpImageOperation::update_memory_buffer_partial
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_PlaneDistortCommonOperation.cc:91
blender::compositor::PlaneDistortWarpImageOperation::calculate_corners
void calculate_corners(const float corners[4][2], bool normalized, int sample) override
Definition
COM_PlaneDistortCommonOperation.cc:66
blender::compositor::PlaneDistortWarpImageOperation::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_PlaneDistortCommonOperation.cc:119
blender::compositor::PlaneDistortWarpImageOperation::PlaneDistortWarpImageOperation
PlaneDistortWarpImageOperation()
Definition
COM_PlaneDistortCommonOperation.cc:60
sample
uint sample
Definition
kernel/device/gpu/kernel.h:97
blender::compositor
Definition
COM_JumpFloodingAlgorithm.cc:20
inputs
static blender::bke::bNodeSocketTemplate inputs[]
Definition
node_texture_at.cc:11
string.h
blender::compositor::PlaneDistortBaseOperation::MotionSample
Definition
COM_PlaneDistortCommonOperation.h:23
blender::compositor::PlaneDistortBaseOperation::MotionSample::perspective_matrix
float perspective_matrix[3][3]
Definition
COM_PlaneDistortCommonOperation.h:25
blender::compositor::PlaneDistortBaseOperation::MotionSample::frame_space_corners
float frame_space_corners[4][2]
Definition
COM_PlaneDistortCommonOperation.h:24
rcti
Definition
DNA_vec_types.h:68
Generated on Sat Oct 4 2025 05:32:23 for Blender by
doxygen
1.14.0