Blender V5.0
blender::bke::bNodeSocketRuntime Class Reference

#include <BKE_node_runtime.hh>

Inherits blender::NonCopyable, and blender::NonMovable.

Public Attributes

const nodes::SocketDeclarationdeclaration = nullptr
uint32_t changed_flag = 0
short total_inputs = 0
nodes::StructureType inferred_structure_type = nodes::StructureType::Dynamic
float2 location
Vector< bNodeLink * > directly_linked_links
Vector< bNodeSocket * > directly_linked_sockets
Vector< bNodeSocket * > logically_linked_sockets
Vector< bNodeSocket * > logically_linked_skipped_sockets
bNodeowner_node = nullptr
bNodeSocketinternal_link_input = nullptr
int index_in_node = -1
int index_in_all_sockets = -1
int index_in_inout_sockets = -1

Detailed Description

Run-time data for every socket. This should only contain data that is somewhat persistent (i.e. data that lives longer than a single depsgraph evaluation + redraw). Data that's only used in smaller scopes should generally be stored in separate arrays and/or maps.

Definition at line 272 of file BKE_node_runtime.hh.

Member Data Documentation

◆ changed_flag

uint32_t blender::bke::bNodeSocketRuntime::changed_flag = 0

eNodeTreeChangedFlag.

Definition at line 282 of file BKE_node_runtime.hh.

◆ declaration

const nodes::SocketDeclaration* blender::bke::bNodeSocketRuntime::declaration = nullptr

References a socket declaration that is owned by node->declaration. This is only runtime data. It has to be updated when the node declaration changes. Access can be allowed by using #AllowUsingOutdatedInfo.

Definition at line 279 of file BKE_node_runtime.hh.

◆ directly_linked_links

Vector<bNodeLink *> blender::bke::bNodeSocketRuntime::directly_linked_links

Only valid when #topology_cache_is_dirty is false.

Definition at line 309 of file BKE_node_runtime.hh.

◆ directly_linked_sockets

Vector<bNodeSocket *> blender::bke::bNodeSocketRuntime::directly_linked_sockets

Definition at line 310 of file BKE_node_runtime.hh.

◆ index_in_all_sockets

int blender::bke::bNodeSocketRuntime::index_in_all_sockets = -1

Definition at line 316 of file BKE_node_runtime.hh.

◆ index_in_inout_sockets

int blender::bke::bNodeSocketRuntime::index_in_inout_sockets = -1

Definition at line 317 of file BKE_node_runtime.hh.

◆ index_in_node

int blender::bke::bNodeSocketRuntime::index_in_node = -1

Definition at line 315 of file BKE_node_runtime.hh.

◆ inferred_structure_type

nodes::StructureType blender::bke::bNodeSocketRuntime::inferred_structure_type = nodes::StructureType::Dynamic

Inferred structure type of the socket. This is not necessarily the same as the structure type that is displayed in the UI. For example, it would be #StructureType::Single for an unlinked input of the Math node, but the socket is displayed as #StructureType::Dynamic.

This is stored on the socket instead of as array in bNodeTreeRuntime because the data needs to stay attached to the socket even when the node tree changes. This is used when e.g. syncing a newly created Separate Bundle node to an existing Combine Bundle node.

Definition at line 299 of file BKE_node_runtime.hh.

◆ internal_link_input

bNodeSocket* blender::bke::bNodeSocketRuntime::internal_link_input = nullptr

Definition at line 314 of file BKE_node_runtime.hh.

◆ location

float2 blender::bke::bNodeSocketRuntime::location

The location of the socket in the tree, calculated while drawing the nodes and invalid if the node tree hasn't been drawn yet. In the node tree's "world space" (the same as #bNode::runtime::draw_bounds).

Definition at line 306 of file BKE_node_runtime.hh.

◆ logically_linked_skipped_sockets

Vector<bNodeSocket *> blender::bke::bNodeSocketRuntime::logically_linked_skipped_sockets

Definition at line 312 of file BKE_node_runtime.hh.

◆ logically_linked_sockets

Vector<bNodeSocket *> blender::bke::bNodeSocketRuntime::logically_linked_sockets

Definition at line 311 of file BKE_node_runtime.hh.

◆ owner_node

bNode* blender::bke::bNodeSocketRuntime::owner_node = nullptr

Definition at line 313 of file BKE_node_runtime.hh.

◆ total_inputs

short blender::bke::bNodeSocketRuntime::total_inputs = 0

Runtime-only cache of the number of input links, for multi-input sockets, including dragged node links that aren't actually in the tree.

Definition at line 288 of file BKE_node_runtime.hh.


The documentation for this class was generated from the following file: