40 : opcode(opcode),
name(
""), name_tag(-1)
45 : opcode(opcode),
name(
name), name_tag(name_tag)
51 const string codebuf =
to_string(
static_cast<int>(opcode));
52 return "OperationIDKey(" + codebuf +
", " +
name +
")";
62 const int opcode_as_int =
static_cast<int>(opcode);
94 const string typebuf =
"" +
to_string(
static_cast<int>(
type)) +
")";
95 return typebuf +
name +
" : " + idname +
107 if (op_node->opcode == key.
opcode && op_node->name_tag == key.
name_tag &&
108 STREQ(op_node->name.c_str(), key.
name)) {
128 if (
node ==
nullptr) {
130 "%s: find_operation(%s) failed\n",
133 BLI_assert_msg(0,
"Request for non-existing operation, should not happen");
173 op_node->
owner =
this;
177 "add_operation: Operation already exists - %s has %s at %p\n",
225 op_node->tag_update(
graph, source);
230 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)
#define BLI_assert_msg(a, msg)
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)
static const char * to_string(const Interpolation &interp)
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)
function< void(struct ::Depsgraph *)> DepsEvalOperationCb
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
bool possibly_affects_visible_id
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
virtual OperationNode * get_exit_operation() override
OperationNode * add_operation(const DepsEvalOperationCb &op, OperationCode opcode, const char *name="", int name_tag=-1)
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
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