Blender
V5.0
source
blender
nodes
geometry
include
NOD_geo_index_switch.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 "
DNA_node_types.h
"
8
9
#include "
NOD_socket_items.hh
"
10
11
namespace
blender::nodes
{
12
17
struct
IndexSwitchItemsAccessor
:
public
socket_items::SocketItemsAccessorDefaults
{
18
using
ItemT
=
IndexSwitchItem
;
19
static
StructRNA
*
item_srna
;
20
static
int
node_type
;
21
static
constexpr
StringRefNull
node_idname
=
"GeometryNodeIndexSwitch"
;
22
static
constexpr
bool
has_type
=
false
;
23
static
constexpr
bool
has_name
=
false
;
24
25
static
socket_items::SocketItemsRef<IndexSwitchItem>
get_items_from_node
(
bNode
&node)
26
{
27
auto
&storage = *
static_cast<
NodeIndexSwitch
*
>
(node.
storage
);
28
return
{&storage.items, &storage.items_num,
nullptr
};
29
}
30
31
static
void
copy_item
(
const
IndexSwitchItem
&src,
IndexSwitchItem
&dst)
32
{
33
dst = src;
34
}
35
36
static
void
destruct_item
(
IndexSwitchItem
*
/*item*/
) {}
37
38
static
void
blend_write_item
(
BlendWriter
*writer,
const
ItemT
&item);
39
static
void
blend_read_data_item
(
BlendDataReader
*reader,
ItemT
&item);
40
41
static
void
init
(
bNode
&node,
IndexSwitchItem
&item)
42
{
43
auto
&storage = *
static_cast<
NodeIndexSwitch
*
>
(node.
storage
);
44
item.
identifier
= storage.next_identifier++;
45
}
46
47
static
std::string
socket_identifier_for_item
(
const
IndexSwitchItem
&item)
48
{
49
return
"Item_"
+ std::to_string(item.
identifier
);
50
}
51
};
52
53
}
// namespace blender::nodes
DNA_node_types.h
NOD_socket_items.hh
blender::StringRefNull
Definition
BLI_string_ref.hh:132
blender::nodes
Definition
BKE_compute_contexts.hh:29
BlendDataReader
Definition
readfile.cc:577
BlendWriter
Definition
writefile.cc:511
IndexSwitchItem
Definition
DNA_node_types.h:2390
IndexSwitchItem::identifier
int identifier
Definition
DNA_node_types.h:2392
NodeIndexSwitch
Definition
DNA_node_types.h:2395
StructRNA
Definition
rna_internal_types.hh:663
bNode
Definition
DNA_node_types.h:422
bNode::storage
void * storage
Definition
DNA_node_types.h:496
blender::nodes::IndexSwitchItemsAccessor
Definition
NOD_geo_index_switch.hh:17
blender::nodes::IndexSwitchItemsAccessor::has_name
static constexpr bool has_name
Definition
NOD_geo_index_switch.hh:23
blender::nodes::IndexSwitchItemsAccessor::init
static void init(bNode &node, IndexSwitchItem &item)
Definition
NOD_geo_index_switch.hh:41
blender::nodes::IndexSwitchItemsAccessor::item_srna
static StructRNA * item_srna
Definition
NOD_geo_index_switch.hh:19
blender::nodes::IndexSwitchItemsAccessor::socket_identifier_for_item
static std::string socket_identifier_for_item(const IndexSwitchItem &item)
Definition
NOD_geo_index_switch.hh:47
blender::nodes::IndexSwitchItemsAccessor::destruct_item
static void destruct_item(IndexSwitchItem *)
Definition
NOD_geo_index_switch.hh:36
blender::nodes::IndexSwitchItemsAccessor::blend_read_data_item
static void blend_read_data_item(BlendDataReader *reader, ItemT &item)
Definition
node_geo_index_switch.cc:503
blender::nodes::IndexSwitchItemsAccessor::get_items_from_node
static socket_items::SocketItemsRef< IndexSwitchItem > get_items_from_node(bNode &node)
Definition
NOD_geo_index_switch.hh:25
blender::nodes::IndexSwitchItemsAccessor::ItemT
IndexSwitchItem ItemT
Definition
NOD_geo_index_switch.hh:18
blender::nodes::IndexSwitchItemsAccessor::node_type
static int node_type
Definition
NOD_geo_index_switch.hh:20
blender::nodes::IndexSwitchItemsAccessor::copy_item
static void copy_item(const IndexSwitchItem &src, IndexSwitchItem &dst)
Definition
NOD_geo_index_switch.hh:31
blender::nodes::IndexSwitchItemsAccessor::has_type
static constexpr bool has_type
Definition
NOD_geo_index_switch.hh:22
blender::nodes::IndexSwitchItemsAccessor::blend_write_item
static void blend_write_item(BlendWriter *writer, const ItemT &item)
Definition
node_geo_index_switch.cc:499
blender::nodes::IndexSwitchItemsAccessor::node_idname
static constexpr StringRefNull node_idname
Definition
NOD_geo_index_switch.hh:21
blender::nodes::socket_items::SocketItemsAccessorDefaults
Definition
NOD_socket_items.hh:35
blender::nodes::socket_items::SocketItemsRef
Definition
NOD_socket_items.hh:48
Generated on
for Blender by
doxygen
1.16.1