Blender V5.0
blender::nodes::LazyFunctionForClosureZone Class Reference

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 &params, 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 &params) const
bool allow_missing_requested_inputs () const
Span< Inputinputs () const
Span< Outputoutputs () const
void execute (Params &params, const Context &context) const

Additional Inherited Members

Protected Attributes inherited from blender::fn::lazy_function::LazyFunction
const char * debug_name_ = "unknown"
Vector< Inputinputs_
Vector< Outputoutputs_
bool allow_missing_requested_inputs_ = false

Detailed Description

A lazy function that internally has a lazy-function graph that mimics the "body" of the closure zone.

Definition at line 75 of file geometry_nodes_closure_zone.cc.

Constructor & Destructor Documentation

◆ LazyFunctionForClosureZone()

Member Function Documentation

◆ execute_impl()

void blender::nodes::LazyFunctionForClosureZone::execute_impl ( lf::Params & params,
const lf::Context & context ) const
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 136 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(), Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), blender::fn::lazy_function::Graph::add_output(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), DEG_get_original(), blender::bke::SocketValueVariant::From(), blender::CPPType::get(), blender::fn::lazy_function::Graph::graph_inputs(), blender::fn::lazy_function::Graph::graph_outputs(), i, blender::fn::lazy_function::Socket::index(), blender::nodes::ClosureFunctionIndices::input_usages, blender::nodes::ClosureFunctionIndices::inputs, lock, blender::nodes::ClosureFunctionIndices::main, bNodeSocket::name, NodeClosureInputItem::name, NodeClosureOutputItem::name, blender::nodes::ClosureFunctionIndices::output_data_reference_sets, blender::nodes::ClosureFunctionIndices::output_usages, blender::nodes::ClosureFunctionIndices::outputs, params, bNodeTree::runtime, blender::bke::node_tree_reference_lifetimes::ReferenceSetInfo::socket, blender::bke::node_tree_reference_lifetimes::ReferenceSetInfo::type, bNodeSocket::typeinfo, and blender::fn::lazy_function::Graph::update_node_indices().


The documentation for this class was generated from the following file: