Blender
V4.3
source
blender
compositor
operations
COM_InpaintOperation.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 "
BLI_array.hh
"
8
#include "
BLI_math_vector_types.hh
"
9
#include "
BLI_span.hh
"
10
11
#include "
COM_NodeOperation.h
"
12
13
namespace
blender::compositor
{
14
15
class
InpaintSimpleOperation
:
public
NodeOperation
{
16
protected
:
17
MemoryBuffer
*
cached_buffer_
;
18
bool
cached_buffer_ready_
;
19
int
max_distance_
;
20
21
public
:
22
InpaintSimpleOperation
();
23
24
void
compute_inpainting_region
(
const
MemoryBuffer
*input,
25
const
MemoryBuffer
&inpainted_region,
26
const
MemoryBuffer
&distance_to_boundary,
27
MemoryBuffer
*
output
);
28
29
void
fill_inpainting_region
(
const
MemoryBuffer
*input,
30
Span<int2>
flooded_boundary,
31
MemoryBuffer
&filled_region,
32
MemoryBuffer
&distance_to_boundary_buffer,
33
MemoryBuffer
&smoothing_radius_buffer);
34
35
Array<int2>
compute_inpainting_boundary
(
const
MemoryBuffer
*input);
36
37
void
inpaint
(
const
MemoryBuffer
*input,
MemoryBuffer
*
output
);
38
39
void
init_execution
()
override
;
40
41
void
deinit_execution
()
override
;
42
43
void
set_max_distance
(
int
max_distance)
44
{
45
max_distance_
= max_distance;
46
}
47
48
void
get_area_of_interest
(
int
input_idx,
const
rcti
&output_area,
rcti
&r_input_area)
override
;
49
void
update_memory_buffer
(
MemoryBuffer
*
output
,
50
const
rcti
&area,
51
Span<MemoryBuffer *>
inputs
)
override
;
52
};
53
54
}
// namespace blender::compositor
BLI_array.hh
BLI_math_vector_types.hh
BLI_span.hh
COM_NodeOperation.h
output
#define output
blender::Array
Definition
BLI_array.hh:50
blender::Span
Definition
BLI_span.hh:75
blender::compositor::InpaintSimpleOperation::compute_inpainting_region
void compute_inpainting_region(const MemoryBuffer *input, const MemoryBuffer &inpainted_region, const MemoryBuffer &distance_to_boundary, MemoryBuffer *output)
Definition
COM_InpaintOperation.cc:19
blender::compositor::InpaintSimpleOperation::update_memory_buffer
void update_memory_buffer(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_InpaintOperation.cc:185
blender::compositor::InpaintSimpleOperation::max_distance_
int max_distance_
Definition
COM_InpaintOperation.h:19
blender::compositor::InpaintSimpleOperation::deinit_execution
void deinit_execution() override
Definition
COM_InpaintOperation.cc:166
blender::compositor::InpaintSimpleOperation::InpaintSimpleOperation
InpaintSimpleOperation()
Definition
COM_InpaintOperation.cc:152
blender::compositor::InpaintSimpleOperation::inpaint
void inpaint(const MemoryBuffer *input, MemoryBuffer *output)
Definition
COM_InpaintOperation.cc:133
blender::compositor::InpaintSimpleOperation::set_max_distance
void set_max_distance(int max_distance)
Definition
COM_InpaintOperation.h:43
blender::compositor::InpaintSimpleOperation::cached_buffer_
MemoryBuffer * cached_buffer_
Definition
COM_InpaintOperation.h:17
blender::compositor::InpaintSimpleOperation::init_execution
void init_execution() override
Definition
COM_InpaintOperation.cc:160
blender::compositor::InpaintSimpleOperation::cached_buffer_ready_
bool cached_buffer_ready_
Definition
COM_InpaintOperation.h:18
blender::compositor::InpaintSimpleOperation::compute_inpainting_boundary
Array< int2 > compute_inpainting_boundary(const MemoryBuffer *input)
Definition
COM_InpaintOperation.cc:93
blender::compositor::InpaintSimpleOperation::fill_inpainting_region
void fill_inpainting_region(const MemoryBuffer *input, Span< int2 > flooded_boundary, MemoryBuffer &filled_region, MemoryBuffer &distance_to_boundary_buffer, MemoryBuffer &smoothing_radius_buffer)
Definition
COM_InpaintOperation.cc:52
blender::compositor::InpaintSimpleOperation::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_InpaintOperation.cc:176
blender::compositor::MemoryBuffer
a MemoryBuffer contains access to the data
Definition
COM_MemoryBuffer.h:35
blender::compositor::NodeOperation::NodeOperation
NodeOperation()
Definition
COM_NodeOperation.cc:18
blender::compositor
Definition
COM_JumpFloodingAlgorithm.cc:20
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