Blender V4.3
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
 
float2 location
 
std::optional< FieldSocketStatefield_state
 
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 223 of file BKE_node_runtime.hh.

Member Data Documentation

◆ changed_flag

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

eNodeTreeChangedFlag.

Definition at line 233 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 230 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 254 of file BKE_node_runtime.hh.

◆ directly_linked_sockets

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

Definition at line 255 of file BKE_node_runtime.hh.

◆ field_state

std::optional<FieldSocketState> blender::bke::bNodeSocketRuntime::field_state

This is computed during field inferencing and influences the socket shape in geometry nodes.

Definition at line 251 of file BKE_node_runtime.hh.

◆ index_in_all_sockets

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

Definition at line 261 of file BKE_node_runtime.hh.

◆ index_in_inout_sockets

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

Definition at line 262 of file BKE_node_runtime.hh.

◆ index_in_node

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

Definition at line 260 of file BKE_node_runtime.hh.

◆ internal_link_input

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

Definition at line 259 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::totr).

Definition at line 246 of file BKE_node_runtime.hh.

◆ logically_linked_skipped_sockets

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

Definition at line 257 of file BKE_node_runtime.hh.

◆ logically_linked_sockets

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

Definition at line 256 of file BKE_node_runtime.hh.

◆ owner_node

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

Definition at line 258 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 239 of file BKE_node_runtime.hh.


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