41 : opcode(opcode), name(
""), name_tag(-1)
46 : opcode(opcode), name(name), name_tag(name_tag)
52 const string codebuf =
to_string(
int(opcode));
53 return "OperationIDKey(" + codebuf +
", " + name +
")";
58 return (opcode == other.opcode) &&
STREQ(name, other.name) && (name_tag == other.name_tag);
63 const int opcode_as_int =
int(opcode);
95 const string name_part = name[0] ? (string(
" '") + name +
"'") :
"";
97 return "[" + type_name +
"]" + name_part +
" : " +
109 if (op_node->opcode == key.
opcode && op_node->name_tag == key.
name_tag &&
131 if (node ==
nullptr) {
133 "%s: find_operation(%s) failed\n",
136 BLI_assert_msg(0,
"Request for non-existing operation, should not happen");
176 op_node->
owner =
this;
180 "add_operation: Operation already exists - %s has %s at %p\n",
233 op_node->tag_update(graph, source);
253 if (operations.size() == 1) {
254 return operations[0];
274 if (operations.size() == 1) {
275 return operations[0];
284 operations.append(op_node);
Blender kernel action and pose functionality.
bPoseChannel * BKE_pose_channel_find_name(const 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)
Object is a sort of wrapper for general info.
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Map
#define DEG_COMPONENT_NODE_DEFINE(name, NAME, id_recalc_tag)
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
static const char * to_string(const Interpolation &interp)
void register_node_typeinfo(DepsNodeFactory *factory)
@ NTREE_GEOMETRY_PREPROCESS
void deg_register_component_depsnodes()
function< void(::Depsgraph *)> DepsEvalOperationCb
DepsNodeFactory * type_get_factory(const NodeType type)
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 const char * type_name() const =0
virtual Node * create_node(const ID *id, const char *subdata, const char *name) const =0
virtual void tag_update(Depsgraph *graph, eUpdateSource source) override
DepsEvalOperationCb evaluate
virtual string identifier() const override