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

#include <FN_multi_function_procedure_builder.hh>

Classes

struct  Branch
struct  Loop

Public Member Functions

 ProcedureBuilder (Procedure &procedure, InstructionCursor initial_cursor=InstructionCursor::ForEntry())
 ProcedureBuilder (Span< ProcedureBuilder * > builders)
 ProcedureBuilder (Branch &branch)
void set_cursor (const InstructionCursor &cursor)
void set_cursor (Span< InstructionCursor > cursors)
void set_cursor (Span< ProcedureBuilder * > builders)
void set_cursor_after_branch (Branch &branch)
void set_cursor_after_loop (Loop &loop)
void add_destruct (Variable &variable)
void add_destruct (Span< Variable * > variables)
ReturnInstructionadd_return ()
Branch add_branch (Variable &condition)
Loop add_loop ()
void add_loop_continue (Loop &loop)
void add_loop_break (Loop &loop)
CallInstructionadd_call_with_no_variables (const MultiFunction &fn)
CallInstructionadd_call_with_all_variables (const MultiFunction &fn, Span< Variable * > param_variables)
Vector< Variable * > add_call (const MultiFunction &fn, Span< Variable * > input_and_mutable_variables={})
template<int OutputN>
std::array< Variable *, OutputN > add_call (const MultiFunction &fn, Span< Variable * > input_and_mutable_variables={})
void add_parameter (ParamType::InterfaceType interface_type, Variable &variable)
Variableadd_parameter (ParamType param_type, std::string name="")
Variableadd_input_parameter (DataType data_type, std::string name="")
template<typename T>
Variableadd_single_input_parameter (std::string name="")
template<typename T>
Variableadd_single_mutable_parameter (std::string name="")
void add_output_parameter (Variable &variable)

Detailed Description

Utility class to build a Procedure.

Definition at line 18 of file FN_multi_function_procedure_builder.hh.

Constructor & Destructor Documentation

◆ ProcedureBuilder() [1/3]

blender::fn::multi_function::ProcedureBuilder::ProcedureBuilder ( Procedure & procedure,
InstructionCursor initial_cursor = InstructionCursor::ForEntry() )
inline

◆ ProcedureBuilder() [2/3]

blender::fn::multi_function::ProcedureBuilder::ProcedureBuilder ( Span< ProcedureBuilder * > builders)
inline

Definition at line 102 of file FN_multi_function_procedure_builder.hh.

References ProcedureBuilder(), and set_cursor().

◆ ProcedureBuilder() [3/3]

blender::fn::multi_function::ProcedureBuilder::ProcedureBuilder ( Branch & branch)
inline

Member Function Documentation

◆ add_branch()

◆ add_call() [1/2]

template<int OutputN>
std::array< Variable *, OutputN > blender::fn::multi_function::ProcedureBuilder::add_call ( const MultiFunction & fn,
Span< Variable * > input_and_mutable_variables = {} )
inline

◆ add_call() [2/2]

◆ add_call_with_all_variables()

CallInstruction & blender::fn::multi_function::ProcedureBuilder::add_call_with_all_variables ( const MultiFunction & fn,
Span< Variable * > param_variables )

◆ add_call_with_no_variables()

CallInstruction & blender::fn::multi_function::ProcedureBuilder::add_call_with_no_variables ( const MultiFunction & fn)

Definition at line 32 of file multi_function_procedure_builder.cc.

Referenced by add_call(), and add_call_with_all_variables().

◆ add_destruct() [1/2]

void blender::fn::multi_function::ProcedureBuilder::add_destruct ( Span< Variable * > variables)

Definition at line 17 of file multi_function_procedure_builder.cc.

References add_destruct().

◆ add_destruct() [2/2]

◆ add_input_parameter()

Variable & blender::fn::multi_function::ProcedureBuilder::add_input_parameter ( DataType data_type,
std::string name = "" )
inline

◆ add_loop()

◆ add_loop_break()

void blender::fn::multi_function::ProcedureBuilder::add_loop_break ( Loop & loop)

◆ add_loop_continue()

void blender::fn::multi_function::ProcedureBuilder::add_loop_continue ( Loop & loop)

◆ add_output_parameter()

◆ add_parameter() [1/2]

Variable & blender::fn::multi_function::ProcedureBuilder::add_parameter ( ParamType param_type,
std::string name = "" )
inline

◆ add_parameter() [2/2]

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

◆ add_return()

◆ add_single_input_parameter()

◆ add_single_mutable_parameter()

template<typename T>
Variable & blender::fn::multi_function::ProcedureBuilder::add_single_mutable_parameter ( std::string name = "")
inline

◆ set_cursor() [1/3]

void blender::fn::multi_function::ProcedureBuilder::set_cursor ( const InstructionCursor & cursor)
inline

◆ set_cursor() [2/3]

void blender::fn::multi_function::ProcedureBuilder::set_cursor ( Span< InstructionCursor > cursors)
inline

Definition at line 113 of file FN_multi_function_procedure_builder.hh.

◆ set_cursor() [3/3]

void blender::fn::multi_function::ProcedureBuilder::set_cursor ( Span< ProcedureBuilder * > builders)
inline

Definition at line 128 of file FN_multi_function_procedure_builder.hh.

References ProcedureBuilder().

◆ set_cursor_after_branch()

◆ set_cursor_after_loop()

void blender::fn::multi_function::ProcedureBuilder::set_cursor_after_loop ( Loop & loop)
inline

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