Blender V5.0
blender::deg::ComponentNode Struct Reference

#include <deg_node_component.hh>

Inherits blender::deg::Node.

Inherited by blender::deg::AudioComponentNode, blender::deg::BoneComponentNode, and blender::deg::ParametersComponentNode.

Classes

struct  OperationIDKey

Public Member Functions

virtual bool depends_on_cow ()
virtual bool need_tag_cow_before_update (const IDRecalcFlag)
Standard Component Methods
 ComponentNode ()
 ~ComponentNode () override
void init (const ID *id, const char *subdata) override
std::string identifier () const override
OperationNodefind_operation (OperationIDKey key) const
OperationNodefind_operation (OperationCode opcode, StringRef name="", int name_tag=-1) const
OperationNodeget_operation (OperationIDKey key) const
OperationNodeget_operation (OperationCode opcode, StringRef name="", int name_tag=-1) const
bool has_operation (OperationIDKey key) const
bool has_operation (OperationCode opcode, StringRef name="", int name_tag=-1) const
OperationNodeadd_operation (const DepsEvalOperationCb &op, OperationCode opcode, const StringRef name="", int name_tag=-1)
void set_entry_operation (OperationNode *op_node)
void set_exit_operation (OperationNode *op_node)
void clear_operations ()
void tag_update (Depsgraph *graph, eUpdateSource source) override
OperationNodeget_entry_operation () override
OperationNodeget_exit_operation () override
void finalize_build (Depsgraph *graph)
Public Member Functions inherited from blender::deg::Node
 Node ()
virtual ~Node ()
virtual NodeClass get_class () const
 MEM_CXX_CLASS_ALLOC_FUNCS ("Node")

Public Attributes

IDNodeowner
Map< ComponentNode::OperationIDKey, OperationNode * > * operations_map
Vector< OperationNode * > operations
OperationNodeentry_operation
OperationNodeexit_operation
bool possibly_affects_visible_id
bool affects_visible_id
Public Attributes inherited from blender::deg::Node
std::string name
NodeType type
Relations inlinks
Relations outlinks
Stats stats
int custom_flags

Additional Inherited Members

Public Types inherited from blender::deg::Node
using Relations = Vector<Relation *>

Detailed Description

Definition at line 32 of file deg_node_component.hh.

Constructor & Destructor Documentation

◆ ComponentNode()

blender::deg::ComponentNode::ComponentNode ( )

◆ ~ComponentNode()

blender::deg::ComponentNode::~ComponentNode ( )
override

Definition at line 52 of file deg_node_component.cc.

References clear_operations(), and operations_map.

Member Function Documentation

◆ add_operation()

OperationNode * blender::deg::ComponentNode::add_operation ( const DepsEvalOperationCb & op,
OperationCode opcode,
const StringRef name = "",
int name_tag = -1 )

Create a new node for representing an operation and add this to graph

Warning
If an existing node is found, it will be modified. This helps when node may have been partially created earlier (e.g. parent ref before parent item is added)
Parameters
opcodeThe operation to perform.
nameAn optional identifier for operation. It will be used to tell operation nodes with the same code apart. For example, parameter operation code will have name set to the corresponding custom property name
name_tagAn optional integer tag for the name. Is an additional way to tell operations apart. For example, RNA path to an array property will have the same opcode of PARAMETERS, name corresponding to the property name, and name tag corresponding to the array index within the property.

Definition at line 127 of file deg_node_component.cc.

References BLI_assert_msg, blender::deg::DepsNodeFactory::create_node(), blender::deg::OperationNode::evaluate, find_operation(), identifier(), blender::deg::OperationNode::identifier(), blender::deg::Node::name, blender::deg::OperationNode::name_tag, blender::deg::OperationNode::opcode, blender::deg::OPERATION, operations_map, blender::deg::OperationNode::owner, and blender::deg::type_get_factory().

Referenced by blender::deg::DepsgraphNodeBuilder::add_id_node(), and blender::deg::DepsgraphNodeBuilder::add_operation_node().

◆ clear_operations()

void blender::deg::ComponentNode::clear_operations ( )

Definition at line 174 of file deg_node_component.cc.

References operations, and operations_map.

Referenced by ~ComponentNode().

◆ depends_on_cow()

virtual bool blender::deg::ComponentNode::depends_on_cow ( )
inlinevirtual

Definition at line 131 of file deg_node_component.hh.

◆ finalize_build()

void blender::deg::ComponentNode::finalize_build ( Depsgraph * graph)

Definition at line 246 of file deg_node_component.cc.

References operations, and operations_map.

◆ find_operation() [1/2]

OperationNode * blender::deg::ComponentNode::find_operation ( OperationCode opcode,
StringRef name = "",
int name_tag = -1 ) const

Definition at line 86 of file deg_node_component.cc.

References find_operation(), and blender::deg::Node::name.

◆ find_operation() [2/2]

◆ get_entry_operation()

OperationNode * blender::deg::ComponentNode::get_entry_operation ( )
overridevirtual

Reimplemented from blender::deg::Node.

Definition at line 204 of file deg_node_component.cc.

References entry_operation, operations, and operations_map.

◆ get_exit_operation()

OperationNode * blender::deg::ComponentNode::get_exit_operation ( )
overridevirtual

Reimplemented from blender::deg::Node.

Definition at line 225 of file deg_node_component.cc.

References exit_operation, operations, and operations_map.

◆ get_operation() [1/2]

OperationNode * blender::deg::ComponentNode::get_operation ( OperationCode opcode,
StringRef name = "",
int name_tag = -1 ) const

Definition at line 108 of file deg_node_component.cc.

References get_operation(), and blender::deg::Node::name.

◆ get_operation() [2/2]

OperationNode * blender::deg::ComponentNode::get_operation ( OperationIDKey key) const

◆ has_operation() [1/2]

bool blender::deg::ComponentNode::has_operation ( OperationCode opcode,
StringRef name = "",
int name_tag = -1 ) const

Definition at line 121 of file deg_node_component.cc.

References has_operation(), and blender::deg::Node::name.

◆ has_operation() [2/2]

bool blender::deg::ComponentNode::has_operation ( OperationIDKey key) const

Definition at line 116 of file deg_node_component.cc.

References find_operation().

Referenced by has_operation().

◆ identifier()

std::string blender::deg::ComponentNode::identifier ( ) const
overridevirtual

◆ init()

void blender::deg::ComponentNode::init ( const ID * id,
const char * subdata )
overridevirtual

Initialize 'component' node - from pointer data given.

Reimplemented from blender::deg::Node.

Definition at line 45 of file deg_node_component.cc.

Referenced by blender::deg::BoneComponentNode::init().

◆ need_tag_cow_before_update()

virtual bool blender::deg::ComponentNode::need_tag_cow_before_update ( const IDRecalcFlag )
inlinevirtual

◆ set_entry_operation()

void blender::deg::ComponentNode::set_entry_operation ( OperationNode * op_node)

Definition at line 162 of file deg_node_component.cc.

References BLI_assert, and entry_operation.

◆ set_exit_operation()

void blender::deg::ComponentNode::set_exit_operation ( OperationNode * op_node)

Definition at line 168 of file deg_node_component.cc.

References BLI_assert, and exit_operation.

◆ tag_update()

void blender::deg::ComponentNode::tag_update ( Depsgraph * graph,
eUpdateSource source )
overridevirtual

Reimplemented from blender::deg::Node.

Definition at line 188 of file deg_node_component.cc.

References operations, and operations_map.

Member Data Documentation

◆ affects_visible_id

bool blender::deg::ComponentNode::affects_visible_id

◆ entry_operation

OperationNode* blender::deg::ComponentNode::entry_operation

◆ exit_operation

OperationNode* blender::deg::ComponentNode::exit_operation

Definition at line 129 of file deg_node_component.hh.

Referenced by ComponentNode(), get_exit_operation(), and set_exit_operation().

◆ operations

◆ operations_map

◆ owner

◆ possibly_affects_visible_id

bool blender::deg::ComponentNode::possibly_affects_visible_id

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