Blender
V4.3
source
blender
compositor
operations
COM_KeyingScreenOperation.h
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2012 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
13
#include "
BLI_array.hh
"
14
#include "
BLI_listbase.h
"
15
#include "
BLI_math_base.hh
"
16
#include "
BLI_math_vector_types.hh
"
17
#include "
BLI_string.h
"
18
19
namespace
blender::compositor
{
20
24
class
KeyingScreenOperation
:
public
MultiThreadedOperation
{
25
protected
:
26
struct
MarkerPoint
{
27
float2
position
;
28
float4
color
;
29
};
30
31
MovieClip
*
movie_clip_
;
32
float
smoothness_
;
33
int
framenumber_
;
34
Array<MarkerPoint>
*
cached_marker_points_
;
35
char
tracking_object_
[64];
36
40
void
determine_canvas
(
const
rcti
&preferred_area,
rcti
&r_area)
override
;
41
42
Array<MarkerPoint>
*
compute_marker_points
();
43
44
public
:
45
KeyingScreenOperation
();
46
47
void
init_execution
()
override
;
48
void
deinit_execution
()
override
;
49
50
void
set_movie_clip
(
MovieClip
*clip)
51
{
52
movie_clip_
= clip;
53
}
54
void
set_tracking_object
(
const
char
*
object
)
55
{
56
BLI_strncpy
(
tracking_object_
,
object
,
sizeof
(
tracking_object_
));
57
}
58
void
set_smoothness
(
float
smoothness)
59
{
60
smoothness_
=
math::interpolate
(0.15f, 1.0f, smoothness);
61
}
62
void
set_framenumber
(
int
framenumber)
63
{
64
framenumber_
= framenumber;
65
}
66
67
void
update_memory_buffer_partial
(
MemoryBuffer
*
output
,
68
const
rcti
&area,
69
Span<MemoryBuffer *>
inputs
)
override
;
70
};
71
72
}
// namespace blender::compositor
BLI_array.hh
BLI_listbase.h
BLI_math_base.hh
BLI_math_vector_types.hh
BLI_string.h
BLI_strncpy
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL(1
COM_MultiThreadedOperation.h
DNA_movieclip_types.h
output
#define output
blender::Array
Definition
BLI_array.hh:50
blender::Span
Definition
BLI_span.hh:75
blender::compositor::KeyingScreenOperation::cached_marker_points_
Array< MarkerPoint > * cached_marker_points_
Definition
COM_KeyingScreenOperation.h:34
blender::compositor::KeyingScreenOperation::update_memory_buffer_partial
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_KeyingScreenOperation.cc:157
blender::compositor::KeyingScreenOperation::set_tracking_object
void set_tracking_object(const char *object)
Definition
COM_KeyingScreenOperation.h:54
blender::compositor::KeyingScreenOperation::compute_marker_points
Array< MarkerPoint > * compute_marker_points()
Definition
COM_KeyingScreenOperation.cc:46
blender::compositor::KeyingScreenOperation::movie_clip_
MovieClip * movie_clip_
Definition
COM_KeyingScreenOperation.h:31
blender::compositor::KeyingScreenOperation::set_framenumber
void set_framenumber(int framenumber)
Definition
COM_KeyingScreenOperation.h:62
blender::compositor::KeyingScreenOperation::KeyingScreenOperation
KeyingScreenOperation()
Definition
COM_KeyingScreenOperation.cc:23
blender::compositor::KeyingScreenOperation::smoothness_
float smoothness_
Definition
COM_KeyingScreenOperation.h:32
blender::compositor::KeyingScreenOperation::set_movie_clip
void set_movie_clip(MovieClip *clip)
Definition
COM_KeyingScreenOperation.h:50
blender::compositor::KeyingScreenOperation::deinit_execution
void deinit_execution() override
Definition
COM_KeyingScreenOperation.cc:40
blender::compositor::KeyingScreenOperation::init_execution
void init_execution() override
Definition
COM_KeyingScreenOperation.cc:32
blender::compositor::KeyingScreenOperation::tracking_object_
char tracking_object_[64]
Definition
COM_KeyingScreenOperation.h:35
blender::compositor::KeyingScreenOperation::framenumber_
int framenumber_
Definition
COM_KeyingScreenOperation.h:33
blender::compositor::KeyingScreenOperation::determine_canvas
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
Definition
COM_KeyingScreenOperation.cc:140
blender::compositor::KeyingScreenOperation::set_smoothness
void set_smoothness(float smoothness)
Definition
COM_KeyingScreenOperation.h:58
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
Definition
COM_JumpFloodingAlgorithm.cc:20
blender::math::interpolate
T interpolate(const T &a, const T &b, const FactorT &t)
Definition
BLI_math_base.hh:239
blender::float4
VecBase< float, 4 > float4
Definition
BLI_math_vector_types.hh:613
blender::float2
VecBase< float, 2 > float2
Definition
BLI_math_vector_types.hh:611
inputs
static blender::bke::bNodeSocketTemplate inputs[]
Definition
node_texture_at.cc:11
string.h
MovieClip
Definition
DNA_movieclip_types.h:55
blender::compositor::KeyingScreenOperation::MarkerPoint
Definition
COM_KeyingScreenOperation.h:26
blender::compositor::KeyingScreenOperation::MarkerPoint::position
float2 position
Definition
COM_KeyingScreenOperation.h:27
blender::compositor::KeyingScreenOperation::MarkerPoint::color
float4 color
Definition
COM_KeyingScreenOperation.h:28
rcti
Definition
DNA_vec_types.h:68
Generated on Sat Oct 4 2025 05:32:23 for Blender by
doxygen
1.14.0