54 : opcode(opcode),
name(
""), name_tag(-1)
59 : opcode(opcode),
name(
name), name_tag(name_tag)
65 const string codebuf =
to_string(
static_cast<int>(opcode));
66 return "OperationIDKey(" + codebuf +
", " +
name +
")";
76 const int opcode_as_int =
static_cast<int>(opcode);
106 const string typebuf =
"" +
to_string(
static_cast<int>(
type)) +
")";
107 return typebuf +
name +
" : " + idname +
119 if (op_node->opcode == key.
opcode && op_node->name_tag == key.
name_tag &&
120 STREQ(op_node->name.c_str(), key.
name)) {
140 if (
node ==
nullptr) {
142 "%s: find_operation(%s) failed\n",
145 BLI_assert(!
"Request for non-existing operation, should not happen");
185 op_node->
owner =
this;
189 "add_operation: Operation already exists - %s has %s at %p\n",
238 op_node->tag_update(
graph, source);
243 op_node->tag_update(
graph, source);
Blender kernel action and pose functionality.
struct bPoseChannel * BKE_pose_channel_find_name(const struct bPose *pose, const char *name)
size_t BLI_ghashutil_combine_hash(size_t hash_a, size_t hash_b)
unsigned int BLI_ghashutil_uinthash(unsigned int key)
unsigned int BLI_ghashutil_strhash_p(const void *ptr)
@ ID_RECALC_COPY_ON_WRITE
Object is a sort of wrapper for general info.
void append(const T &value)
void reserve(const int64_t min_capacity)
DEG_COMPONENT_NODE_DEFINE(Animation, ANIMATION, ID_RECALC_ANIMATION)
void register_node_typeinfo(DepsNodeFactory *factory)
void deg_register_component_depsnodes()
DepsNodeFactory * type_get_factory(const NodeType type)
@ DEPSOP_FLAG_NEEDS_UPDATE
function< void(struct ::Depsgraph *)> DepsEvalOperationCb
std::string to_string(const T &n)
unsigned __int64 uint64_t
struct bPoseChannel * pchan
void init(const ID *id, const char *subdata)
bool operator==(const OperationIDKey &other) const
string identifier() const
virtual OperationNode * get_entry_operation() override
OperationNode * get_operation(OperationIDKey key) const
void init(const ID *id, const char *subdata) override
virtual 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 char *name, int name_tag)
virtual OperationNode * get_exit_operation() override
bool has_operation(OperationIDKey key) const
void set_exit_operation(OperationNode *op_node)
void finalize_build(Depsgraph *graph)
OperationNode * entry_operation
virtual string identifier() const override
Map< ComponentNode::OperationIDKey, OperationNode * > * operations_map
bool affects_directly_visible
void set_entry_operation(OperationNode *op_node)
virtual Node * create_node(const ID *id, const char *subdata, const char *name) const =0
DepsEvalOperationCb evaluate
virtual string identifier() const override