Blender
V4.3
source
blender
compositor
operations
COM_MapValueOperation.cc
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
#include "
COM_MapValueOperation.h
"
6
7
namespace
blender::compositor
{
8
9
MapValueOperation::MapValueOperation
()
10
{
11
this->
add_input_socket
(
DataType::Value
);
12
this->
add_output_socket
(
DataType::Value
);
13
flags_
.can_be_constant =
true
;
14
}
15
16
void
MapValueOperation::update_memory_buffer_partial
(
MemoryBuffer
*
output
,
17
const
rcti
&area,
18
Span<MemoryBuffer *>
inputs
)
19
{
20
for
(
BuffersIterator<float>
it =
output
->iterate_with(
inputs
, area); !it.is_end(); ++it) {
21
const
float
input = *it.in(0);
22
const
TexMapping
*texmap = settings_;
23
float
value = (input + texmap->
loc
[0]) * texmap->
size
[0];
24
if
(texmap->
flag
&
TEXMAP_CLIP_MIN
) {
25
if
(value < texmap->
min
[0]) {
26
value = texmap->
min
[0];
27
}
28
}
29
if
(texmap->
flag
&
TEXMAP_CLIP_MAX
) {
30
if
(value > texmap->
max
[0]) {
31
value = texmap->
max
[0];
32
}
33
}
34
35
it.out[0] = value;
36
}
37
}
38
39
}
// namespace blender::compositor
COM_MapValueOperation.h
TEXMAP_CLIP_MIN
@ TEXMAP_CLIP_MIN
Definition
DNA_texture_types.h:267
TEXMAP_CLIP_MAX
@ TEXMAP_CLIP_MAX
Definition
DNA_texture_types.h:268
output
#define output
blender::Span
Definition
BLI_span.hh:75
blender::compositor::MapValueOperation::MapValueOperation
MapValueOperation()
Definition
COM_MapValueOperation.cc:9
blender::compositor::MapValueOperation::update_memory_buffer_partial
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_MapValueOperation.cc:16
blender::compositor::MemoryBuffer
a MemoryBuffer contains access to the data
Definition
COM_MemoryBuffer.h:35
blender::compositor::NodeOperation::add_output_socket
void add_output_socket(DataType datatype)
Definition
COM_NodeOperation.cc:102
blender::compositor::NodeOperation::flags_
NodeOperationFlags flags_
Definition
COM_NodeOperation.h:295
blender::compositor::NodeOperation::add_input_socket
void add_input_socket(DataType datatype, ResizeMode resize_mode=ResizeMode::Center)
Definition
COM_NodeOperation.cc:97
blender::compositor::DataType::Value
@ Value
Value data type.
Definition
COM_defines.h:23
blender::compositor
Definition
COM_JumpFloodingAlgorithm.cc:20
blender::compositor::BuffersIterator
typename BuffersIteratorBuilder< T >::Iterator BuffersIterator
Definition
COM_BuffersIterator.h:179
inputs
static blender::bke::bNodeSocketTemplate inputs[]
Definition
node_texture_at.cc:11
min
#define min(a, b)
Definition
sort.c:32
TexMapping
Definition
DNA_texture_types.h:232
TexMapping::min
float min[3]
Definition
DNA_texture_types.h:242
TexMapping::flag
int flag
Definition
DNA_texture_types.h:237
TexMapping::size
float size[3]
Definition
DNA_texture_types.h:236
TexMapping::max
float max[3]
Definition
DNA_texture_types.h:242
TexMapping::loc
float loc[3]
Definition
DNA_texture_types.h:233
rcti
Definition
DNA_vec_types.h:68
Generated on Sat Oct 4 2025 05:32:23 for Blender by
doxygen
1.14.0