|
Blender V4.3
|
#include <FN_multi_function_procedure.hh>
Inherits blender::NonCopyable, and blender::NonMovable.
Public Member Functions | |
| Procedure ()=default | |
| ~Procedure () | |
| Variable & | new_variable (DataType data_type, std::string name="") |
| CallInstruction & | new_call_instruction (const MultiFunction &fn) |
| BranchInstruction & | new_branch_instruction () |
| DestructInstruction & | new_destruct_instruction () |
| DummyInstruction & | new_dummy_instruction () |
| ReturnInstruction & | new_return_instruction () |
| void | add_parameter (ParamType::InterfaceType interface_type, Variable &variable) |
| void | set_entry (Instruction &entry) |
| std::string | to_dot () const |
| bool | validate () const |
#Procedure Inline Methods | |
| Span< ConstParameter > | params () const |
| template<typename T , typename... Args> | |
| const MultiFunction & | construct_function (Args &&...args) |
| Instruction * | entry () |
| const Instruction * | entry () const |
| Span< Variable * > | variables () |
| Span< const Variable * > | variables () const |
Friends | |
| class | ProcedureDotExport |
A multi-function procedure allows composing multi-functions in arbitrary ways. It consists of variables and instructions that operate on those variables. Branching and looping within the procedure is supported as well.
Typically, a Procedure should be constructed using a #ProcedureBuilder, which has many more utility methods for common use cases.
Definition at line 239 of file FN_multi_function_procedure.hh.
|
default |
| blender::fn::multi_function::Procedure::~Procedure | ( | ) |
Definition at line 245 of file multi_function_procedure.cc.
| void blender::fn::multi_function::Procedure::add_parameter | ( | ParamType::InterfaceType | interface_type, |
| Variable & | variable ) |
Definition at line 231 of file multi_function_procedure.cc.
Referenced by blender::fn::multi_function::ProcedureBuilder::add_parameter().
|
inline |
Definition at line 524 of file FN_multi_function_procedure.hh.
References blender::LinearAllocator< Allocator >::construct().
Referenced by blender::fn::build_multi_function_procedure_for_fields().
|
inline |
Definition at line 503 of file FN_multi_function_procedure.hh.
Referenced by blender::fn::multi_function::ProcedureExecutor::call(), blender::fn::multi_function::ProcedureDotExport::create_edges(), blender::fn::multi_function::InstructionCursor::next(), and set_entry().
|
inline |
Definition at line 508 of file FN_multi_function_procedure.hh.
| BranchInstruction & blender::fn::multi_function::Procedure::new_branch_instruction | ( | ) |
Definition at line 199 of file multi_function_procedure.cc.
References blender::fn::multi_function::Branch, blender::LinearAllocator< Allocator >::construct(), and blender::fn::multi_function::Instruction::type_.
Referenced by blender::fn::multi_function::ProcedureBuilder::add_branch().
| CallInstruction & blender::fn::multi_function::Procedure::new_call_instruction | ( | const MultiFunction & | fn | ) |
Definition at line 188 of file multi_function_procedure.cc.
References blender::LinearAllocator< Allocator >::allocate_array(), blender::fn::multi_function::Call, blender::LinearAllocator< Allocator >::construct(), blender::fn::multi_function::MultiFunction::param_amount(), and blender::fn::multi_function::Instruction::type_.
Referenced by blender::fn::multi_function::ProcedureBuilder::add_call_with_no_variables().
| DestructInstruction & blender::fn::multi_function::Procedure::new_destruct_instruction | ( | ) |
Definition at line 207 of file multi_function_procedure.cc.
References blender::LinearAllocator< Allocator >::construct(), blender::fn::multi_function::Destruct, and blender::fn::multi_function::Instruction::type_.
Referenced by blender::fn::multi_function::ProcedureBuilder::add_destruct().
| DummyInstruction & blender::fn::multi_function::Procedure::new_dummy_instruction | ( | ) |
Definition at line 215 of file multi_function_procedure.cc.
References blender::LinearAllocator< Allocator >::construct(), blender::fn::multi_function::Dummy, and blender::fn::multi_function::Instruction::type_.
Referenced by blender::fn::multi_function::ProcedureBuilder::add_loop().
| ReturnInstruction & blender::fn::multi_function::Procedure::new_return_instruction | ( | ) |
Definition at line 223 of file multi_function_procedure.cc.
References blender::LinearAllocator< Allocator >::construct(), blender::fn::multi_function::Return, and blender::fn::multi_function::Instruction::type_.
Referenced by blender::fn::multi_function::ProcedureBuilder::add_return().
| Variable & blender::fn::multi_function::Procedure::new_variable | ( | DataType | data_type, |
| std::string | name = "" ) |
Definition at line 178 of file multi_function_procedure.cc.
References blender::LinearAllocator< Allocator >::construct().
Referenced by blender::fn::multi_function::ProcedureBuilder::add_call(), blender::fn::multi_function::ProcedureBuilder::add_parameter(), blender::fn::build_multi_function_procedure_for_fields(), and blender::fn::multi_function::tests::TEST().
|
inline |
Definition at line 497 of file FN_multi_function_procedure.hh.
Referenced by blender::fn::multi_function::VariableStates::add_initial_variable_states(), blender::fn::multi_function::ProcedureExecutor::call(), blender::fn::multi_function::ProcedureDotExport::create_entry_node(), blender::fn::multi_function::ProcedureDotExport::instruction_to_string(), and blender::fn::multi_function::ProcedureExecutor::ProcedureExecutor().
| void blender::fn::multi_function::Procedure::set_entry | ( | Instruction & | entry | ) |
Definition at line 236 of file multi_function_procedure.cc.
References entry(), blender::fn::multi_function::InstructionCursor::ForEntry(), and blender::fn::multi_function::Instruction::prev_.
Referenced by blender::fn::multi_function::InstructionCursor::set_next().
| std::string blender::fn::multi_function::Procedure::to_dot | ( | ) | const |
Definition at line 865 of file multi_function_procedure.cc.
References blender::fn::multi_function::ProcedureDotExport::generate().
| bool blender::fn::multi_function::Procedure::validate | ( | ) | const |
Definition at line 513 of file FN_multi_function_procedure.hh.
Referenced by blender::fn::multi_function::VariableStates::~VariableStates().
Definition at line 518 of file FN_multi_function_procedure.hh.
|
friend |
Definition at line 252 of file FN_multi_function_procedure.hh.