Blender V5.0
blender::bke::node_structure_type_inferencing Namespace Reference

Classes

struct  StructureTypeInferenceResult

Enumerations

enum class  DataRequirement : int8_t {
  None , Field , Single , Grid ,
  List , Invalid
}
enum class  ZoneInOutChange { None = 0 , In = (1 << 1) , Out = (1 << 2) }

Functions

bool update_structure_type_interface (bNodeTree &tree)
static nodes::StructureTypeInterface calc_node_interface (const bNode &node)
static Array< nodes::StructureTypeInterfacecalc_node_interfaces (const bNodeTree &tree)
static DataRequirement merge (const DataRequirement a, const DataRequirement b)
static StructureType data_requirement_to_auto_structure_type (const DataRequirement requirement)
static void find_auto_structure_type_sockets (const bNodeTree &tree, bits::MutableBoundedBitSpan is_auto_structure_type)
static void init_input_requirements (const bNodeTree &tree, const bits::BoundedBitSpan is_auto_structure_type, MutableSpan< DataRequirement > input_requirements)
static DataRequirement calc_output_socket_requirement (const bNodeSocket &output_socket, const Span< DataRequirement > input_requirements)
static void store_group_input_structure_types (const bNodeTree &tree, const Span< DataRequirement > input_requirements, nodes::StructureTypeInterface &derived_interface)
static void store_auto_output_structure_types (const bNodeTree &tree, const Span< DataRequirement > input_requirements, const bits::BoundedBitSpan is_auto_structure_type, MutableSpan< StructureType > structure_types)
 ENUM_OPERATORS (ZoneInOutChange, ZoneInOutChange::Out)
static ZoneInOutChange simulation_zone_requirements_propagate (const bNode &input_node, const bNode &output_node, MutableSpan< DataRequirement > input_requirements)
static ZoneInOutChange repeat_zone_requirements_propagate (const bNode &input_node, const bNode &output_node, MutableSpan< DataRequirement > input_requirements)
static bool propagate_zone_data_requirements (const bNodeTree &tree, const bNode &node, MutableSpan< DataRequirement > input_requirements)
static void propagate_right_to_left (const bNodeTree &tree, const Span< nodes::StructureTypeInterface > node_interfaces, MutableSpan< DataRequirement > input_requirements)
static StructureType left_to_right_merge (const StructureType a, const StructureType b)
static ZoneInOutChange simulation_zone_status_propagate (const bNode &input_node, const bNode &output_node, MutableSpan< StructureType > structure_types)
static ZoneInOutChange repeat_zone_status_propagate (const bNode &input_node, const bNode &output_node, MutableSpan< StructureType > structure_types)
static bool propagate_zone_status (const bNodeTree &tree, const bNode &node, MutableSpan< StructureType > structure_types)
static StructureType get_unconnected_input_structure_type (const nodes::SocketDeclaration &declaration)
static void propagate_left_to_right (const bNodeTree &tree, const Span< nodes::StructureTypeInterface > node_interfaces, const Span< StructureType > group_input_structure_types, const bits::BoundedBitSpan is_auto_structure_type, MutableSpan< StructureType > structure_types)
static Vector< int > find_dynamic_output_linked_inputs (const bNodeSocket &group_output, const Span< nodes::StructureTypeInterface > interface_by_node)
static void store_group_output_structure_types (const bNodeTree &tree, const Span< nodes::StructureTypeInterface > interface_by_node, const Span< StructureType > structure_types, nodes::StructureTypeInterface &interface)
static StructureTypeInferenceResult calc_structure_type_interface (const bNodeTree &tree)

Enumeration Type Documentation

◆ DataRequirement

Enumerator
None 
Field 
Single 
Grid 
List 
Invalid 

Definition at line 92 of file node_tree_structure_type_inferencing.cc.

◆ ZoneInOutChange

Enumerator
None 
In 
Out 

Definition at line 338 of file node_tree_structure_type_inferencing.cc.

Function Documentation

◆ calc_node_interface()

◆ calc_node_interfaces()

Array< nodes::StructureTypeInterface > blender::bke::node_structure_type_inferencing::calc_node_interfaces ( const bNodeTree & tree)
static

Definition at line 82 of file node_tree_structure_type_inferencing.cc.

References calc_node_interface(), i, and tree.

Referenced by calc_structure_type_interface().

◆ calc_output_socket_requirement()

DataRequirement blender::bke::node_structure_type_inferencing::calc_output_socket_requirement ( const bNodeSocket & output_socket,
const Span< DataRequirement > input_requirements )
static

◆ calc_structure_type_interface()

◆ data_requirement_to_auto_structure_type()

StructureType blender::bke::node_structure_type_inferencing::data_requirement_to_auto_structure_type ( const DataRequirement requirement)
static

◆ ENUM_OPERATORS()

blender::bke::node_structure_type_inferencing::ENUM_OPERATORS ( ZoneInOutChange ,
ZoneInOutChange::Out  )

References Out.

◆ find_auto_structure_type_sockets()

◆ find_dynamic_output_linked_inputs()

◆ get_unconnected_input_structure_type()

StructureType blender::bke::node_structure_type_inferencing::get_unconnected_input_structure_type ( const nodes::SocketDeclaration & declaration)
static

◆ init_input_requirements()

void blender::bke::node_structure_type_inferencing::init_input_requirements ( const bNodeTree & tree,
const bits::BoundedBitSpan is_auto_structure_type,
MutableSpan< DataRequirement > input_requirements )
static

◆ left_to_right_merge()

StructureType blender::bke::node_structure_type_inferencing::left_to_right_merge ( const StructureType a,
const StructureType b )
static

◆ merge()

◆ propagate_left_to_right()

void blender::bke::node_structure_type_inferencing::propagate_left_to_right ( const bNodeTree & tree,
const Span< nodes::StructureTypeInterface > node_interfaces,
const Span< StructureType > group_input_structure_types,
const bits::BoundedBitSpan is_auto_structure_type,
MutableSpan< StructureType > structure_types )
static

◆ propagate_right_to_left()

◆ propagate_zone_data_requirements()

bool blender::bke::node_structure_type_inferencing::propagate_zone_data_requirements ( const bNodeTree & tree,
const bNode & node,
MutableSpan< DataRequirement > input_requirements )
static

◆ propagate_zone_status()

bool blender::bke::node_structure_type_inferencing::propagate_zone_status ( const bNodeTree & tree,
const bNode & node,
MutableSpan< StructureType > structure_types )
static

◆ repeat_zone_requirements_propagate()

ZoneInOutChange blender::bke::node_structure_type_inferencing::repeat_zone_requirements_propagate ( const bNode & input_node,
const bNode & output_node,
MutableSpan< DataRequirement > input_requirements )
static

◆ repeat_zone_status_propagate()

ZoneInOutChange blender::bke::node_structure_type_inferencing::repeat_zone_status_propagate ( const bNode & input_node,
const bNode & output_node,
MutableSpan< StructureType > structure_types )
static

Definition at line 596 of file node_tree_structure_type_inferencing.cc.

References i, In, left_to_right_merge(), None, and Out.

Referenced by propagate_zone_status().

◆ simulation_zone_requirements_propagate()

ZoneInOutChange blender::bke::node_structure_type_inferencing::simulation_zone_requirements_propagate ( const bNode & input_node,
const bNode & output_node,
MutableSpan< DataRequirement > input_requirements )
static

◆ simulation_zone_status_propagate()

ZoneInOutChange blender::bke::node_structure_type_inferencing::simulation_zone_status_propagate ( const bNode & input_node,
const bNode & output_node,
MutableSpan< StructureType > structure_types )
static

Definition at line 573 of file node_tree_structure_type_inferencing.cc.

References i, In, input, left_to_right_merge(), None, Out, and output.

Referenced by propagate_zone_status().

◆ store_auto_output_structure_types()

void blender::bke::node_structure_type_inferencing::store_auto_output_structure_types ( const bNodeTree & tree,
const Span< DataRequirement > input_requirements,
const bits::BoundedBitSpan is_auto_structure_type,
MutableSpan< StructureType > structure_types )
static

◆ store_group_input_structure_types()

◆ store_group_output_structure_types()

void blender::bke::node_structure_type_inferencing::store_group_output_structure_types ( const bNodeTree & tree,
const Span< nodes::StructureTypeInterface > interface_by_node,
const Span< StructureType > structure_types,
nodes::StructureTypeInterface & interface )
static

◆ update_structure_type_interface()

bool blender::bke::node_structure_type_inferencing::update_structure_type_interface ( bNodeTree & tree)