Blender V5.0
blender::fn::multi_function::ProcedureExecutor Class Reference

#include <FN_multi_function_procedure_executor.hh>

Inherits blender::fn::multi_function::MultiFunction.

Public Member Functions

 ProcedureExecutor (const Procedure &procedure)
void call (const IndexMask &mask, Params params, Context context) const override
Public Member Functions inherited from blender::fn::multi_function::MultiFunction
virtual ~MultiFunction ()=default
void call_auto (const IndexMask &mask, Params params, Context context) const
virtual uint64_t hash () const
virtual bool equals (const MultiFunction &) const
int param_amount () const
IndexRange param_indices () const
ParamType param_type (int param_index) const
StringRefNull param_name (int param_index) const
StringRefNull name () const
virtual std::string debug_name () const
const Signaturesignature () const
ExecutionHints execution_hints () const

Additional Inherited Members

Protected Member Functions inherited from blender::fn::multi_function::MultiFunction
void set_signature (const Signature *signature)

Detailed Description

A multi-function that executes a procedure internally.

Definition at line 16 of file FN_multi_function_procedure_executor.hh.

Constructor & Destructor Documentation

◆ ProcedureExecutor()

blender::fn::multi_function::ProcedureExecutor::ProcedureExecutor ( const Procedure & procedure)

Member Function Documentation

◆ call()

void blender::fn::multi_function::ProcedureExecutor::call ( const IndexMask & mask,
Params params,
Context context ) const
overridevirtual

Implements blender::fn::multi_function::MultiFunction.

Definition at line 1160 of file multi_function_procedure_executor.cc.

References blender::fn::multi_function::VariableStates::add_initial_variable_states(), blender::fn::multi_function::InstructionScheduler::add_owned_indices(), blender::fn::multi_function::InstructionScheduler::add_referenced_indices(), BLI_assert, blender::fn::multi_function::Branch, blender::fn::multi_function::BranchInstruction::branch_false(), blender::fn::multi_function::BranchInstruction::branch_true(), blender::fn::multi_function::Call, blender::fn::multi_function::BranchInstruction::condition(), blender::fn::multi_function::Destruct, blender::fn::multi_function::VariableStates::destruct(), blender::fn::multi_function::Dummy, blender::fn::multi_function::VariableState::ensure_is_mutable(), blender::fn::multi_function::execute_call_instruction(), blender::fn::multi_function::VariableStates::get_variable_state(), blender::fn::multi_function::VariableState::indices_split(), blender::fn::multi_function::ParamType::Input, blender::fn::multi_function::NextInstructionInfo::instruction, blender::fn::multi_function::InstructionScheduler::is_done(), blender::fn::multi_function::VariableState::is_fully_initialized(), blender::fn::multi_function::VariableState::is_fully_uninitialized(), blender::fn::multi_function::NextInstructionInfo::mask(), blender::fn::multi_function::ParamType::Mutable, blender::fn::multi_function::CallInstruction::next(), blender::fn::multi_function::DestructInstruction::next(), blender::fn::multi_function::DummyInstruction::next(), blender::fn::multi_function::ParamType::Output, blender::fn::multi_function::MultiFunction::param_indices(), blender::fn::multi_function::MultiFunction::param_type(), params, blender::fn::multi_function::InstructionScheduler::peek(), blender::fn::multi_function::InstructionScheduler::pop(), blender::fn::multi_function::Return, blender::fn::multi_function::Instruction::type(), blender::fn::multi_function::InstructionScheduler::update_instruction_pointer(), blender::fn::multi_function::VariableStates::value_allocator(), and blender::fn::multi_function::DestructInstruction::variable().

Referenced by blender::fn::multi_function::tests::TEST(), blender::fn::multi_function::tests::TEST(), blender::fn::multi_function::tests::TEST(), blender::fn::multi_function::tests::TEST(), blender::fn::multi_function::tests::TEST(), blender::fn::multi_function::tests::TEST(), blender::fn::multi_function::tests::TEST(), and blender::fn::multi_function::tests::TEST().


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