bool contains_zone_recursively(const bNodeTreeZone &other_zone) const
Vector< int > child_node_ids
Vector< const bNode * > child_nodes() const
bNodeTreeZone * parent_zone
friend std::ostream & operator<<(std::ostream &stream, const bNodeTreeZone &zone)
std::optional< int > output_node_id
const bNode * output_node() const
Vector< const bNodeLink * > border_links
bool contains_node_recursively(const bNode &node) const
std::optional< int > input_node_id
Vector< bNodeTreeZone * > child_zones
const bNode * input_node() const
Vector< const bNodeTreeZone * > get_zones_to_enter_from_root(const bNodeTreeZone *zone) const
Vector< const bNodeTreeZone * > get_zones_to_enter(const bNodeTreeZone *outer_zone, const bNodeTreeZone *inner_zone) const
bool link_between_zones_is_allowed(const bNodeTreeZone *from_zone, const bNodeTreeZone *to_zone) const
Vector< std::unique_ptr< bNodeTreeZone > > zones_ptrs
Vector< int > node_ids_outside_zones
Vector< const bNode * > nodes_outside_zones() const
Vector< bNodeTreeZone * > root_zones
Vector< bNodeTreeZone * > zones
const bNodeTreeZone * get_zone_by_node(const int32_t node_id) const
Map< int, int > zone_by_node_id
friend std::ostream & operator<<(std::ostream &stream, const bNodeTreeZones &zones)
const bNodeTreeZone * get_zone_by_socket(const bNodeSocket &socket) const
bool link_between_sockets_is_allowed(const bNodeSocket &from, const bNodeSocket &to) const
const bNodeTreeZones * get_tree_zones(const bNodeTree &tree)