|
Blender V4.5
|
Inherits blender::fn::lazy_function::LazyFunction.
Public Member Functions | |
| LazyFunctionForClosureZone (const bNodeTree &btree, const bke::bNodeTreeZone &zone, ZoneBuildInfo &zone_info, const ZoneBodyFunction &body_fn) | |
| void | execute_impl (lf::Params ¶ms, const lf::Context &context) const override |
Public Member Functions inherited from blender::fn::lazy_function::LazyFunction | |
| virtual | ~LazyFunction ()=default |
| virtual std::string | name () const |
| virtual std::string | input_name (int index) const |
| virtual std::string | output_name (int index) const |
| virtual void * | init_storage (LinearAllocator<> &allocator) const |
| virtual void | destruct_storage (void *storage) const |
| virtual void | possible_output_dependencies (int output_index, FunctionRef< void(Span< int >)> fn) const |
| bool | always_used_inputs_available (const Params ¶ms) const |
| bool | allow_missing_requested_inputs () const |
| Span< Input > | inputs () const |
| Span< Output > | outputs () const |
| void | execute (Params ¶ms, const Context &context) const |
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 internally has a lazy-function graph that mimics the "body" of the closure zone.
Definition at line 72 of file geometry_nodes_closure_zone.cc.
|
inline |
Definition at line 82 of file geometry_nodes_closure_zone.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), BLI_assert, blender::bke::bNodeTreeZone::border_links, blender::nodes::ZoneFunctionIndices::border_links, blender::fn::lazy_function::LazyFunction::debug_name_, blender::CPPType::get(), blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), blender::nodes::ZoneBodyFunction::indices, blender::nodes::ZoneBuildInfo::indices, blender::nodes::initialize_zone_wrapper(), blender::bke::bNodeTreeZone::input_node(), blender::nodes::ZoneFunctionIndices::inputs, bNode::inputs, blender::fn::lazy_function::LazyFunction::inputs_, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), bNodeSocket::name, blender::bke::bNodeTreeZone::output_node(), bNode::outputs, blender::fn::lazy_function::LazyFunction::outputs_, blender::nodes::ZoneFunctionIndices::reference_sets, bNodeTree::runtime, blender::bke::node_tree_reference_lifetimes::ReferenceSetInfo::socket, bNode::storage, blender::bke::node_tree_reference_lifetimes::ReferenceSetInfo::type, and bNodeSocket::typeinfo.
|
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 133 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::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), blender::fn::lazy_function::Graph::add_output(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::nodes::ZoneFunctionIndices::border_link_usages, blender::bke::bNodeTreeZone::border_links, blender::nodes::ZoneFunctionIndices::border_links, blender::nodes::construct_socket_default_value(), DEG_get_original(), blender::nodes::ZoneBodyFunction::function, blender::CPPType::get(), blender::fn::lazy_function::Graph::graph_inputs(), blender::fn::lazy_function::Graph::graph_outputs(), bNode::identifier, blender::fn::lazy_function::Socket::index(), blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), blender::nodes::ZoneBodyFunction::indices, blender::nodes::ZoneBuildInfo::indices, blender::bke::bNodeTreeZone::input_node(), blender::nodes::ClosureFunctionIndices::input_usages, blender::nodes::ZoneFunctionIndices::input_usages, blender::nodes::ClosureFunctionIndices::inputs, blender::nodes::ZoneFunctionIndices::inputs, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), lock, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), blender::nodes::ClosureFunctionIndices::main, blender::nodes::ZoneFunctionIndices::main, blender::CPPType::move_construct(), bNodeSocket::name, NodeGeometryClosureInputItem::name, NodeGeometryClosureOutputItem::name, node, blender::nodes::ClosureFunctionIndices::output_data_reference_sets, blender::bke::bNodeTreeZone::output_node(), blender::nodes::ClosureFunctionIndices::output_usages, blender::nodes::ZoneFunctionIndices::output_usages, blender::nodes::ClosureFunctionIndices::outputs, blender::nodes::ZoneFunctionIndices::outputs, params, blender::nodes::ZoneFunctionIndices::reference_sets, bNodeTree::runtime, set_default_value(), blender::bke::node_tree_reference_lifetimes::ReferenceSetInfo::socket, bNode::storage, blender::bke::node_tree_reference_lifetimes::ReferenceSetInfo::type, bNodeSocket::typeinfo, and blender::fn::lazy_function::Graph::update_node_indices().