|
Blender V4.5
|
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 |
A lazy function that is used to evaluate a passed in closure. Internally that has to build another lazy-function graph, which "fixes" different orderings of inputs/outputs, handles missing sockets and type conversions.
Definition at line 277 of file geometry_nodes_closure_zone.cc.
|
inline |
Definition at line 284 of file geometry_nodes_closure_zone.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::bke::node_tree_reference_lifetimes::can_contain_referenced_data(), blender::fn::lazy_function::LazyFunction::debug_name_, blender::CPPType::get(), blender::nodes::EvaluateClosureFunctionIndices::input_usages, blender::nodes::EvaluateClosureFunctionIndices::inputs, blender::fn::lazy_function::LazyFunction::inputs_, blender::nodes::EvaluateClosureFunctionIndices::main, bNode::name, bNodeSocket::name, blender::nodes::EvaluateClosureFunctionIndices::output_usages, blender::nodes::EvaluateClosureFunctionIndices::outputs, blender::fn::lazy_function::LazyFunction::outputs_, blender::nodes::EvaluateClosureFunctionIndices::reference_set_by_output, bNodeSocket::type, and bNodeSocket::typeinfo.
|
inlineoverridevirtual |
Destruct the storage created in init_storage.
Reimplemented from blender::fn::lazy_function::LazyFunction.
Definition at line 325 of file geometry_nodes_closure_zone.cc.
References blender::nodes::EvaluateClosureEvalStorage::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 334 of file geometry_nodes_closure_zone.cc.
References blender::nodes::Error, bNode::identifier, is_recursive_call(), set_default_outputs(), and TIP_.
|
inline |
Definition at line 417 of file geometry_nodes_closure_zone.cc.
References blender::nodes::geo_eval_log::GeoTreeLogger::allocator, blender::nodes::ClosureSignature::find_input_index(), bNode::identifier, blender::nodes::ClosureSignature::inputs, blender::nodes::geo_eval_log::GeoTreeLogger::node_warnings, blender::nodes::Closure::signature(), bNode::storage, TIP_, blender::bke::bNodeSocketType::type, blender::nodes::ClosureSignature::Item::type, and bNodeTree::typeinfo.
|
inline |
Definition at line 315 of file geometry_nodes_closure_zone.cc.
Referenced by blender::nodes::build_evaluate_closure_node_lazy_function().
|
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 320 of file geometry_nodes_closure_zone.cc.
References blender::LinearAllocator< Allocator >::construct().
|
inline |
Definition at line 482 of file geometry_nodes_closure_zone.cc.
References blender::fn::lazy_function::Graph::add_function(), blender::fn::lazy_function::Graph::add_input(), blender::fn::lazy_function::Graph::add_link(), blender::fn::lazy_function::Graph::add_output(), blender::ResourceScope::allocate_owned(), blender::ResourceScope::allocator(), blender::Array< T, InlineBufferCapacity, Allocator >::as_span(), BLI_assert, blender::nodes::build_implicit_conversion_lazy_function(), blender::nodes::EvaluateClosureEvalStorage::closure, blender::nodes::construct_socket_default_value(), blender::nodes::Closure::default_input_value(), DEG_get_original(), blender::nodes::ClosureSignature::find_input_index(), blender::nodes::ClosureSignature::find_output_index(), blender::nodes::Closure::function(), blender::nodes::EvaluateClosureEvalStorage::graph, blender::nodes::EvaluateClosureEvalStorage::graph_executor, blender::nodes::EvaluateClosureEvalStorage::graph_executor_storage, blender::fn::lazy_function::Graph::graph_inputs(), blender::fn::lazy_function::Graph::graph_outputs(), bNode::identifier, blender::Array< T, InlineBufferCapacity, Allocator >::index_range(), blender::IndexRange::index_range(), blender::nodes::Closure::indices(), blender::fn::lazy_function::Node::input(), input, blender::nodes::ClosureFunctionIndices::input_usages, blender::nodes::EvaluateClosureFunctionIndices::input_usages, blender::nodes::ClosureFunctionIndices::inputs, blender::nodes::ClosureSignature::inputs, blender::nodes::EvaluateClosureFunctionIndices::inputs, lock, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_try(), blender::nodes::ClosureFunctionIndices::main, blender::nodes::EvaluateClosureFunctionIndices::main, blender::fn::lazy_function::InputSocket::origin(), blender::fn::lazy_function::Node::output(), output, blender::nodes::ClosureFunctionIndices::output_data_reference_sets, blender::nodes::ClosureFunctionIndices::output_usages, blender::nodes::EvaluateClosureFunctionIndices::output_usages, blender::nodes::ClosureFunctionIndices::outputs, blender::nodes::ClosureSignature::outputs, blender::nodes::EvaluateClosureFunctionIndices::outputs, blender::nodes::EvaluateClosureFunctionIndices::reference_set_by_output, bNodeTree::runtime, blender::nodes::EvaluateClosureEvalStorage::scope, blender::fn::lazy_function::InputSocket::set_default_value(), blender::nodes::EvaluateClosureEvalStorage::side_effect_provider, blender::nodes::Closure::signature(), bNode::storage, blender::fn::lazy_function::OutputSocket::targets(), bNode::typeinfo, and blender::fn::lazy_function::Graph::update_node_indices().
|
inline |
Definition at line 657 of file geometry_nodes_closure_zone.cc.
References blender::fn::lazy_function::Graph::add_function(), blender::fn::lazy_function::Graph::add_input(), blender::fn::lazy_function::Graph::add_link(), blender::fn::lazy_function::Graph::add_output(), blender::ResourceScope::allocate_owned(), blender::ResourceScope::allocator(), blender::nodes::build_implicit_conversion_lazy_function(), blender::nodes::construct_socket_default_value(), blender::nodes::evaluate_closure_node_internally_linked_input(), blender::bke::bNodeSocketType::geometry_nodes_cpp_type, blender::nodes::EvaluateClosureEvalStorage::graph, blender::nodes::EvaluateClosureEvalStorage::graph_executor, blender::nodes::EvaluateClosureEvalStorage::graph_executor_storage, blender::fn::lazy_function::Graph::graph_inputs(), blender::fn::lazy_function::Graph::graph_outputs(), blender::fn::lazy_function::Node::input(), input, blender::nodes::EvaluateClosureFunctionIndices::input_usages, blender::nodes::EvaluateClosureFunctionIndices::inputs, blender::nodes::EvaluateClosureFunctionIndices::main, blender::fn::lazy_function::InputSocket::origin(), blender::fn::lazy_function::Node::output(), output, blender::nodes::EvaluateClosureFunctionIndices::output_usages, blender::nodes::EvaluateClosureFunctionIndices::outputs, blender::nodes::EvaluateClosureEvalStorage::scope, blender::fn::lazy_function::InputSocket::set_default_value(), bNode::storage, bNodeSocket::typeinfo, and blender::fn::lazy_function::Graph::update_node_indices().
|
inline |
Definition at line 390 of file geometry_nodes_closure_zone.cc.
References blender::nodes::GeoNodesUserData::compute_context.
Referenced by execute_impl().
|
inline |
Definition at line 406 of file geometry_nodes_closure_zone.cc.
References blender::nodes::EvaluateClosureFunctionIndices::input_usages, blender::nodes::EvaluateClosureFunctionIndices::main, blender::nodes::EvaluateClosureFunctionIndices::outputs, params, and blender::nodes::set_default_value_for_output_socket().
Referenced by execute_impl().