Blender  V3.3
Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
Node Union Referenceabstract

#include <node.h>

Inheritance diagram for Node:
Background BufferParams BufferPass Camera DenoiseParams Film Geometry Integrator Light Object ParticleSystem Pass Procedural Shader ShaderNode

Public Member Functions

 Node (const NodeType *type, ustring name=ustring())
 
virtual ~Node ()=0
 
void set (const SocketType &input, bool value)
 
void set (const SocketType &input, int value)
 
void set (const SocketType &input, uint value)
 
void set (const SocketType &input, float value)
 
void set (const SocketType &input, float2 value)
 
void set (const SocketType &input, float3 value)
 
void set (const SocketType &input, const char *value)
 
void set (const SocketType &input, ustring value)
 
void set (const SocketType &input, const Transform &value)
 
void set (const SocketType &input, Node *value)
 
template<class ValueType , typename std::enable_if_t< std::is_enum_v< ValueType >> * = nullptr>
void set (const SocketType &input, const ValueType &value)
 
void set (const SocketType &input, array< bool > &value)
 
void set (const SocketType &input, array< int > &value)
 
void set (const SocketType &input, array< float > &value)
 
void set (const SocketType &input, array< float2 > &value)
 
void set (const SocketType &input, array< float3 > &value)
 
void set (const SocketType &input, array< ustring > &value)
 
void set (const SocketType &input, array< Transform > &value)
 
void set (const SocketType &input, array< Node * > &value)
 
bool get_bool (const SocketType &input) const
 
int get_int (const SocketType &input) const
 
uint get_uint (const SocketType &input) const
 
float get_float (const SocketType &input) const
 
float2 get_float2 (const SocketType &input) const
 
float3 get_float3 (const SocketType &input) const
 
ustring get_string (const SocketType &input) const
 
Transform get_transform (const SocketType &input) const
 
Nodeget_node (const SocketType &input) const
 
const array< bool > & get_bool_array (const SocketType &input) const
 
const array< int > & get_int_array (const SocketType &input) const
 
const array< float > & get_float_array (const SocketType &input) const
 
const array< float2 > & get_float2_array (const SocketType &input) const
 
const array< float3 > & get_float3_array (const SocketType &input) const
 
const array< ustring > & get_string_array (const SocketType &input) const
 
const array< Transform > & get_transform_array (const SocketType &input) const
 
const array< Node * > & get_node_array (const SocketType &input) const
 
bool has_default_value (const SocketType &input) const
 
void set_default_value (const SocketType &input)
 
bool equals_value (const Node &other, const SocketType &input) const
 
void copy_value (const SocketType &input, const Node &other, const SocketType &other_input)
 
void set_value (const SocketType &input, const Node &other, const SocketType &other_input)
 
bool equals (const Node &other) const
 
void hash (MD5Hash &md5)
 
size_t get_total_size_in_bytes () const
 
bool is_a (const NodeType *type)
 
bool socket_is_modified (const SocketType &input) const
 
bool is_modified () const
 
void tag_modified ()
 
void clear_modified ()
 
void print_modified_sockets () const
 
const NodeOwnerget_owner () const
 
void set_owner (const NodeOwner *owner_)
 
int reference_count () const
 
void reference ()
 
void dereference ()
 
void clear_reference_count ()
 

Public Attributes

ustring name
 
const NodeTypetype
 
InternalNode internal
 
LeafNode leaf
 

Protected Member Functions

template<typename T >
void set_if_different (const SocketType &input, T value)
 
void set_if_different (const SocketType &input, Node *value)
 
template<typename T >
void set_if_different (const SocketType &input, array< T > &value)
 
void set_if_different (const SocketType &input, array< Node * > &value)
 
void dereference_all_used_nodes ()
 

Static Protected Member Functions

template<typename T >
static Tget_socket_value (const Node *node, const SocketType &socket)
 

Protected Attributes

const NodeOwnerowner
 
int ref_count {0}
 
SocketModifiedFlags socket_modified
 

Detailed Description

Definition at line 89 of file graph/node.h.

Constructor & Destructor Documentation

◆ Node()

Node::Node ( const NodeType type,
ustring  name = ustring() 
)
explicit

◆ ~Node()

Node::~Node ( )
pure virtual

Definition at line 38 of file graph/node.cpp.

Member Function Documentation

◆ clear_modified()

void Node::clear_modified ( )

Definition at line 814 of file graph/node.cpp.

References socket_modified.

◆ clear_reference_count()

void Node::clear_reference_count ( )
inline

Definition at line 198 of file graph/node.h.

References ref_count.

Referenced by Scene::delete_node_impl().

◆ copy_value()

void Node::copy_value ( const SocketType input,
const Node other,
const SocketType other_input 
)

◆ dereference()

void Node::dereference ( )
inline

Definition at line 190 of file graph/node.h.

References ref_count.

Referenced by set_if_different().

◆ dereference_all_used_nodes()

void Node::dereference_all_used_nodes ( )
protected

◆ equals()

bool Node::equals ( const Node other) const

Definition at line 549 of file graph/node.cpp.

References equals_value(), NodeType::inputs, and type.

◆ equals_value()

bool Node::equals_value ( const Node other,
const SocketType input 
) const

◆ get_bool()

bool Node::get_bool ( const SocketType input) const

Definition at line 179 of file graph/node.cpp.

References SocketType::BOOLEAN, and input.

◆ get_bool_array()

const array< bool > & Node::get_bool_array ( const SocketType input) const

Definition at line 244 of file graph/node.cpp.

References SocketType::BOOLEAN_ARRAY, and input.

◆ get_float()

float Node::get_float ( const SocketType input) const

◆ get_float2()

float2 Node::get_float2 ( const SocketType input) const

Definition at line 203 of file graph/node.cpp.

References input, and SocketType::POINT2.

◆ get_float2_array()

const array< float2 > & Node::get_float2_array ( const SocketType input) const

Definition at line 262 of file graph/node.cpp.

References input, and SocketType::POINT2_ARRAY.

◆ get_float3()

float3 Node::get_float3 ( const SocketType input) const

◆ get_float3_array()

const array< float3 > & Node::get_float3_array ( const SocketType input) const

Definition at line 268 of file graph/node.cpp.

References input, and is_socket_array_float3().

◆ get_float_array()

const array< float > & Node::get_float_array ( const SocketType input) const

Definition at line 256 of file graph/node.cpp.

References SocketType::FLOAT_ARRAY, and input.

◆ get_int()

int Node::get_int ( const SocketType input) const

Definition at line 185 of file graph/node.cpp.

References SocketType::ENUM, input, and SocketType::INT.

◆ get_int_array()

const array< int > & Node::get_int_array ( const SocketType input) const

Definition at line 250 of file graph/node.cpp.

References input, and SocketType::INT_ARRAY.

◆ get_node()

Node * Node::get_node ( const SocketType input) const

Definition at line 237 of file graph/node.cpp.

References input, and SocketType::NODE.

◆ get_node_array()

const array< Node * > & Node::get_node_array ( const SocketType input) const

Definition at line 286 of file graph/node.cpp.

References input, and SocketType::NODE_ARRAY.

◆ get_owner()

const NodeOwner * Node::get_owner ( ) const

Definition at line 768 of file graph/node.cpp.

References owner.

◆ get_socket_value()

template<typename T >
static T& Node::get_socket_value ( const Node node,
const SocketType socket 
)
inlinestaticprotected

Definition at line 207 of file graph/node.h.

References node, SocketType::struct_offset, and T.

Referenced by set_if_different(), and set_value().

◆ get_string()

ustring Node::get_string ( const SocketType input) const

Definition at line 215 of file graph/node.cpp.

References SocketType::ENUM, NodeEnum::exists(), input, and SocketType::STRING.

◆ get_string_array()

const array< ustring > & Node::get_string_array ( const SocketType input) const

Definition at line 274 of file graph/node.cpp.

References input, and SocketType::STRING_ARRAY.

◆ get_total_size_in_bytes()

size_t Node::get_total_size_in_bytes ( ) const

◆ get_transform()

Transform Node::get_transform ( const SocketType input) const

Definition at line 231 of file graph/node.cpp.

References input, and SocketType::TRANSFORM.

◆ get_transform_array()

const array< Transform > & Node::get_transform_array ( const SocketType input) const

Definition at line 280 of file graph/node.cpp.

References input, and SocketType::TRANSFORM_ARRAY.

◆ get_uint()

uint Node::get_uint ( const SocketType input) const

Definition at line 191 of file graph/node.cpp.

References input, and SocketType::UINT.

◆ has_default_value()

bool Node::has_default_value ( const SocketType input) const

Definition at line 294 of file graph/node.cpp.

References input, and src.

◆ hash()

void Node::hash ( MD5Hash md5)

◆ is_a()

bool Node::is_a ( const NodeType type)

Definition at line 758 of file graph/node.cpp.

References NodeType::base, and type.

Referenced by xml_read_node().

◆ is_modified()

bool Node::is_modified ( ) const

◆ print_modified_sockets()

void Node::print_modified_sockets ( ) const

Definition at line 881 of file graph/node.cpp.

References NodeType::inputs, name, SocketType::name, socket_is_modified(), and type.

◆ reference()

void Node::reference ( )
inline

Definition at line 185 of file graph/node.h.

References ref_count.

Referenced by ShaderManager::add_default(), and set_if_different().

◆ reference_count()

int Node::reference_count ( ) const
inline

◆ set() [1/19]

void Node::set ( const SocketType input,
array< bool > &  value 
)

Definition at line 130 of file graph/node.cpp.

References SocketType::BOOLEAN_ARRAY, input, and set_if_different().

◆ set() [2/19]

void Node::set ( const SocketType input,
array< float > &  value 
)

Definition at line 142 of file graph/node.cpp.

References SocketType::FLOAT_ARRAY, input, and set_if_different().

◆ set() [3/19]

void Node::set ( const SocketType input,
array< float2 > &  value 
)

Definition at line 148 of file graph/node.cpp.

References input, SocketType::POINT2_ARRAY, and set_if_different().

◆ set() [4/19]

void Node::set ( const SocketType input,
array< float3 > &  value 
)

Definition at line 154 of file graph/node.cpp.

References input, is_socket_array_float3(), and set_if_different().

◆ set() [5/19]

void Node::set ( const SocketType input,
array< int > &  value 
)

Definition at line 136 of file graph/node.cpp.

References input, SocketType::INT_ARRAY, and set_if_different().

◆ set() [6/19]

void Node::set ( const SocketType input,
array< Node * > &  value 
)

Definition at line 172 of file graph/node.cpp.

References input, SocketType::NODE_ARRAY, and set_if_different().

◆ set() [7/19]

void Node::set ( const SocketType input,
array< Transform > &  value 
)

Definition at line 166 of file graph/node.cpp.

References input, set_if_different(), and SocketType::TRANSFORM_ARRAY.

◆ set() [8/19]

void Node::set ( const SocketType input,
array< ustring > &  value 
)

Definition at line 160 of file graph/node.cpp.

References input, set_if_different(), and SocketType::STRING_ARRAY.

◆ set() [9/19]

void Node::set ( const SocketType input,
bool  value 
)

Definition at line 57 of file graph/node.cpp.

References SocketType::BOOLEAN, input, and set_if_different().

Referenced by BKE_scene_base_iter_next(), set(), and set_value().

◆ set() [10/19]

void Node::set ( const SocketType input,
const char *  value 
)

Definition at line 93 of file graph/node.cpp.

References input, and set().

◆ set() [11/19]

void Node::set ( const SocketType input,
const Transform value 
)

Definition at line 117 of file graph/node.cpp.

References input, set_if_different(), and SocketType::TRANSFORM.

◆ set() [12/19]

template<class ValueType , typename std::enable_if_t< std::is_enum_v< ValueType >> * = nullptr>
void Node::set ( const SocketType input,
const ValueType &  value 
)
inline

Definition at line 108 of file graph/node.h.

References input, and set().

◆ set() [13/19]

void Node::set ( const SocketType input,
float  value 
)

Definition at line 75 of file graph/node.cpp.

References SocketType::FLOAT, input, and set_if_different().

◆ set() [14/19]

void Node::set ( const SocketType input,
float2  value 
)

Definition at line 81 of file graph/node.cpp.

References input, SocketType::POINT2, and set_if_different().

◆ set() [15/19]

void Node::set ( const SocketType input,
float3  value 
)

Definition at line 87 of file graph/node.cpp.

References input, is_socket_float3(), and set_if_different().

◆ set() [16/19]

void Node::set ( const SocketType input,
int  value 
)

Definition at line 63 of file graph/node.cpp.

References SocketType::ENUM, input, SocketType::INT, and set_if_different().

◆ set() [17/19]

void Node::set ( const SocketType input,
Node value 
)

Definition at line 123 of file graph/node.cpp.

References input, SocketType::NODE, and set_if_different().

◆ set() [18/19]

void Node::set ( const SocketType input,
uint  value 
)

Definition at line 69 of file graph/node.cpp.

References input, set_if_different(), and SocketType::UINT.

◆ set() [19/19]

void Node::set ( const SocketType input,
ustring  value 
)

◆ set_default_value()

void Node::set_default_value ( const SocketType input)

Definition at line 301 of file graph/node.cpp.

References SocketType::default_value, SocketType::size(), src, and SocketType::struct_offset.

Referenced by Node().

◆ set_if_different() [1/4]

void Node::set_if_different ( const SocketType input,
array< Node * > &  value 
)
protected

Definition at line 860 of file graph/node.cpp.

References get_socket_value(), input, socket_is_modified(), and socket_modified.

◆ set_if_different() [2/4]

template<typename T >
void Node::set_if_different ( const SocketType input,
array< T > &  value 
)
protected

Definition at line 848 of file graph/node.cpp.

References get_socket_value(), input, socket_is_modified(), and socket_modified.

◆ set_if_different() [3/4]

void Node::set_if_different ( const SocketType input,
Node value 
)
protected

Definition at line 829 of file graph/node.cpp.

References dereference(), input, reference(), and socket_modified.

◆ set_if_different() [4/4]

template<typename T >
void Node::set_if_different ( const SocketType input,
T  value 
)
protected

Definition at line 819 of file graph/node.cpp.

References input, and socket_modified.

Referenced by set().

◆ set_owner()

void Node::set_owner ( const NodeOwner owner_)

Definition at line 773 of file graph/node.cpp.

References owner.

Referenced by xml_read_shader_graph().

◆ set_value()

void Node::set_value ( const SocketType input,
const Node other,
const SocketType other_input 
)

◆ socket_is_modified()

bool Node::socket_is_modified ( const SocketType input) const

Definition at line 799 of file graph/node.cpp.

References input, and socket_modified.

Referenced by print_modified_sockets(), and set_if_different().

◆ tag_modified()

void Node::tag_modified ( )

Member Data Documentation

◆ internal

InternalNode Node::internal

Definition at line 163 of file octree.h.

Referenced by Octree::scanConvert().

◆ leaf

LeafNode Node::leaf

Definition at line 164 of file octree.h.

◆ name

ustring Node::name

Definition at line 174 of file graph/node.h.

Referenced by ShaderManager::add_default(), OSLNode::add_input(), OSLNode::add_output(), BlenderSession::bake(), BKE_object_facemap_index_map_create(), ConstantFolder::bypass(), RenderStats::collect_profiling(), GeometryManager::collect_statistics(), CurvesNode::compile(), Geometry::compute_bvh(), ShaderGraph::connect(), copy_particle_systems_to_object(), GeometryManager::create_volume_mesh(), BakeManager::device_update(), ShaderManager::device_update_common(), ObjectManager::device_update_object_transform(), SVMShaderManager::device_update_shader(), ConstantFolder::discard(), GeometryManager::displace(), drw_volume_object_grids_init(), ShaderGraph::dump_graph(), ED_mesh_join_objects_exec(), ed_preview_draw_rect(), Pass::find(), BufferParams::find_pass(), Film::get_aov_offset(), ShaderManager::get_cryptomatte_materials(), ObjectManager::get_cryptomatte_objects(), gpencil_armatures_enum_itemf(), ShaderNode::input(), lineart_gpencil_generate(), ConstantFolder::make_constant(), Geometry::need_attribute(), Node(), ShaderNode::output(), preview_get_world(), print_modified_sockets(), render_image_update_pass_and_layer(), screen_render_invoke(), screen_render_single_layer_set(), ShaderNode::ShaderNode(), OutputAOVNode::simplify_settings(), SVMCompiler::stack_find_offset(), switch_preview_floor_material(), template_id_liboverride_hierarchy_collections_tag_recursive(), blender::bke::VertexGroupsAttributeProvider::try_delete(), blender::bke::VertexGroupsAttributeProvider::try_get_for_read(), blender::bke::VertexGroupsAttributeProvider::try_get_for_write(), GeometryManager::update_osl_attributes(), Hair::update_shadow_transparency(), updateDepsgraph(), xml_read_state(), and xml_write_node().

◆ owner

const NodeOwner* Node::owner
protected

Definition at line 204 of file graph/node.h.

Referenced by get_owner(), Node(), and set_owner().

◆ ref_count

int Node::ref_count {0}
protected

Definition at line 205 of file graph/node.h.

Referenced by clear_reference_count(), dereference(), reference(), and reference_count().

◆ socket_modified

SocketModifiedFlags Node::socket_modified
protected

◆ type

const NodeType* Node::type

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