|
Blender V4.3
|
Inherits blender::fn::lazy_function::LazyFunction.
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 |
Definition at line 1791 of file geometry_nodes_lazy_function.cc.
|
inline |
Definition at line 1800 of file geometry_nodes_lazy_function.cc.
References blender::nodes::ZoneBuildInfo::indices, blender::nodes::initialize_zone_wrapper(), blender::nodes::ZoneFunctionIndices::inputs, and blender::nodes::ZoneFunctionIndices::main.
|
inlineoverridevirtual |
Destruct the storage created in init_storage.
Reimplemented from blender::fn::lazy_function::LazyFunction.
Definition at line 1822 of file geometry_nodes_lazy_function.cc.
References blender::nodes::RepeatEvalStorage::graph_executor.
|
inlineoverridevirtual |
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 1831 of file geometry_nodes_lazy_function.cc.
References blender::nodes::RepeatEvalStorage::graph_executor, blender::nodes::RepeatEvalStorage::graph_executor_storage, blender::nodes::ZoneBuildInfo::indices, blender::nodes::RepeatEvalStorage::input_index_map, blender::nodes::ZoneFunctionIndices::input_usages, blender::nodes::RepeatEvalStorage::multi_threading_enabled, blender::nodes::RepeatEvalStorage::output_index_map, blender::nodes::ZoneFunctionIndices::outputs, params, and bNode::storage.
|
inlineoverridevirtual |
Allocates storage for this function. The storage will be passed to every call to execute. If the function does not keep track of any state, this does not have to be implemented.
Reimplemented from blender::fn::lazy_function::LazyFunction.
Definition at line 1817 of file geometry_nodes_lazy_function.cc.
References blender::LinearAllocator< Allocator >::construct().
|
inline |
Generate a lazy-function graph that contains the loop body (body_fn_) as many times as there are iterations. Since this graph depends on the number of iterations, it can't be reused in general. We could consider caching a version of this graph per number of iterations, but right now that doesn't seem worth it. In practice, it takes much less time to create the graph than to execute it (for intended use cases of this generic implementation, more special case repeat loop evaluations could be implemented separately).
Definition at line 1873 of file geometry_nodes_lazy_function.cc.
References blender::nodes::ZoneFunctionIndices::border_links, blender::bke::SocketValueVariant::get(), blender::nodes::ZoneBodyFunction::indices, blender::nodes::ZoneBuildInfo::indices, blender::nodes::ZoneFunctionIndices::inputs, NodeGeometryRepeatOutput::inspection_index, NodeGeometryRepeatOutput::items_num, blender::nodes::ZoneFunctionIndices::main, params, blender::Vector< T, InlineBufferCapacity, Allocator >::size(), and blender::nodes::GeoNodesLFLocalUserData::try_get_tree_logger().
|
inlineoverridevirtual |
Reimplemented from blender::fn::lazy_function::LazyFunction.
Definition at line 2092 of file geometry_nodes_lazy_function.cc.
References blender::nodes::zone_wrapper_input_name().
|
inlineoverridevirtual |
Reimplemented from blender::fn::lazy_function::LazyFunction.
Definition at line 2097 of file geometry_nodes_lazy_function.cc.
References blender::nodes::zone_wrapper_output_name().