54 void init(
const ID *
id,
const char *subdata)
override;
63 const char *name =
"",
64 int name_tag = -1)
const;
70 const char *name =
"",
71 int name_tag = -1)
const;
95 const char *name =
"",
155#define DEG_COMPONENT_NODE_DEFINE_TYPEINFO(NodeType, type_, type_name_, id_recalc_tag) \
156 const Node::TypeInfo NodeType::typeinfo = Node::TypeInfo(type_, type_name_, id_recalc_tag)
158#define DEG_COMPONENT_NODE_DECLARE DEG_DEPSNODE_DECLARE
160#define DEG_COMPONENT_NODE_DEFINE(name, NAME, id_recalc_tag) \
161 DEG_COMPONENT_NODE_DEFINE_TYPEINFO( \
162 name##ComponentNode, NodeType::NAME, #name " Component", id_recalc_tag); \
163 static DepsNodeFactoryImpl<name##ComponentNode> DNTI_##NAME
165#define DEG_COMPONENT_NODE_DECLARE_GENERIC(name) \
166 struct name##ComponentNode : public ComponentNode { \
167 DEG_COMPONENT_NODE_DECLARE; \
170#define DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE(name) \
171 struct name##ComponentNode : public ComponentNode { \
172 DEG_COMPONENT_NODE_DECLARE; \
173 virtual bool need_tag_cow_before_update(const IDRecalcFlag ) \
179#define DEG_COMPONENT_NODE_DECLARE_NO_COW(name) \
180 struct name##ComponentNode : public ComponentNode { \
181 DEG_COMPONENT_NODE_DECLARE; \
182 virtual bool depends_on_cow() \
218 void init(
const ID *
id,
const char *subdata);
General operations, lookup, etc. for blender objects.
#define ID_TYPE_SUPPORTS_PARAMS_WITHOUT_COW(id_type)
Object is a sort of wrapper for general info.
#define DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE(name)
#define DEG_COMPONENT_NODE_DECLARE_GENERIC(name)
void deg_register_component_depsnodes()
function< void(::Depsgraph *)> DepsEvalOperationCb
unsigned __int64 uint64_t
DEG_COMPONENT_NODE_DECLARE
virtual bool need_tag_cow_before_update(const IDRecalcFlag tag) override
DEG_COMPONENT_NODE_DECLARE
struct bPoseChannel * pchan
bool operator==(const OperationIDKey &other) const
string identifier() const
virtual OperationNode * get_entry_operation() override
bool possibly_affects_visible_id
virtual bool need_tag_cow_before_update(const IDRecalcFlag)
OperationNode * get_operation(OperationIDKey key) const
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 bool depends_on_cow()
DEG_COMPONENT_NODE_DECLARE
virtual bool need_tag_cow_before_update(const IDRecalcFlag) override