|
Blender
V3.3
|
#include <FN_multi_function_procedure.hh>
Public Member Functions | |
| MFProcedure ()=default | |
| ~MFProcedure () | |
| MFVariable & | new_variable (MFDataType data_type, std::string name="") |
| MFCallInstruction & | new_call_instruction (const MultiFunction &fn) |
| MFBranchInstruction & | new_branch_instruction () |
| MFDestructInstruction & | new_destruct_instruction () |
| MFDummyInstruction & | new_dummy_instruction () |
| MFReturnInstruction & | new_return_instruction () |
| void | add_parameter (MFParamType::InterfaceType interface_type, MFVariable &variable) |
| void | set_entry (MFInstruction &entry) |
| std::string | to_dot () const |
| bool | validate () const |
#MFProcedure Inline Methods | |
| Span< ConstMFParameter > | params () const |
| template<typename T , typename... Args> | |
| const MultiFunction & | construct_function (Args &&...args) |
| MFInstruction * | entry () |
| const MFInstruction * | entry () const |
| Span< MFVariable * > | variables () |
| Span< const MFVariable * > | variables () const |
Friends | |
| class | MFProcedureDotExport |
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 MFProcedure should be constructed using a #MFProcedureBuilder, which has many more utility methods for common use cases.
Definition at line 247 of file FN_multi_function_procedure.hh.
|
default |
| blender::fn::MFProcedure::~MFProcedure | ( | ) |
Definition at line 238 of file multi_function_procedure.cc.
| void blender::fn::MFProcedure::add_parameter | ( | MFParamType::InterfaceType | interface_type, |
| MFVariable & | variable | ||
| ) |
Definition at line 224 of file multi_function_procedure.cc.
Referenced by blender::fn::MFProcedureBuilder::add_parameter().
|
inline |
Definition at line 542 of file FN_multi_function_procedure.hh.
References blender::LinearAllocator< Allocator >::construct(), and T.
Referenced by blender::fn::build_multi_function_procedure_for_fields().
|
inline |
Definition at line 521 of file FN_multi_function_procedure.hh.
Referenced by blender::fn::MFProcedureExecutor::call(), blender::fn::MFProcedureDotExport::create_edges(), blender::fn::MFInstructionCursor::next(), and set_entry().
|
inline |
Definition at line 526 of file FN_multi_function_procedure.hh.
| MFBranchInstruction & blender::fn::MFProcedure::new_branch_instruction | ( | ) |
Definition at line 192 of file multi_function_procedure.cc.
References blender::fn::Branch, blender::LinearAllocator< Allocator >::construct(), and blender::fn::MFInstruction::type_.
Referenced by blender::fn::MFProcedureBuilder::add_branch().
| MFCallInstruction & blender::fn::MFProcedure::new_call_instruction | ( | const MultiFunction & | fn | ) |
Definition at line 181 of file multi_function_procedure.cc.
References blender::LinearAllocator< Allocator >::allocate_array(), blender::fn::Call, blender::LinearAllocator< Allocator >::construct(), blender::fn::MultiFunction::param_amount(), and blender::fn::MFInstruction::type_.
Referenced by blender::fn::MFProcedureBuilder::add_call_with_no_variables().
| MFDestructInstruction & blender::fn::MFProcedure::new_destruct_instruction | ( | ) |
Definition at line 200 of file multi_function_procedure.cc.
References blender::LinearAllocator< Allocator >::construct(), blender::fn::Destruct, and blender::fn::MFInstruction::type_.
Referenced by blender::fn::MFProcedureBuilder::add_destruct().
| MFDummyInstruction & blender::fn::MFProcedure::new_dummy_instruction | ( | ) |
Definition at line 208 of file multi_function_procedure.cc.
References blender::LinearAllocator< Allocator >::construct(), blender::fn::Dummy, and blender::fn::MFInstruction::type_.
Referenced by blender::fn::MFProcedureBuilder::add_loop().
| MFReturnInstruction & blender::fn::MFProcedure::new_return_instruction | ( | ) |
Definition at line 216 of file multi_function_procedure.cc.
References blender::LinearAllocator< Allocator >::construct(), blender::fn::Return, and blender::fn::MFInstruction::type_.
Referenced by blender::fn::MFProcedureBuilder::add_return().
| MFVariable & blender::fn::MFProcedure::new_variable | ( | MFDataType | data_type, |
| std::string | name = "" |
||
| ) |
Definition at line 171 of file multi_function_procedure.cc.
References blender::LinearAllocator< Allocator >::construct().
Referenced by blender::fn::MFProcedureBuilder::add_call(), blender::fn::MFProcedureBuilder::add_parameter(), blender::fn::build_multi_function_procedure_for_fields(), and blender::fn::tests::TEST().
|
inline |
Definition at line 515 of file FN_multi_function_procedure.hh.
Referenced by blender::fn::VariableStates::add_initial_variable_states(), blender::fn::MFProcedureExecutor::call(), blender::fn::MFProcedureDotExport::create_entry_node(), blender::fn::MFProcedureDotExport::instruction_to_string(), and blender::fn::MFProcedureExecutor::MFProcedureExecutor().
| void blender::fn::MFProcedure::set_entry | ( | MFInstruction & | entry | ) |
Definition at line 229 of file multi_function_procedure.cc.
References entry(), blender::fn::MFInstructionCursor::ForEntry(), and blender::fn::MFInstruction::prev_.
Referenced by blender::fn::MFInstructionCursor::set_next().
| std::string blender::fn::MFProcedure::to_dot | ( | ) | const |
Definition at line 858 of file multi_function_procedure.cc.
References blender::fn::MFProcedureDotExport::generate().
| bool blender::fn::MFProcedure::validate | ( | ) | const |
Definition at line 260 of file multi_function_procedure.cc.
Referenced by blender::fn::build_multi_function_procedure_for_fields(), blender::fn::MFProcedureExecutor::call(), and blender::fn::tests::TEST().
|
inline |
Definition at line 531 of file FN_multi_function_procedure.hh.
Referenced by blender::fn::VariableStates::~VariableStates().
|
inline |
Definition at line 536 of file FN_multi_function_procedure.hh.
|
friend |
Definition at line 260 of file FN_multi_function_procedure.hh.