|
Blender V4.3
|
Classes | |
| struct | SocketFieldState |
Enumerations | |
| enum class | eFieldStateSyncResult : char { NONE = 0 , CHANGED_A = (1 << 0) , CHANGED_B = (1 << 1) } |
|
strong |
Result of syncing two field states.
| Enumerator | |
|---|---|
| NONE | |
| CHANGED_A | |
| CHANGED_B | |
Definition at line 271 of file node_tree_field_inferencing.cc.
|
static |
Definition at line 30 of file node_tree_field_inferencing.cc.
Referenced by propagate_field_status_from_left_to_right().
|
static |
Definition at line 506 of file node_tree_field_inferencing.cc.
References bNodeTreeInterfaceSocket::default_input, bNodeTreeInterfaceSocket::flag, blender::nodes::FieldInferencingInterface::inputs, is_layer_selection_field(), NODE_INPUT_DEFAULT_VALUE, NODE_INTERFACE_SOCKET_SINGLE_VALUE_ONLY, blender::bke::node_field_inferencing::SocketFieldState::requires_single, SOCK_CUSTOM, blender::nodes::socket_type_supports_fields(), state, tree, and blender::bke::bNodeSocketType::type.
Referenced by update_field_inferencing().
|
static |
Definition at line 658 of file node_tree_field_inferencing.cc.
References find_group_output_dependencies(), 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 200 of file node_tree_field_inferencing.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Vector< T, InlineBufferCapacity, Allocator >::append_non_duplicates(), gather_input_socket_dependencies(), blender::Stack< T, InlineBufferCapacity, Allocator >::is_empty(), is_field_socket_type(), blender::bke::node_field_inferencing::SocketFieldState::is_field_source, blender::bke::node_field_inferencing::SocketFieldState::is_single, NODE_GROUP_INPUT, blender::nodes::FieldInferencingInterface::outputs, blender::Stack< T, InlineBufferCapacity, Allocator >::pop(), blender::Stack< T, InlineBufferCapacity, Allocator >::push(), and bNode::type.
Referenced by determine_group_output_states().
|
static |
Definition at line 170 of file node_tree_field_inferencing.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), and blender::Vector< T, InlineBufferCapacity, Allocator >::extend().
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 104 of file node_tree_field_inferencing.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append_n_times(), blender::ResourceScope::construct(), and blender::nodes::FieldInferencingInterface::inputs.
Referenced by get_node_field_inferencing_interface().
|
static |
Definition at line 40 of file node_tree_field_inferencing.cc.
References BLI_assert, blender::nodes::SocketDeclaration::input_field_type, blender::nodes::NodeDeclaration::inputs, is_field_socket_type(), NODE_CUSTOM, NODE_GROUP_OUTPUT, NODE_REROUTE, and blender::bke::NodeTypeUndefined.
Referenced by get_node_field_inferencing_interface().
|
static |
Definition at line 72 of file node_tree_field_inferencing.cc.
References BLI_assert, is_field_socket_type(), NODE_CUSTOM, NODE_GROUP_INPUT, NODE_REROUTE, blender::bke::NodeTypeUndefined, 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 120 of file node_tree_field_inferencing.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_assert_unreachable, blender::ResourceScope::construct(), get_dummy_field_inferencing_interface(), get_interface_input_field_type(), get_interface_output_field_dependency(), bNodeTree::id, blender::nodes::FieldInferencingInterface::inputs, and blender::bke::node_tree_is_registered().
Referenced by prepare_inferencing_interfaces().
|
static |
Definition at line 25 of file node_tree_field_inferencing.cc.
References blender::nodes::socket_type_supports_fields(), and bNodeSocket::typeinfo.
Referenced by find_group_output_dependencies(), get_interface_input_field_type(), and get_interface_output_field_dependency().
|
static |
Definition at line 698 of file node_tree_field_inferencing.cc.
References get_node_field_inferencing_interface().
Referenced by update_field_inferencing().
|
static |
Definition at line 415 of file node_tree_field_inferencing.cc.
References gather_input_socket_dependencies(), blender::nodes::FieldInferencingInterface::inputs, blender::nodes::FieldInferencingInterface::outputs, propagate_special_data_requirements(), state, and tree.
Referenced by update_field_inferencing().
|
static |
Definition at line 567 of file node_tree_field_inferencing.cc.
References all_dangling_reroutes(), gather_input_socket_dependencies(), blender::nodes::FieldInferencingInterface::inputs, NODE_GROUP_INPUT, blender::nodes::FieldInferencingInterface::outputs, propagate_special_data_requirements(), state, and tree.
Referenced by update_field_inferencing().
|
static |
Definition at line 347 of file node_tree_field_inferencing.cc.
References CHANGED_A, CHANGED_B, GEO_NODE_REPEAT_INPUT, GEO_NODE_REPEAT_OUTPUT, GEO_NODE_SIMULATION_INPUT, GEO_NODE_SIMULATION_OUTPUT, repeat_field_state_sync(), simulation_nodes_field_state_sync(), and tree.
Referenced by propagate_data_requirements_from_right_to_left(), and propagate_field_status_from_left_to_right().
|
static |
Definition at line 329 of file node_tree_field_inferencing.cc.
References NodeGeometryRepeatOutput::items_num, NONE, bNode::storage, and sync_field_states().
Referenced by propagate_special_data_requirements().
|
static |
Compare field states of simulation nodes sockets and select the most compatible. Afterwards all field states will be the same.
Definition at line 312 of file node_tree_field_inferencing.cc.
References NONE, and sync_field_states().
Referenced by propagate_special_data_requirements().
|
static |
Compare both field states and select the most compatible. Afterwards both field states will be the same.
Definition at line 286 of file node_tree_field_inferencing.cc.
References b, CHANGED_A, CHANGED_B, and NONE.
Referenced by repeat_field_state_sync(), and simulation_nodes_field_state_sync().
| bool blender::bke::node_field_inferencing::update_field_inferencing | ( | const bNodeTree & | tree | ) |
Definition at line 708 of file node_tree_field_inferencing.cc.
References BLI_assert, determine_group_input_states(), determine_group_output_states(), NTREE_GEOMETRY, prepare_inferencing_interfaces(), propagate_data_requirements_from_right_to_left(), propagate_field_status_from_left_to_right(), tree, and update_socket_states().
Referenced by blender::ed::space_node::node_group_make_insert_selected().
|
static |
Definition at line 676 of file node_tree_field_inferencing.cc.
References blender::bke::CanBeField, blender::bke::IsField, blender::bke::RequiresSingle, state, and tree.
Referenced by update_field_inferencing().