Blender V4.5
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 ( )

Definition at line 36 of file deg_node_component.cc.

References operations_map.

◆ ~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(), key, blender::deg::Node::name, blender::deg::OperationNode::name_tag, blender::deg::OperationNode::opcode, blender::deg::OPERATION, operations_map, blender::deg::OperationNode::owner, this, 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 ( )

◆ depends_on_cow()

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

Definition at line 131 of file deg_node_component.hh.

◆ finalize_build()

◆ 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(), key, and blender::deg::Node::name.

◆ find_operation() [2/2]

◆ get_entry_operation()

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

◆ get_exit_operation()

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

◆ 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(), key, and blender::deg::Node::name.

◆ get_operation() [2/2]

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

Definition at line 94 of file deg_node_component.cc.

References BLI_assert_msg, find_operation(), identifier(), key, and node.

Referenced by get_operation().

◆ 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(), key, 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(), and key.

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.

Referenced by blender::deg::OperationNode::set_as_entry().

◆ 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.

Referenced by blender::deg::OperationNode::set_as_exit().

◆ 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 graph, operations, and operations_map.

Referenced by blender::deg::IDNode::tag_update().

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 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: