Blender
V4.3
source
blender
compositor
operations
COM_DoubleEdgeMaskOperation.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_span.hh
"
8
9
#include "
COM_MultiThreadedOperation.h
"
10
11
namespace
blender::compositor
{
12
13
class
DoubleEdgeMaskOperation
:
public
NodeOperation
{
14
private
:
15
bool
include_all_inner_edges_;
16
bool
include_edges_of_image_;
17
18
bool
is_output_rendered_;
19
20
public
:
21
DoubleEdgeMaskOperation
();
22
23
void
compute_boundary
(
const
float
*inner_mask,
24
const
float
*outer_mask,
25
MutableSpan<int2>
inner_boundary,
26
MutableSpan<int2>
outer_boundary);
27
28
void
compute_gradient
(
const
float
*inner_mask_buffer,
29
const
float
*outer_mask_buffer,
30
MutableSpan<int2>
flooded_inner_boundary,
31
MutableSpan<int2>
flooded_outer_boundary,
32
float
*output_mask);
33
34
void
compute_double_edge_mask
(
const
float
*inner_mask,
35
const
float
*outer_mask,
36
float
*output_mask);
37
38
void
set_include_all_inner_edges
(
bool
include_all_inner_edges)
39
{
40
include_all_inner_edges_ = include_all_inner_edges;
41
}
42
void
set_include_edges_of_image
(
bool
include_edges_of_image)
43
{
44
include_edges_of_image_ = include_edges_of_image;
45
}
46
47
void
get_area_of_interest
(
int
input_idx,
const
rcti
&output_area,
rcti
&r_input_area)
override
;
48
49
void
update_memory_buffer
(
MemoryBuffer
*
output
,
50
const
rcti
&area,
51
Span<MemoryBuffer *>
inputs
)
override
;
52
};
53
54
}
// namespace blender::compositor
BLI_span.hh
COM_MultiThreadedOperation.h
output
#define output
blender::MutableSpan
Definition
BLI_span.hh:444
blender::Span
Definition
BLI_span.hh:75
blender::compositor::DoubleEdgeMaskOperation::update_memory_buffer
void update_memory_buffer(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_DoubleEdgeMaskOperation.cc:159
blender::compositor::DoubleEdgeMaskOperation::DoubleEdgeMaskOperation
DoubleEdgeMaskOperation()
Definition
COM_DoubleEdgeMaskOperation.cc:141
blender::compositor::DoubleEdgeMaskOperation::compute_double_edge_mask
void compute_double_edge_mask(const float *inner_mask, const float *outer_mask, float *output_mask)
Definition
COM_DoubleEdgeMaskOperation.cc:127
blender::compositor::DoubleEdgeMaskOperation::compute_boundary
void compute_boundary(const float *inner_mask, const float *outer_mask, MutableSpan< int2 > inner_boundary, MutableSpan< int2 > outer_boundary)
Definition
COM_DoubleEdgeMaskOperation.cc:34
blender::compositor::DoubleEdgeMaskOperation::set_include_all_inner_edges
void set_include_all_inner_edges(bool include_all_inner_edges)
Definition
COM_DoubleEdgeMaskOperation.h:38
blender::compositor::DoubleEdgeMaskOperation::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_DoubleEdgeMaskOperation.cc:152
blender::compositor::DoubleEdgeMaskOperation::compute_gradient
void compute_gradient(const float *inner_mask_buffer, const float *outer_mask_buffer, MutableSpan< int2 > flooded_inner_boundary, MutableSpan< int2 > flooded_outer_boundary, float *output_mask)
Definition
COM_DoubleEdgeMaskOperation.cc:89
blender::compositor::DoubleEdgeMaskOperation::set_include_edges_of_image
void set_include_edges_of_image(bool include_edges_of_image)
Definition
COM_DoubleEdgeMaskOperation.h:42
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