Blender V5.0
NOD_geometry_nodes_closure_signature.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_node.hh"
8
9#include "BLI_vector_set.hh"
10
12
13namespace blender::nodes {
14
17 public:
25
27 std::string operator()(const Item &item)
28 {
29 return item.key;
30 }
31 };
32
35
36 std::optional<int> find_input_index(StringRef key) const;
37 std::optional<int> find_output_index(StringRef key) const;
38
39 friend bool operator==(const ClosureSignature &a, const ClosureSignature &b);
40 friend bool operator!=(const ClosureSignature &a, const ClosureSignature &b);
41
43 bool allow_auto_structure_type);
45 bool allow_auto_structure_type);
46
48};
49
60 bool has_type_definition() const;
61
62 std::optional<ClosureSignature> get_merged_signature() const;
63};
64
65} // namespace blender::nodes
friend bool operator==(const ClosureSignature &a, const ClosureSignature &b)
std::optional< int > find_output_index(StringRef key) const
CustomIDVectorSet< Item, ItemKeyGetter > inputs
std::optional< int > find_input_index(StringRef key) const
CustomIDVectorSet< Item, ItemKeyGetter > outputs
friend bool operator!=(const ClosureSignature &a, const ClosureSignature &b)
static ClosureSignature from_evaluate_closure_node(const bNode &node, bool allow_auto_structure_type)
static ClosureSignature from_closure_output_node(const bNode &node, bool allow_auto_structure_type)
VectorSet< T, InlineBufferCapacity, DefaultProbingStrategy, CustomIDHash< T, GetIDFn >, CustomIDEqual< T, GetIDFn > > CustomIDVectorSet
Defines a socket type.
Definition BKE_node.hh:158
BLI_STRUCT_EQUALITY_OPERATORS_3(Item, key, type, structure_type)
std::optional< ClosureSignature > get_merged_signature() const