Blender V5.0
blender::nodes::bNodeTreeZones Class Reference

#include <BKE_node_tree_zones.hh>

Public Member Functions

Vector< const bNode * > nodes_outside_zones () const
const bNodeTreeZoneget_zone_by_socket (const bNodeSocket &socket) const
const bNodeTreeZoneget_zone_by_node (const int32_t node_id) const
bool link_between_zones_is_allowed (const bNodeTreeZone *from_zone, const bNodeTreeZone *to_zone) const
bool link_between_sockets_is_allowed (const bNodeSocket &from, const bNodeSocket &to) const
Vector< const bNodeTreeZone * > get_zones_to_enter (const bNodeTreeZone *outer_zone, const bNodeTreeZone *inner_zone) const
Vector< const bNodeTreeZone * > get_zones_to_enter_from_root (const bNodeTreeZone *zone) const

Public Attributes

const bNodeTreetree = nullptr
Vector< std::unique_ptr< bNodeTreeZone > > zones_ptrs
Vector< bNodeTreeZone * > zones
Vector< bNodeTreeZone * > root_zones
Vector< int > node_ids_outside_zones
Map< int, int > zone_by_node_id

Friends

std::ostream & operator<< (std::ostream &stream, const bNodeTreeZones &zones)

Detailed Description

Definition at line 56 of file BKE_node_tree_zones.hh.

Member Function Documentation

◆ get_zone_by_node()

Get the deepest zone that the node is in. Note that the e.g. Simulation Input and Output nodes are considered to be inside of the zone they create.

Definition at line 434 of file node_tree_zones.cc.

◆ get_zone_by_socket()

Get the deepest zone that a socket is in. Note that the inputs of a Simulation Input node are in a different zone than its output sockets.

Definition at line 414 of file node_tree_zones.cc.

◆ get_zones_to_enter()

Vector< const bNodeTreeZone * > blender::bke::bNodeTreeZones::get_zones_to_enter ( const bNodeTreeZone * outer_zone,
const bNodeTreeZone * inner_zone ) const

Get the ordered list of zones that a link going from an outer to an inner zone has to enter.

Definition at line 471 of file node_tree_zones.cc.

◆ get_zones_to_enter_from_root()

Same as get_zones_to_enter but starts at the top level of the node tree.

Definition at line 483 of file node_tree_zones.cc.

◆ link_between_sockets_is_allowed()

Check if a link between the given sockets is allowed. It's not allowed if link would go from an inner zone to an outer zone.

Definition at line 461 of file node_tree_zones.cc.

◆ link_between_zones_is_allowed()

Check if a link from the first zone to a socket in the second zone is allowed. Either zone input may also be null which represents the root tree outside of any zone. Generally, a link can only go into zones, but not out of zones.

Definition at line 443 of file node_tree_zones.cc.

◆ nodes_outside_zones()

Definition at line 611 of file node_tree_zones.cc.

◆ operator<<

std::ostream & operator<< ( std::ostream & stream,
const bNodeTreeZones & zones )
friend

Definition at line 616 of file node_tree_zones.cc.

Member Data Documentation

◆ node_ids_outside_zones

◆ root_zones

◆ tree

◆ zone_by_node_id

Zone index by node. Nodes that are in no zone, are not included. Nodes that are at the border of a zone (e.g. Simulation Input) are mapped to the zone they create.

Definition at line 68 of file BKE_node_tree_zones.hh.

◆ zones

Same as zones_ptrs, but usually easier to iterate over.

Definition at line 61 of file BKE_node_tree_zones.hh.

◆ zones_ptrs


The documentation for this class was generated from the following files: