Blender
V4.3
source
blender
nodes
NOD_inverse_eval_params.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2024 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#pragma once
6
7
#include "
BLI_map.hh
"
8
9
#include "
BKE_node_runtime.hh
"
10
#include "
BKE_node_socket_value.hh
"
11
12
namespace
blender::nodes::inverse_eval
{
13
23
class
InverseEvalParams
{
24
private
:
25
const
Map<const bNodeSocket *, bke::SocketValueVariant>
&socket_values_;
26
Map<const bNodeSocket *, bke::SocketValueVariant>
&updated_socket_values_;
27
28
public
:
29
const
bNode
&
node
;
30
31
InverseEvalParams
(
const
bNode
&node,
32
const
Map<const bNodeSocket *, bke::SocketValueVariant>
&socket_values,
33
Map<const bNodeSocket *, bke::SocketValueVariant>
&updated_socket_values);
34
35
template
<
typename
T> T
get_output
(
const
StringRef
identifier)
const
36
{
37
const
bNodeSocket
&socket = node.output_by_identifier(identifier);
38
if
(
const
bke::SocketValueVariant
*value = socket_values_.
lookup_ptr
(&socket)) {
39
return
value->get<T>();
40
}
41
return
T
();
42
}
43
44
template
<
typename
T> T
get_input
(
const
StringRef
identifier)
const
45
{
46
const
bNodeSocket
&socket = node.input_by_identifier(identifier);
47
if
(
const
bke::SocketValueVariant
*value = socket_values_.
lookup_ptr
(&socket)) {
48
return
value->get<T>();
49
}
50
return
T
();
51
}
52
53
template
<
typename
T>
void
set_input
(
const
StringRef
identifier, T value)
54
{
55
const
bNodeSocket
&socket = node.input_by_identifier(identifier);
56
updated_socket_values_.
add
(&socket,
bke::SocketValueVariant
(value));
57
}
58
};
59
60
}
// namespace blender::nodes::inverse_eval
BKE_node_runtime.hh
BKE_node_socket_value.hh
BLI_map.hh
blender::Map
Definition
BLI_map.hh:129
blender::Map::lookup_ptr
const Value * lookup_ptr(const Key &key) const
Definition
BLI_map.hh:484
blender::Map::add
bool add(const Key &key, const Value &value)
Definition
BLI_map.hh:271
blender::StringRef
Definition
BLI_string_ref.hh:128
blender::bke::SocketValueVariant
Definition
BKE_node_socket_value.hh:33
blender::nodes::inverse_eval::InverseEvalParams
Definition
NOD_inverse_eval_params.hh:23
blender::nodes::inverse_eval::InverseEvalParams::node
const bNode & node
Definition
NOD_inverse_eval_params.hh:29
blender::nodes::inverse_eval::InverseEvalParams::InverseEvalParams
InverseEvalParams(const bNode &node, const Map< const bNodeSocket *, bke::SocketValueVariant > &socket_values, Map< const bNodeSocket *, bke::SocketValueVariant > &updated_socket_values)
Definition
inverse_eval.cc:791
blender::nodes::inverse_eval::InverseEvalParams::set_input
void set_input(const StringRef identifier, T value)
Definition
NOD_inverse_eval_params.hh:53
blender::nodes::inverse_eval::InverseEvalParams::get_input
T get_input(const StringRef identifier) const
Definition
NOD_inverse_eval_params.hh:44
blender::nodes::inverse_eval::InverseEvalParams::get_output
T get_output(const StringRef identifier) const
Definition
NOD_inverse_eval_params.hh:35
T
#define T
Definition
mball_tessellate.cc:273
blender::nodes::inverse_eval
Definition
BKE_node.hh:76
bNodeSocket
Definition
DNA_node_types.h:121
bNode
Definition
DNA_node_types.h:357
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0