Blender  V3.3
Classes | Public Member Functions | Public Attributes | List of all members
blender::deg::ComponentNode Struct Reference

#include <deg_node_component.h>

Inheritance diagram for blender::deg::ComponentNode:
blender::deg::Node blender::deg::BoneComponentNode blender::deg::ParametersComponentNode

Classes

struct  OperationIDKey
 

Public Member Functions

virtual bool depends_on_cow ()
 
virtual bool need_tag_cow_before_update ()
 
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
typedef Vector< Relation * > Relations
 

Detailed Description

Definition at line 32 of file deg_node_component.h.

Constructor & Destructor Documentation

◆ ComponentNode()

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

Definition at line 69 of file deg_node_component.cc.

References operations_map.

◆ ~ComponentNode()

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

Definition at line 85 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 158 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 ( )

◆ depends_on_cow()

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

Definition at line 127 of file deg_node_component.h.

◆ finalize_build()

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

◆ find_operation() [1/2]

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

Definition at line 117 of file deg_node_component.cc.

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

◆ find_operation() [2/2]

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

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

Definition at line 139 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,
const char *  name = "",
int  name_tag = -1 
) const

Definition at line 152 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 147 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.

Reimplemented in blender::deg::BoneComponentNode.

Definition at line 78 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 ( )
inlinevirtual

Reimplemented in blender::deg::ParametersComponentNode.

Definition at line 134 of file deg_node_component.h.

◆ set_entry_operation()

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

Definition at line 193 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 199 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 219 of file deg_node_component.cc.

References graph, 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 125 of file deg_node_component.h.

Referenced by get_exit_operation(), and set_exit_operation().

◆ operations

Vector<OperationNode *> blender::deg::ComponentNode::operations

◆ operations_map

Map<ComponentNode::OperationIDKey, OperationNode *>* blender::deg::ComponentNode::operations_map

◆ owner

IDNode* blender::deg::ComponentNode::owner

◆ possibly_affects_visible_id

bool blender::deg::ComponentNode::possibly_affects_visible_id

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