Blender
V3.3
|
Classes | |
struct | SocketFieldState |
|
static |
Definition at line 388 of file node_tree_update.cc.
References blender::nodes::FieldInferencingInterface::inputs, is_field_socket_type(), LISTBASE_FOREACH_INDEX, node, blender::nodes::None, blender::bke::node_field_inferencing::SocketFieldState::requires_single, state, and tree.
Referenced by update_field_inferencing().
|
static |
Definition at line 504 of file node_tree_update.cc.
References find_group_output_dependencies(), NODE_DO_OUTPUT, blender::nodes::FieldInferencingInterface::outputs, and tree.
Referenced by update_field_inferencing().
|
static |
Check what the group output socket depends on. Potentially traverses the node tree to figure out if it is always a field or if it depends on any group inputs.
Definition at line 248 of file node_tree_update.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Vector< T, InlineBufferCapacity, Allocator >::append_non_duplicates(), blender::nodes::InputSocketRef::directly_linked_sockets(), blender::nodes::OutputFieldDependency::ForDataSource(), blender::nodes::OutputFieldDependency::ForFieldSource(), blender::nodes::OutputFieldDependency::ForPartiallyDependentField(), gather_input_socket_dependencies(), get_node_field_inferencing_interface(), blender::nodes::SocketRef::id(), blender::nodes::SocketRef::is_directly_linked(), blender::Stack< T, InlineBufferCapacity, Allocator >::is_empty(), is_field_socket_type(), blender::bke::node_field_inferencing::SocketFieldState::is_field_source, blender::nodes::NodeRef::is_group_input_node(), blender::bke::node_field_inferencing::SocketFieldState::is_single, blender::nodes::FieldInferencingInterface::outputs, blender::Stack< T, InlineBufferCapacity, Allocator >::pop(), and blender::Stack< T, InlineBufferCapacity, Allocator >::push().
Referenced by determine_group_output_states().
|
static |
Definition at line 218 of file node_tree_update.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::nodes::DependentField, blender::Vector< T, InlineBufferCapacity, Allocator >::extend(), blender::nodes::OutputFieldDependency::field_type(), blender::nodes::FieldSource, blender::nodes::OutputFieldDependency::linked_input_indices(), node, blender::nodes::None, blender::nodes::PartiallyDependent, and type.
Referenced by find_group_output_dependencies(), propagate_data_requirements_from_right_to_left(), and propagate_field_status_from_left_to_right().
|
static |
Definition at line 156 of file node_tree_update.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append_n_times(), blender::nodes::OutputFieldDependency::ForDataSource(), blender::nodes::FieldInferencingInterface::inputs, node, blender::nodes::None, and blender::nodes::FieldInferencingInterface::outputs.
Referenced by get_node_field_inferencing_interface().
|
static |
Definition at line 81 of file node_tree_update.cc.
References BLI_assert, blender::nodes::Implicit, blender::nodes::SocketRef::index(), blender::nodes::SocketDeclaration::input_field_type(), blender::nodes::NodeDeclaration::inputs(), is_field_socket_type(), blender::nodes::NodeDeclaration::is_function_node(), blender::nodes::IsSupported, node, NODE_CUSTOM, and blender::nodes::None.
Referenced by get_node_field_inferencing_interface().
|
static |
Definition at line 119 of file node_tree_update.cc.
References BLI_assert, blender::nodes::OutputFieldDependency::ForDataSource(), blender::nodes::OutputFieldDependency::ForDependentField(), blender::nodes::SocketRef::index(), is_field_socket_type(), blender::nodes::NodeDeclaration::is_function_node(), node, NODE_CUSTOM, blender::nodes::SocketDeclaration::output_field_dependency(), and blender::nodes::NodeDeclaration::outputs().
Referenced by get_node_field_inferencing_interface().
|
static |
Retrieves information about how the node interacts with fields. In the future, this information can be stored in the node declaration. This would allow this function to return a reference, making it more efficient.
Definition at line 170 of file node_tree_update.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_assert_unreachable, get_dummy_field_inferencing_interface(), get_interface_input_field_type(), get_interface_output_field_dependency(), blender::nodes::FieldInferencingInterface::inputs, node, ntreeIsRegistered(), blender::nodes::FieldInferencingInterface::outputs, and bNodeTree::runtime.
Referenced by find_group_output_dependencies(), propagate_data_requirements_from_right_to_left(), and propagate_field_status_from_left_to_right().
|
static |
Definition at line 76 of file node_tree_update.cc.
References bNodeSocketType::type, and blender::nodes::SocketRef::typeinfo().
Referenced by determine_group_input_states(), find_group_output_dependencies(), get_interface_input_field_type(), and get_interface_output_field_dependency().
|
static |
Definition at line 71 of file node_tree_update.cc.
References ELEM, SOCK_BOOLEAN, SOCK_FLOAT, SOCK_INT, SOCK_RGBA, SOCK_VECTOR, and type.
|
static |
Definition at line 314 of file node_tree_update.cc.
References blender::nodes::InputSocketRef::directly_linked_sockets(), blender::nodes::OutputFieldDependency::field_type(), blender::nodes::FieldSource, gather_input_socket_dependencies(), get_node_field_inferencing_interface(), blender::nodes::Implicit, blender::nodes::FieldInferencingInterface::inputs, node, blender::nodes::None, blender::nodes::FieldInferencingInterface::outputs, blender::nodes::NodeTreeRef::RightToLeft, blender::nodes::NodeTreeRef::ToposortResult::sorted_nodes, state, and tree.
Referenced by update_field_inferencing().
|
static |
Definition at line 431 of file node_tree_update.cc.
References blender::nodes::DependentField, blender::nodes::OutputSocketRef::directly_linked_sockets(), blender::nodes::OutputFieldDependency::field_type(), blender::nodes::FieldSource, gather_input_socket_dependencies(), get_node_field_inferencing_interface(), blender::nodes::Implicit, blender::nodes::FieldInferencingInterface::inputs, blender::nodes::NodeTreeRef::LeftToRight, node, blender::nodes::None, blender::nodes::FieldInferencingInterface::outputs, blender::nodes::PartiallyDependent, blender::nodes::NodeTreeRef::ToposortResult::sorted_nodes, state, and tree.
Referenced by update_field_inferencing().
|
static |
Definition at line 556 of file node_tree_update.cc.
References BLI_listbase_count(), determine_group_input_states(), determine_group_output_states(), blender::nodes::OutputFieldDependency::ForDataSource(), bNodeTree::inputs, blender::nodes::IsSupported, bNodeTree::outputs, propagate_data_requirements_from_right_to_left(), propagate_field_status_from_left_to_right(), bNodeTree::runtime, tree, and update_socket_shapes().
|
static |
Definition at line 524 of file node_tree_update.cc.
References bNodeSocket::display_shape, SOCK_DISPLAY_SHAPE_CIRCLE, SOCK_DISPLAY_SHAPE_DIAMOND, SOCK_DISPLAY_SHAPE_DIAMOND_DOT, state, and tree.
Referenced by update_field_inferencing().