Blender V4.3
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 ()
 
void init (const ID *id, const char *subdata) override
 
virtual string identifier () const override
 
OperationNodefind_operation (OperationIDKey key) const
 
OperationNodefind_operation (OperationCode opcode, const char *name="", int name_tag=-1) const
 
OperationNodeget_operation (OperationIDKey key) const
 
OperationNodeget_operation (OperationCode opcode, const char *name="", int name_tag=-1) const
 
bool has_operation (OperationIDKey key) const
 
bool has_operation (OperationCode opcode, const char *name="", int name_tag=-1) const
 
OperationNodeadd_operation (const DepsEvalOperationCb &op, OperationCode opcode, const char *name="", int name_tag=-1)
 
void set_entry_operation (OperationNode *op_node)
 
void set_exit_operation (OperationNode *op_node)
 
void clear_operations ()
 
virtual void tag_update (Depsgraph *graph, eUpdateSource source) override
 
virtual OperationNodeget_entry_operation () override
 
virtual 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
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 33 of file deg_node_component.hh.

Constructor & Destructor Documentation

◆ ComponentNode()

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

Definition at line 70 of file deg_node_component.cc.

References Map, and operations_map.

◆ ~ComponentNode()

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

Definition at line 86 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 char * 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 161 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 208 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 128 of file deg_node_component.hh.

◆ finalize_build()

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

Definition at line 280 of file deg_node_component.cc.

References operations_map.

◆ find_operation() [1/2]

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

Definition at line 120 of file deg_node_component.cc.

References find_operation().

◆ find_operation() [2/2]

◆ get_entry_operation()

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

Reimplemented from blender::deg::Node.

Definition at line 238 of file deg_node_component.cc.

References entry_operation, and operations_map.

◆ get_exit_operation()

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

Reimplemented from blender::deg::Node.

Definition at line 259 of file deg_node_component.cc.

References exit_operation, and operations_map.

◆ get_operation() [1/2]

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

Definition at line 142 of file deg_node_component.cc.

References get_operation().

◆ 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,
const char * name = "",
int name_tag = -1 ) const

Definition at line 155 of file deg_node_component.cc.

References has_operation().

◆ has_operation() [2/2]

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

Definition at line 150 of file deg_node_component.cc.

References find_operation().

Referenced by has_operation().

◆ identifier()

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 79 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 196 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 202 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

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 126 of file deg_node_component.hh.

Referenced by get_exit_operation(), and set_exit_operation().

◆ operations

Vector<OperationNode *> blender::deg::ComponentNode::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: