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.