46 const bNode *parent_node_;
74 const bNode *bnode_ =
nullptr;
88 operator bool()
const;
124 operator bool()
const;
215 std::string
to_dot()
const;
219 const bNode *parent_node,
222 void destruct_context_recursively(
DTreeContext *context);
224 void foreach_node_in_context_recursive(
const DTreeContext &context,
228namespace derived_node_tree_types {
248 return parent_context_;
258 return instance_key_;
263 return children_.lookup_default(&node,
nullptr);
268 return *derived_tree_;
273 return parent_context_ ==
nullptr;
283 : context_(context), bnode_(bnode)
298inline DNode::operator bool()
const
300 return bnode_ !=
nullptr;
321 return {context_, &bnode_->input_socket(index)};
326 return {context_, &bnode_->output_socket(index)};
331 return {context_, &bnode_->input_by_identifier(identifier)};
336 return {context_, &bnode_->output_by_identifier(identifier)};
346 : context_(context), bsocket_(bsocket)
349 bsocket->
runtime->owner_node->runtime->owner_tree == &context->btree());
353 :
DSocket(input_socket.context_, input_socket.bsocket_)
358 :
DSocket(output_socket.context_, output_socket.bsocket_)
372inline DSocket::operator bool()
const
374 return bsocket_ !=
nullptr;
439 return *root_context_;
#define BLI_STRUCT_EQUALITY_OPERATORS_2(Type, m1, m2)
DInputSocket input_by_identifier(StringRef identifier) const
const DTreeContext * context() const
const bNodeInstanceKey instance_key() const
DOutputSocket output(int index) const
const bNode * bnode() const
const bNode * operator->() const
const bNode & operator*() const
DOutputSocket output_by_identifier(StringRef identifier) const
DInputSocket input(int index) const
DInputSocket get_corresponding_group_node_input() const
DInputSocket get_active_corresponding_group_output_socket() const
void foreach_target_socket(ForeachTargetSocketFn target_fn) const
const bNodeSocket * operator->() const
const bNodeSocket * bsocket_
const DTreeContext * context() const
const bNodeSocket & operator*() const
const DTreeContext * context_
const bNodeSocket * bsocket() const
const DTreeContext * child_context(const bNode &node) const
const DTreeContext * parent_context() const
const bNode * parent_node() const
const bNodeInstanceKey instance_key() const
const DerivedNodeTree & derived_tree() const
const bNodeTree & btree() const
std::string to_dot() const
bool has_link_cycles() const
const DTreeContext & active_context() const
DerivedNodeTree(const bNodeTree &btree)
Span< const bNodeTree * > used_btrees() const
bool has_undefined_nodes_or_sockets() const
const DTreeContext & root_context() const
void foreach_node(FunctionRef< void(DNode)> callback) const
DEGForeachIDComponentCallback callback
uint64_t get_default_hash(const T &v)
unsigned __int64 uint64_t
bNodeSocketRuntimeHandle * runtime
bNodeRuntimeHandle * runtime
Vector< DSocket, 16 > sockets