Blender
V5.0
source
blender
nodes
NOD_geometry_nodes_values.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2025 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#pragma once
6
7
#include "
BKE_geometry_set.hh
"
8
#include "
BKE_node.hh
"
9
#include "
BKE_node_socket_value.hh
"
10
#include "
BKE_volume_grid_fwd.hh
"
11
12
#include "
BLI_color_types.hh
"
13
#include "
BLI_math_quaternion_types.hh
"
14
#include "
BLI_math_vector_types.hh
"
15
#include "
BLI_memory_utils.hh
"
16
17
#include "
FN_field.hh
"
18
#include "
FN_lazy_function.hh
"
19
#include "
FN_multi_function.hh
"
20
21
#include "
NOD_geometry_nodes_bundle_fwd.hh
"
22
#include "
NOD_geometry_nodes_closure_fwd.hh
"
23
#include "
NOD_geometry_nodes_list_fwd.hh
"
24
25
namespace
blender
{
26
namespace
bke
{
27
class
SocketValueVariant
;
28
}
29
namespace
nodes
{
30
struct
GeoNodesUserData
;
31
}
32
}
// namespace blender
33
34
namespace
blender::nodes
{
35
36
template
<
typename
T>
struct
GeoNodesMultiInput
{
37
using
value_type
=
T
;
38
Vector<T>
values
;
39
};
40
template
<
typename
T>
constexpr
bool
is_GeoNodesMultiInput_v
=
false
;
41
template
<
typename
T>
constexpr
bool
is_GeoNodesMultiInput_v<GeoNodesMultiInput<T>
> =
true
;
42
47
[[nodiscard]]
bool
execute_multi_function_on_value_variant
(
48
const
mf::MultiFunction &
fn
,
49
const
std::shared_ptr<mf::MultiFunction> &owned_fn,
50
Span<bke::SocketValueVariant *>
input_values,
51
Span<bke::SocketValueVariant *>
output_values,
52
GeoNodesUserData
*user_data,
53
std::string &r_error_message);
54
55
[[nodiscard]]
inline
bool
execute_multi_function_on_value_variant
(
56
const
std::shared_ptr<mf::MultiFunction> &owned_fn,
57
const
Span<bke::SocketValueVariant *>
input_values,
58
const
Span<bke::SocketValueVariant *>
output_values,
59
GeoNodesUserData
*user_data,
60
std::string &r_error_message)
61
{
62
const
mf::MultiFunction &
fn
= *owned_fn;
63
return
execute_multi_function_on_value_variant
(
64
fn
, std::move(owned_fn), input_values, output_values, user_data, r_error_message);
65
}
66
67
[[nodiscard]]
inline
bool
execute_multi_function_on_value_variant
(
68
const
mf::MultiFunction &
fn
,
69
const
Span<bke::SocketValueVariant *>
input_values,
70
const
Span<bke::SocketValueVariant *>
output_values,
71
GeoNodesUserData
*user_data,
72
std::string &r_error_message)
73
{
74
return
execute_multi_function_on_value_variant
(
75
fn
, {}, input_values, output_values, user_data, r_error_message);
76
}
77
82
[[nodiscard]] std::optional<bke::SocketValueVariant>
implicitly_convert_socket_value
(
83
const
bke::bNodeSocketType
&from_type,
84
const
bke::SocketValueVariant
&from_value,
85
const
bke::bNodeSocketType
&
to_type
);
86
91
const
fn::lazy_function::LazyFunction
*
build_implicit_conversion_lazy_function
(
92
const
bke::bNodeSocketType
&from_type,
93
const
bke::bNodeSocketType
&
to_type
,
94
ResourceScope
&scope);
95
96
}
// namespace blender::nodes
BKE_geometry_set.hh
BKE_node.hh
BKE_node_socket_value.hh
BKE_volume_grid_fwd.hh
BLI_color_types.hh
BLI_math_quaternion_types.hh
BLI_math_vector_types.hh
BLI_memory_utils.hh
FN_field.hh
FN_lazy_function.hh
FN_multi_function.hh
NOD_geometry_nodes_bundle_fwd.hh
NOD_geometry_nodes_closure_fwd.hh
NOD_geometry_nodes_list_fwd.hh
blender::ResourceScope
Definition
BLI_resource_scope.hh:37
blender::Span
Definition
BLI_span.hh:74
blender::Vector
Definition
BLI_vector.hh:76
blender::bke::SocketValueVariant
Definition
BKE_node_socket_value.hh:34
blender::fn::lazy_function::LazyFunction
Definition
FN_lazy_function.hh:244
T
#define T
Definition
mball_tessellate.cc:274
blender::bke
Definition
AS_asset_library.hh:27
blender::fn
Definition
BKE_attribute.hh:27
blender::gpu::shader::to_type
static Type to_type(const GPUType type)
Definition
gpu_shader_create_info.hh:338
blender::nodes
Definition
BKE_compute_contexts.hh:29
blender::nodes::execute_multi_function_on_value_variant
bool execute_multi_function_on_value_variant(const MultiFunction &fn, const std::shared_ptr< MultiFunction > &owned_fn, const Span< SocketValueVariant * > input_values, const Span< SocketValueVariant * > output_values, GeoNodesUserData *user_data, std::string &r_error_message)
Definition
geometry_nodes_lazy_function.cc:498
blender::nodes::build_implicit_conversion_lazy_function
const LazyFunction * build_implicit_conversion_lazy_function(const bke::bNodeSocketType &from_type, const bke::bNodeSocketType &to_type, ResourceScope &scope)
Definition
geometry_nodes_lazy_function.cc:600
blender::nodes::implicitly_convert_socket_value
std::optional< SocketValueVariant > implicitly_convert_socket_value(const bke::bNodeSocketType &from_type, const SocketValueVariant &from_value, const bke::bNodeSocketType &to_type)
Definition
geometry_nodes_lazy_function.cc:539
blender::nodes::is_GeoNodesMultiInput_v
constexpr bool is_GeoNodesMultiInput_v
Definition
NOD_geometry_nodes_values.hh:40
blender
Definition
ANIM_action.hh:36
blender::bke::bNodeSocketType
Defines a socket type.
Definition
BKE_node.hh:158
blender::nodes::GeoNodesMultiInput
Definition
NOD_geometry_nodes_values.hh:36
blender::nodes::GeoNodesMultiInput::value_type
T value_type
Definition
NOD_geometry_nodes_values.hh:37
blender::nodes::GeoNodesMultiInput::values
Vector< T > values
Definition
NOD_geometry_nodes_values.hh:38
blender::nodes::GeoNodesUserData
Definition
NOD_geometry_nodes_lazy_function.hh:265
Generated on
for Blender by
doxygen
1.16.1