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

#include <FN_multi_function_procedure.hh>

Inherits blender::NonCopyable, and blender::NonMovable.

Public Member Functions

 Procedure ()=default
 ~Procedure ()
Variablenew_variable (DataType data_type, std::string name="")
CallInstructionnew_call_instruction (const MultiFunction &fn)
BranchInstructionnew_branch_instruction ()
DestructInstructionnew_destruct_instruction ()
DummyInstructionnew_dummy_instruction ()
ReturnInstructionnew_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< ConstParameterparams () const
template<typename T, typename... Args>
const MultiFunctionconstruct_function (Args &&...args)
Instructionentry ()
const Instructionentry () const
Span< Variable * > variables ()
Span< const Variable * > variables () const

Friends

class ProcedureDotExport

Detailed Description

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.

Constructor & Destructor Documentation

◆ Procedure()

blender::fn::multi_function::Procedure::Procedure ( )
default

References entry(), name, and T.

◆ ~Procedure()

blender::fn::multi_function::Procedure::~Procedure ( )

Definition at line 245 of file multi_function_procedure.cc.

Member Function Documentation

◆ add_parameter()

void blender::fn::multi_function::Procedure::add_parameter ( ParamType::InterfaceType interface_type,
Variable & variable )

Definition at line 231 of file multi_function_procedure.cc.

◆ construct_function()

template<typename T, typename... Args>
const MultiFunction & blender::fn::multi_function::Procedure::construct_function ( Args &&... args)
inline

Definition at line 524 of file FN_multi_function_procedure.hh.

References T.

◆ entry() [1/2]

Instruction * blender::fn::multi_function::Procedure::entry ( )
inline

◆ entry() [2/2]

const Instruction * blender::fn::multi_function::Procedure::entry ( ) const
inline

Definition at line 508 of file FN_multi_function_procedure.hh.

◆ new_branch_instruction()

BranchInstruction & blender::fn::multi_function::Procedure::new_branch_instruction ( )

◆ new_call_instruction()

CallInstruction & blender::fn::multi_function::Procedure::new_call_instruction ( const MultiFunction & fn)

◆ new_destruct_instruction()

DestructInstruction & blender::fn::multi_function::Procedure::new_destruct_instruction ( )

◆ new_dummy_instruction()

DummyInstruction & blender::fn::multi_function::Procedure::new_dummy_instruction ( )

◆ new_return_instruction()

ReturnInstruction & blender::fn::multi_function::Procedure::new_return_instruction ( )

◆ new_variable()

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 name.

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

◆ params()

◆ set_entry()

void blender::fn::multi_function::Procedure::set_entry ( Instruction & entry)

◆ to_dot()

std::string blender::fn::multi_function::Procedure::to_dot ( ) const

Definition at line 865 of file multi_function_procedure.cc.

References ProcedureDotExport.

◆ validate()

bool blender::fn::multi_function::Procedure::validate ( ) const

◆ variables() [1/2]

Span< Variable * > blender::fn::multi_function::Procedure::variables ( )
inline

Definition at line 513 of file FN_multi_function_procedure.hh.

◆ variables() [2/2]

Span< const Variable * > blender::fn::multi_function::Procedure::variables ( ) const
inline

Definition at line 518 of file FN_multi_function_procedure.hh.

◆ ProcedureDotExport

friend class ProcedureDotExport
friend

Definition at line 252 of file FN_multi_function_procedure.hh.

References ProcedureDotExport.

Referenced by ProcedureDotExport, and to_dot().


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