Blender  V3.3
Classes | Public Member Functions | Friends | List of all members
blender::fn::MFProcedure Class Reference

#include <FN_multi_function_procedure.hh>

Inheritance diagram for blender::fn::MFProcedure:
blender::NonCopyable blender::NonMovable

Public Member Functions

 MFProcedure ()=default
 
 ~MFProcedure ()
 
MFVariablenew_variable (MFDataType data_type, std::string name="")
 
MFCallInstructionnew_call_instruction (const MultiFunction &fn)
 
MFBranchInstructionnew_branch_instruction ()
 
MFDestructInstructionnew_destruct_instruction ()
 
MFDummyInstructionnew_dummy_instruction ()
 
MFReturnInstructionnew_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< ConstMFParameterparams () const
 
template<typename T , typename... Args>
const MultiFunctionconstruct_function (Args &&...args)
 
MFInstructionentry ()
 
const MFInstructionentry () const
 
Span< MFVariable * > variables ()
 
Span< const MFVariable * > variables () const
 

Friends

class MFProcedureDotExport
 

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

Constructor & Destructor Documentation

◆ MFProcedure()

blender::fn::MFProcedure::MFProcedure ( )
default

◆ ~MFProcedure()

blender::fn::MFProcedure::~MFProcedure ( )

Definition at line 238 of file multi_function_procedure.cc.

Member Function Documentation

◆ add_parameter()

void blender::fn::MFProcedure::add_parameter ( MFParamType::InterfaceType  interface_type,
MFVariable variable 
)

◆ construct_function()

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

◆ entry() [1/2]

MFInstruction * blender::fn::MFProcedure::entry ( )
inline

◆ entry() [2/2]

const MFInstruction * blender::fn::MFProcedure::entry ( ) const
inline

Definition at line 526 of file FN_multi_function_procedure.hh.

◆ new_branch_instruction()

MFBranchInstruction & blender::fn::MFProcedure::new_branch_instruction ( )

◆ new_call_instruction()

MFCallInstruction & blender::fn::MFProcedure::new_call_instruction ( const MultiFunction fn)

◆ new_destruct_instruction()

MFDestructInstruction & blender::fn::MFProcedure::new_destruct_instruction ( )

◆ new_dummy_instruction()

MFDummyInstruction & blender::fn::MFProcedure::new_dummy_instruction ( )

◆ new_return_instruction()

MFReturnInstruction & blender::fn::MFProcedure::new_return_instruction ( )

◆ new_variable()

MFVariable & blender::fn::MFProcedure::new_variable ( MFDataType  data_type,
std::string  name = "" 
)

◆ params()

Span< ConstMFParameter > blender::fn::MFProcedure::params ( ) const
inline

◆ set_entry()

void blender::fn::MFProcedure::set_entry ( MFInstruction entry)

◆ to_dot()

std::string blender::fn::MFProcedure::to_dot ( ) const

◆ validate()

bool blender::fn::MFProcedure::validate ( ) const

◆ variables() [1/2]

Span< MFVariable * > blender::fn::MFProcedure::variables ( )
inline

◆ variables() [2/2]

Span< const MFVariable * > blender::fn::MFProcedure::variables ( ) const
inline

Definition at line 536 of file FN_multi_function_procedure.hh.

Friends And Related Function Documentation

◆ MFProcedureDotExport

friend class MFProcedureDotExport
friend

Definition at line 260 of file FN_multi_function_procedure.hh.


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