|
Blender V5.0
|
Inherits blender::fn::lazy_function::LazyFunction.
Public Attributes | |
| const LazyFunctionForForeachGeometryElementZone & | parent_ |
| ForeachGeometryElementEvalStorage & | eval_storage_ |
Additional Inherited Members | |
| Protected Attributes inherited from blender::fn::lazy_function::LazyFunction | |
| const char * | debug_name_ = "unknown" |
| Vector< Input > | inputs_ |
| Vector< Output > | outputs_ |
| bool | allow_missing_requested_inputs_ = false |
A lazy-function that takes the result from all loop body evaluations and reduces them to the final output of the entire zone.
Definition at line 106 of file geometry_nodes_foreach_geometry_element_zone.cc.
| blender::nodes::LazyFunctionForReduceForeachGeometryElement::LazyFunctionForReduceForeachGeometryElement | ( | const LazyFunctionForForeachGeometryElementZone & | parent, |
| ForeachGeometryElementEvalStorage & | eval_storage ) |
Definition at line 782 of file geometry_nodes_foreach_geometry_element_zone.cc.
References blender::fn::lazy_function::LazyFunction::debug_name_, eval_storage_, i, blender::fn::lazy_function::LazyFunction::inputs_, LazyFunctionForReduceForeachGeometryElement(), blender::nodes::ForeachGeometryElementEvalStorage::lf_body_nodes, parent_, bNode::storage, and blender::nodes::ForeachGeometryElementEvalStorage::total_iterations_num.
Referenced by LazyFunctionForReduceForeachGeometryElement().
|
overridevirtual |
Needs to be implemented by subclasses. This is separate from execute so that additional debugging logic can be implemented in execute.
Implements blender::fn::lazy_function::LazyFunction.
Definition at line 844 of file geometry_nodes_foreach_geometry_element_zone.cc.
References handle_generation_items(), handle_main_items_and_geometry(), params, and parent_.
| void blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_item_groups | ( | lf::Params & | params, |
| const lf::Context & | context, | ||
| int | first_valid_item_i ) const |
Definition at line 969 of file geometry_nodes_foreach_geometry_element_zone.cc.
References blender::IndexRange::from_begin_end(), handle_generation_items_group(), params, parent_, SOCK_GEOMETRY, and NodeForeachGeometryElementGenerationItem::socket_type.
Referenced by handle_generation_items().
| void blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items | ( | lf::Params & | params, |
| const lf::Context & | context ) const |
Definition at line 931 of file geometry_nodes_foreach_geometry_element_zone.cc.
References handle_generation_item_groups(), handle_invalid_generation_items(), params, and parent_.
Referenced by execute_impl().
| void blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items_group | ( | lf::Params & | params, |
| const lf::Context & | context, | ||
| int | geometry_item_i, | ||
| IndexRange | generation_items_range ) const |
Definition at line 1000 of file geometry_nodes_foreach_geometry_element_zone.cc.
References blender::bke::AttributeAccessor::adapt_domain(), blender::bke::AttributeFilter::allow_skip(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::bke::GeometryComponent::attributes_for_write(), blender::nodes::ForeachElementComponent::body_nodes_range, BUFFER_FOR_CPP_TYPE_VALUE, blender::bke::AttributeAccessor::contains(), blender::GMutableSpan::data(), blender::bke::AttributeIter::data_type, blender::CPPType::destruct(), blender::bke::GAttributeReader::domain, blender::nodes::ForeachElementComponentID::domain, NodeForeachGeometryElementGenerationItem::domain, eval_storage_, extract(), blender::nodes::ForeachElementComponent::field_evaluator, blender::CPPType::fill_assign_n(), blender::bke::GSpanAttributeWriter::finish(), blender::bke::AttributeAccessor::foreach_attribute(), blender::geometry::foreach_real_geometry(), blender::nodes::SocketValueVariant::From(), blender::bke::GeometrySet::get_component_for_write(), blender::nodes::get_foreach_attribute_propagation_target_domain(), blender::GVArrayCommon::get_to_uninitialized(), handle_generation_items_group_lazyness(), blender::bke::GeometrySet::has(), blender::bke::hash_to_anonymous_attribute_name(), i, blender::nodes::ForeachElementComponent::id, NodeForeachGeometryElementGenerationItem::identifier, blender::IndexRange::index_range(), blender::nodes::ForeachElementComponent::input_attributes(), blender::bke::AttributeAccessor::is_builtin(), NodeForeachGeometryElementMainItems::items_num, blender::geometry::join_geometries(), blender::bke::GeometrySet::keep_only(), blender::Array< T, InlineBufferCapacity, Allocator >::last(), blender::bke::AttributeAccessor::lookup(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_or_add_cb(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), NodeGeometryForeachGeometryElementOutput::main_items, blender::nodes::make_anonymous_attribute_socket_inspection_string(), mask(), blender::bke::AttributeIter::name, blender::fn::lazy_function::LazyFunction::name(), params, parent_, blender::GMutableSpan::size(), blender::IndexRange::size(), NodeForeachGeometryElementGenerationItem::socket_type, blender::bke::socket_type_to_geo_nodes_base_cpp_type(), blender::bke::GSpanAttributeWriter::span, blender::bke::String, blender::bke::try_capture_field_on_geometry(), and blender::GVArrayCommon::type().
Referenced by handle_generation_item_groups().
| bool blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items_group_lazyness | ( | lf::Params & | params, |
| const lf::Context & | context, | ||
| int | geometry_item_i, | ||
| IndexRange | generation_items_range ) const |
Definition at line 1196 of file geometry_nodes_foreach_geometry_element_zone.cc.
References eval_storage_, i, NodeForeachGeometryElementMainItems::items_num, NodeGeometryForeachGeometryElementOutput::main_items, params, parent_, blender::nodes::set_default_value_for_output_socket(), blender::IndexRange::size(), blender::fn::lazy_function::Unused, and blender::fn::lazy_function::Used.
Referenced by handle_generation_items_group().
| int blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_invalid_generation_items | ( | lf::Params & | params | ) | const |
Definition at line 944 of file geometry_nodes_foreach_geometry_element_zone.cc.
References params, parent_, blender::nodes::set_default_value_for_output_socket(), SOCK_GEOMETRY, and NodeForeachGeometryElementGenerationItem::socket_type.
Referenced by handle_generation_items().
| void blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_main_items_and_geometry | ( | lf::Params & | params, |
| const lf::Context & | context ) const |
Definition at line 857 of file geometry_nodes_foreach_geometry_element_zone.cc.
References blender::nodes::ForeachElementComponent::attributes_for_write(), blender::bke::SocketValueVariant::convert_to_single(), blender::CPPType::copy_construct(), blender::bke::cpp_type_to_attribute_type(), blender::GMutableSpan::data(), blender::nodes::ForeachElementComponentID::domain, blender::bke::AttributeAccessor::domain_size(), eval_storage_, blender::nodes::ForeachElementComponent::field_evaluator, blender::bke::GSpanAttributeWriter::finish(), blender::nodes::SocketValueVariant::From(), blender::bke::SocketValueVariant::get_single_ptr_raw(), blender::bke::hash_to_anonymous_attribute_name(), i, blender::nodes::ForeachElementComponent::id, NodeForeachGeometryElementMainItem::identifier, NodeForeachGeometryElementMainItems::items_num, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), NodeGeometryForeachGeometryElementOutput::main_items, blender::nodes::make_anonymous_attribute_socket_inspection_string(), mask(), params, parent_, pos, NodeForeachGeometryElementMainItem::socket_type, blender::bke::socket_type_to_geo_nodes_base_cpp_type(), blender::bke::GSpanAttributeWriter::span, and blender::CPPType::value_initialize_indices().
Referenced by execute_impl().
| ForeachGeometryElementEvalStorage& blender::nodes::LazyFunctionForReduceForeachGeometryElement::eval_storage_ |
Definition at line 108 of file geometry_nodes_foreach_geometry_element_zone.cc.
Referenced by handle_generation_items_group(), handle_generation_items_group_lazyness(), handle_main_items_and_geometry(), and LazyFunctionForReduceForeachGeometryElement().
| const LazyFunctionForForeachGeometryElementZone& blender::nodes::LazyFunctionForReduceForeachGeometryElement::parent_ |
Definition at line 107 of file geometry_nodes_foreach_geometry_element_zone.cc.
Referenced by execute_impl(), handle_generation_item_groups(), handle_generation_items(), handle_generation_items_group(), handle_generation_items_group_lazyness(), handle_invalid_generation_items(), handle_main_items_and_geometry(), and LazyFunctionForReduceForeachGeometryElement().