Blender
V4.3
source
blender
compositor
operations
COM_DilateErodeOperation.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
9
namespace
blender::compositor
{
10
11
class
DilateErodeThresholdOperation
:
public
MultiThreadedOperation
{
12
public
:
13
struct
PixelData
;
14
15
private
:
16
float
distance_;
17
float
switch_;
18
float
inset_;
19
24
int
scope_;
25
26
public
:
27
/* DilateErode Distance Threshold */
28
DilateErodeThresholdOperation
();
29
30
void
init_data
()
override
;
31
32
void
set_distance
(
float
distance
)
33
{
34
distance_ =
distance
;
35
}
36
void
set_switch
(
float
sw)
37
{
38
switch_ = sw;
39
}
40
void
set_inset
(
float
inset)
41
{
42
inset_ = inset;
43
}
44
45
void
get_area_of_interest
(
int
input_idx,
const
rcti
&output_area,
rcti
&r_input_area)
override
;
46
void
update_memory_buffer_partial
(
MemoryBuffer
*
output
,
47
const
rcti
&area,
48
Span<MemoryBuffer *>
inputs
)
override
;
49
};
50
51
class
DilateDistanceOperation
:
public
MultiThreadedOperation
{
52
public
:
53
struct
PixelData
;
54
55
protected
:
56
float
distance_
;
57
int
scope_
;
58
59
public
:
60
/* Dilate Distance. */
61
DilateDistanceOperation
();
62
63
void
init_data
()
override
;
64
65
void
set_distance
(
float
distance
)
66
{
67
distance_
=
distance
;
68
}
69
void
get_area_of_interest
(
int
input_idx,
const
rcti
&output_area,
rcti
&r_input_area)
final
;
70
virtual
void
update_memory_buffer_partial
(
MemoryBuffer
*
output
,
71
const
rcti
&area,
72
Span<MemoryBuffer *>
inputs
)
override
;
73
};
74
75
class
ErodeDistanceOperation
:
public
DilateDistanceOperation
{
76
public
:
77
/* Erode Distance */
78
ErodeDistanceOperation
();
79
80
void
update_memory_buffer_partial
(
MemoryBuffer
*
output
,
81
const
rcti
&area,
82
Span<MemoryBuffer *>
inputs
)
override
;
83
};
84
85
class
DilateStepOperation
:
public
MultiThreadedOperation
{
86
protected
:
87
int
iterations_
;
88
89
public
:
90
/* Dilate step */
91
DilateStepOperation
();
92
93
void
set_iterations
(
int
iterations)
94
{
95
iterations_
= iterations;
96
}
97
98
void
get_area_of_interest
(
int
input_idx,
const
rcti
&output_area,
rcti
&r_input_area)
final
;
99
virtual
void
update_memory_buffer_partial
(
MemoryBuffer
*
output
,
100
const
rcti
&area,
101
Span<MemoryBuffer *>
inputs
)
override
;
102
};
103
104
class
ErodeStepOperation
:
public
DilateStepOperation
{
105
public
:
107
ErodeStepOperation
();
108
109
void
update_memory_buffer_partial
(
MemoryBuffer
*
output
,
110
const
rcti
&area,
111
Span<MemoryBuffer *>
inputs
)
override
;
112
};
113
114
}
// namespace blender::compositor
COM_MultiThreadedOperation.h
output
#define output
blender::Span
Definition
BLI_span.hh:75
blender::compositor::DilateDistanceOperation::get_area_of_interest
void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) final
Get input operation area being read by this operation on rendering given output area.
Definition
COM_DilateErodeOperation.cc:159
blender::compositor::DilateDistanceOperation::distance_
float distance_
Definition
COM_DilateErodeOperation.h:56
blender::compositor::DilateDistanceOperation::update_memory_buffer_partial
virtual void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_DilateErodeOperation.cc:234
blender::compositor::DilateDistanceOperation::set_distance
void set_distance(float distance)
Definition
COM_DilateErodeOperation.h:65
blender::compositor::DilateDistanceOperation::DilateDistanceOperation
DilateDistanceOperation()
Definition
COM_DilateErodeOperation.cc:143
blender::compositor::DilateDistanceOperation::init_data
void init_data() override
Definition
COM_DilateErodeOperation.cc:151
blender::compositor::DilateDistanceOperation::scope_
int scope_
Definition
COM_DilateErodeOperation.h:57
blender::compositor::DilateErodeThresholdOperation::set_distance
void set_distance(float distance)
Definition
COM_DilateErodeOperation.h:32
blender::compositor::DilateErodeThresholdOperation::DilateErodeThresholdOperation
DilateErodeThresholdOperation()
Definition
COM_DilateErodeOperation.cc:9
blender::compositor::DilateErodeThresholdOperation::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_DilateErodeOperation.cc:37
blender::compositor::DilateErodeThresholdOperation::set_inset
void set_inset(float inset)
Definition
COM_DilateErodeOperation.h:40
blender::compositor::DilateErodeThresholdOperation::init_data
void init_data() override
Definition
COM_DilateErodeOperation.cc:19
blender::compositor::DilateErodeThresholdOperation::set_switch
void set_switch(float sw)
Definition
COM_DilateErodeOperation.h:36
blender::compositor::DilateErodeThresholdOperation::update_memory_buffer_partial
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_DilateErodeOperation.cc:91
blender::compositor::DilateStepOperation::set_iterations
void set_iterations(int iterations)
Definition
COM_DilateErodeOperation.h:93
blender::compositor::DilateStepOperation::update_memory_buffer_partial
virtual void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_DilateErodeOperation.cc:381
blender::compositor::DilateStepOperation::iterations_
int iterations_
Definition
COM_DilateErodeOperation.h:87
blender::compositor::DilateStepOperation::get_area_of_interest
void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) final
Get input operation area being read by this operation on rendering given output area.
Definition
COM_DilateErodeOperation.cc:267
blender::compositor::DilateStepOperation::DilateStepOperation
DilateStepOperation()
Definition
COM_DilateErodeOperation.cc:261
blender::compositor::ErodeDistanceOperation::ErodeDistanceOperation
ErodeDistanceOperation()
Definition
COM_DilateErodeOperation.cc:245
blender::compositor::ErodeDistanceOperation::update_memory_buffer_partial
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_DilateErodeOperation.cc:250
blender::compositor::ErodeStepOperation::ErodeStepOperation
ErodeStepOperation()
Definition
COM_DilateErodeOperation.cc:388
blender::compositor::ErodeStepOperation::update_memory_buffer_partial
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_DilateErodeOperation.cc:400
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
inputs
static blender::bke::bNodeSocketTemplate inputs[]
Definition
node_texture_at.cc:11
distance
float distance(float a, float b)
Definition
node_voronoi.h:34
blender::compositor::DilateDistanceOperation::PixelData
Definition
COM_DilateErodeOperation.cc:171
blender::compositor::DilateErodeThresholdOperation::PixelData
Definition
COM_DilateErodeOperation.cc:49
rcti
Definition
DNA_vec_types.h:68
Generated on Sat Oct 4 2025 05:32:23 for Blender by
doxygen
1.14.0