32 const std::string codebuf = std::to_string(
int(
opcode));
33 return "OperationIDKey(" + codebuf +
", " +
name +
")";
61 const std::string name_part =
name[0] ? (std::string(
" '") +
name +
"'") :
"";
63 return "[" + type_name +
"]" + name_part +
" : " +
75 if (op_node->opcode == key.
opcode && op_node->name_tag == key.
name_tag &&
76 op_node->name == key.
name)
97 if (node ==
nullptr) {
99 "%s: find_operation(%s) failed\n",
102 BLI_assert_msg(0,
"Request for non-existing operation, should not happen");
142 op_node->
owner =
this;
146 "add_operation: Operation already exists - %s has %s at %p\n",
194 op_node->tag_update(graph, source);
199 op_node->tag_update(graph, source);
Blender kernel action and pose functionality.
bPoseChannel * BKE_pose_channel_find_name(const bPose *pose, const char *name)
#define BLI_assert_msg(a, msg)
Object is a sort of wrapper for general info.
#define DEG_COMPONENT_NODE_DEFINE(name, NAME, id_recalc_tag)
void register_node_typeinfo(DepsNodeFactory *factory)
@ NTREE_GEOMETRY_PREPROCESS
void deg_register_component_depsnodes()
DepsNodeFactory * type_get_factory(const NodeType type)
std::function< void(::Depsgraph *)> DepsEvalOperationCb
void init(const ID *id, const char *subdata) override
struct bPoseChannel * pchan
std::string identifier() const
OperationNode * get_entry_operation() override
bool possibly_affects_visible_id
std::string identifier() const override
OperationNode * get_operation(OperationIDKey key) const
void init(const ID *id, const char *subdata) override
void tag_update(Depsgraph *graph, eUpdateSource source) override
OperationNode * exit_operation
Vector< OperationNode * > operations
OperationNode * find_operation(OperationIDKey key) const
OperationNode * add_operation(const DepsEvalOperationCb &op, OperationCode opcode, const StringRef name="", int name_tag=-1)
OperationNode * get_exit_operation() override
bool has_operation(OperationIDKey key) const
void set_exit_operation(OperationNode *op_node)
void finalize_build(Depsgraph *graph)
~ComponentNode() override
OperationNode * entry_operation
Map< ComponentNode::OperationIDKey, OperationNode * > * operations_map
void set_entry_operation(OperationNode *op_node)
virtual const char * type_name() const =0
virtual Node * create_node(const ID *id, const char *subdata, StringRef name) const =0
DepsEvalOperationCb evaluate
std::string identifier() const override