Blender
V4.3
source
blender
compositor
operations
COM_CalculateMeanOperation.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_ConstantOperation.h
"
8
#include "
DNA_node_types.h
"
9
#include <functional>
10
11
namespace
blender::compositor
{
12
17
class
CalculateMeanOperation
:
public
ConstantOperation
{
18
public
:
19
struct
PixelsSum
{
20
float
sum
;
21
int
num_pixels
;
22
};
23
24
protected
:
25
bool
is_calculated_
;
26
float
constant_value_
;
27
int
setting_
;
28
std::function<
float
(
const
float
*elem)>
setting_func_
;
29
30
public
:
31
CalculateMeanOperation
();
32
33
void
init_execution
()
override
;
34
35
void
set_setting
(
int
setting);
36
37
void
get_area_of_interest
(
int
input_idx,
const
rcti
&output_area,
rcti
&r_input_area)
override
;
38
void
determine_canvas
(
const
rcti
&preferred_area,
rcti
&r_area)
override
;
39
40
const
float
*
get_constant_elem
()
override
;
41
void
update_memory_buffer
(
MemoryBuffer
*
output
,
42
const
rcti
&area,
43
Span<MemoryBuffer *>
inputs
)
override
;
44
45
protected
:
46
/* Calculate value which will be written to the single-element output in the
47
* update_memory_buffer().
48
* The caller takes care of checking the value is only calculated once. */
49
virtual
float
calculate_value
(
const
MemoryBuffer
*input)
const
;
50
51
float
calculate_mean
(
const
MemoryBuffer
*input)
const
;
52
53
private
:
54
PixelsSum
calc_area_sum(
const
MemoryBuffer
*input,
const
rcti
&area)
const
;
55
};
56
57
}
// namespace blender::compositor
COM_ConstantOperation.h
DNA_node_types.h
output
#define output
blender::Span
Definition
BLI_span.hh:75
blender::compositor::CalculateMeanOperation::constant_value_
float constant_value_
Definition
COM_CalculateMeanOperation.h:26
blender::compositor::CalculateMeanOperation::get_constant_elem
const float * get_constant_elem() override
Definition
COM_CalculateMeanOperation.cc:76
blender::compositor::CalculateMeanOperation::update_memory_buffer
void update_memory_buffer(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_CalculateMeanOperation.cc:86
blender::compositor::CalculateMeanOperation::setting_
int setting_
Definition
COM_CalculateMeanOperation.h:27
blender::compositor::CalculateMeanOperation::calculate_mean
float calculate_mean(const MemoryBuffer *input) const
Definition
COM_CalculateMeanOperation.cc:104
blender::compositor::CalculateMeanOperation::setting_func_
std::function< float(const float *elem)> setting_func_
Definition
COM_CalculateMeanOperation.h:28
blender::compositor::CalculateMeanOperation::set_setting
void set_setting(int setting)
Definition
COM_CalculateMeanOperation.cc:31
blender::compositor::CalculateMeanOperation::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_CalculateMeanOperation.cc:62
blender::compositor::CalculateMeanOperation::CalculateMeanOperation
CalculateMeanOperation()
Definition
COM_CalculateMeanOperation.cc:13
blender::compositor::CalculateMeanOperation::determine_canvas
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
Definition
COM_CalculateMeanOperation.cc:70
blender::compositor::CalculateMeanOperation::init_execution
void init_execution() override
Definition
COM_CalculateMeanOperation.cc:26
blender::compositor::CalculateMeanOperation::calculate_value
virtual float calculate_value(const MemoryBuffer *input) const
Definition
COM_CalculateMeanOperation.cc:99
blender::compositor::CalculateMeanOperation::is_calculated_
bool is_calculated_
Definition
COM_CalculateMeanOperation.h:25
blender::compositor::ConstantOperation::ConstantOperation
ConstantOperation()
Definition
COM_ConstantOperation.cc:9
blender::compositor::MemoryBuffer
a MemoryBuffer contains access to the data
Definition
COM_MemoryBuffer.h:35
float
draw_view in_light_buf[] float
Definition
eevee_light_culling_info.hh:42
blender::compositor
Definition
COM_JumpFloodingAlgorithm.cc:20
inputs
static blender::bke::bNodeSocketTemplate inputs[]
Definition
node_texture_at.cc:11
blender::compositor::CalculateMeanOperation::PixelsSum
Definition
COM_CalculateMeanOperation.h:19
blender::compositor::CalculateMeanOperation::PixelsSum::num_pixels
int num_pixels
Definition
COM_CalculateMeanOperation.h:21
blender::compositor::CalculateMeanOperation::PixelsSum::sum
float sum
Definition
COM_CalculateMeanOperation.h:20
rcti
Definition
DNA_vec_types.h:68
Generated on Sat Oct 4 2025 05:32:23 for Blender by
doxygen
1.14.0