20 if (!socket.is_available()) {
29 if (!link.is_used()) {
37 tree.ensure_topology_cache();
44 for (
const bNode *node :
tree.all_nodes()) {
47 dot_node_with_sockets.
node_name = node->label_or_name();
48 for (
const bNodeSocket *socket : node->input_sockets()) {
53 for (
const bNodeSocket *socket : node->output_sockets()) {
68 options.add_edge_attributes(*link, dot_edge);
const Value & lookup(const Key &key) const
void add_new(const Key &key, const Value &value)
virtual std::string socket_name(const bNodeSocket &socket) const
virtual std::optional< std::string > socket_font_color(const bNodeSocket &socket) const
virtual void add_edge_attributes(const bNodeLink &link, dot_export::DirectedEdge &dot_edge) const
void set(StringRef key, StringRef value)
std::string to_dot_string() const
DirectedEdge & new_edge(NodePort from, NodePort to)
void set_rankdir(Attr_rankdir rankdir)
Node & new_node(StringRef label)
NodePort output(int index) const
NodePort input(int index) const
dot(value.rgb, luminance_coefficients)") DEFINE_VALUE("REDUCE(lhs
CCL_NAMESPACE_BEGIN struct Options options
std::string node_tree_to_dot(const bNodeTree &tree, const bNodeTreeToDotOptions &options=bNodeTreeToDotOptions())
std::optional< std::string > fontcolor
Input & add_input(std::string name)
Output & add_output(std::string name)