Blender V4.3
blender::nodes::NodeDeclaration Class Reference

#include <NOD_node_declaration.hh>

Public Member Functions

bool is_valid () const
 
bool matches (const bNode &node) const
 
Span< SocketDeclaration * > sockets (eNodeSocketInOut in_out) const
 
const aal::RelationsInNodeanonymous_attribute_relations () const
 

Public Attributes

Vector< ItemDeclarationPtritems
 
Vector< SocketDeclaration * > inputs
 
Vector< SocketDeclaration * > outputs
 
std::unique_ptr< aal::RelationsInNodeanonymous_attribute_relations_
 
bool skip_updating_sockets = false
 
bool use_custom_socket_order = false
 
bool allow_any_socket_order = false
 
bool is_context_dependent = false
 
friend NodeDeclarationBuilder
 

Detailed Description

Definition at line 481 of file NOD_node_declaration.hh.

Member Function Documentation

◆ anonymous_attribute_relations()

const aal::RelationsInNode * blender::nodes::NodeDeclaration::anonymous_attribute_relations ( ) const
inline

◆ is_valid()

◆ matches()

bool blender::nodes::NodeDeclaration::matches ( const bNode & node) const

◆ sockets()

Span< SocketDeclaration * > blender::nodes::NodeDeclaration::sockets ( eNodeSocketInOut in_out) const

Definition at line 114 of file node_declaration.cc.

References inputs, outputs, and SOCK_IN.

Referenced by blender::nodes::search_link_ops_for_basic_node().

Member Data Documentation

◆ allow_any_socket_order

bool blender::nodes::NodeDeclaration::allow_any_socket_order = false

Usually output sockets come before input sockets currently. Only some specific nodes are exempt from that rule for now.

Definition at line 502 of file NOD_node_declaration.hh.

Referenced by blender::nodes::NodeDeclarationBuilder::allow_any_socket_order().

◆ anonymous_attribute_relations_

std::unique_ptr<aal::RelationsInNode> blender::nodes::NodeDeclaration::anonymous_attribute_relations_

◆ inputs

◆ is_context_dependent

bool blender::nodes::NodeDeclaration::is_context_dependent = false

True if any context was used to build this declaration.

Definition at line 507 of file NOD_node_declaration.hh.

Referenced by blender::nodes::NodeDeclarationBuilder::node_or_null(), and blender::nodes::NodeDeclarationBuilder::tree_or_null().

◆ items

◆ NodeDeclarationBuilder

friend blender::nodes::NodeDeclaration::NodeDeclarationBuilder

Definition at line 509 of file NOD_node_declaration.hh.

◆ outputs

◆ skip_updating_sockets

bool blender::nodes::NodeDeclaration::skip_updating_sockets = false

Leave the sockets in place, even if they don't match the declaration. Used for dynamic declarations when the information used to build the declaration is missing, but might become available again in the future.

Definition at line 494 of file NOD_node_declaration.hh.

Referenced by blender::nodes::node_group_declare(), blender::nodes::refresh_node(), and blender::ed::space_node::socket_needs_attribute_search().

◆ use_custom_socket_order

bool blender::nodes::NodeDeclaration::use_custom_socket_order = false

Use order of socket declarations for socket order instead of conventional outputs | buttons | inputs order. Panels are only supported when using custom socket order.

Definition at line 498 of file NOD_node_declaration.hh.

Referenced by blender::nodes::NodeDeclarationBuilder::allow_any_socket_order(), is_valid(), blender::nodes::node_group_declare(), and blender::nodes::NodeDeclarationBuilder::use_custom_socket_order().


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