Blender V4.3
FN_multi_function_builder.hh File Reference

Go to the source code of this file.

Classes

struct  blender::fn::multi_function::build::exec_presets::Simple
 
struct  blender::fn::multi_function::build::exec_presets::Materialized
 
struct  blender::fn::multi_function::build::exec_presets::AllSpanOrSingle
 
struct  blender::fn::multi_function::build::exec_presets::SomeSpanOrSingle< Indices >
 
struct  blender::fn::multi_function::build::detail::MaterializeArgInfo< ParamTag >
 
class  blender::fn::multi_function::build::detail::CustomMF< CallFn, ParamTags >
 
class  blender::fn::multi_function::CustomMF_GenericConstant
 
class  blender::fn::multi_function::CustomMF_GenericConstantArray
 
class  blender::fn::multi_function::CustomMF_Constant< T >
 
class  blender::fn::multi_function::CustomMF_DefaultOutput
 
class  blender::fn::multi_function::CustomMF_GenericCopy
 

Namespaces

namespace  blender
 
namespace  blender::fn
 
namespace  blender::fn::multi_function
 
namespace  blender::fn::multi_function::build
 
namespace  blender::fn::multi_function::build::exec_presets
 
namespace  blender::fn::multi_function::build::detail
 

Enumerations

enum class  blender::fn::multi_function::build::exec_presets::FallbackMode { blender::fn::multi_function::build::exec_presets::Simple , blender::fn::multi_function::build::exec_presets::Materialized }
 
enum class  blender::fn::multi_function::build::detail::MaterializeArgMode { blender::fn::multi_function::build::detail::Unknown , blender::fn::multi_function::build::detail::Single , blender::fn::multi_function::build::detail::Span , blender::fn::multi_function::build::detail::Materialized }
 

Functions

template<typename MaskT , typename... Args, typename... ParamTags, size_t... I, typename ElementFn >
void blender::fn::multi_function::build::detail::execute_array (TypeSequence< ParamTags... >, std::index_sequence< I... >, ElementFn element_fn, MaskT mask, Args &&__restrict... args)
 
template<typename... ParamTags, typename ElementFn , typename... Chunks>
void blender::fn::multi_function::build::detail::execute_materialized_impl (TypeSequence< ParamTags... >, const ElementFn element_fn, const int64_t size, Chunks &&__restrict... chunks)
 
template<typename... ParamTags, size_t... I, typename ElementFn , typename... LoadedParams>
void blender::fn::multi_function::build::detail::execute_materialized (TypeSequence< ParamTags... >, std::index_sequence< I... >, const ElementFn element_fn, const IndexMaskSegment mask, const std::tuple< LoadedParams... > &loaded_params)
 
template<typename ElementFn , typename ExecPreset , typename... ParamTags, size_t... I>
void blender::fn::multi_function::build::detail::execute_element_fn_as_multi_function (const ElementFn element_fn, const ExecPreset exec_preset, const IndexMask &mask, Params params, TypeSequence< ParamTags... >, std::index_sequence< I... >)
 
template<typename ElementFn , typename ExecPreset , typename... ParamTags>
auto blender::fn::multi_function::build::detail::build_multi_function_call_from_element_fn (const ElementFn element_fn, const ExecPreset exec_preset, TypeSequence< ParamTags... >)
 
template<typename Out , typename... In, typename ElementFn , typename ExecPreset >
auto blender::fn::multi_function::build::detail::build_multi_function_with_n_inputs_one_output (const char *name, const ElementFn element_fn, const ExecPreset exec_preset, TypeSequence< In... >)
 
template<typename In1 , typename Out1 , typename ElementFn , typename ExecPreset = exec_presets::Materialized>
auto blender::fn::multi_function::build::SI1_SO (const char *name, const ElementFn element_fn, const ExecPreset exec_preset=exec_presets::Materialized())
 
template<typename In1 , typename In2 , typename Out1 , typename ElementFn , typename ExecPreset = exec_presets::Materialized>
auto blender::fn::multi_function::build::SI2_SO (const char *name, const ElementFn element_fn, const ExecPreset exec_preset=exec_presets::Materialized())
 
template<typename In1 , typename In2 , typename In3 , typename Out1 , typename ElementFn , typename ExecPreset = exec_presets::Materialized>
auto blender::fn::multi_function::build::SI3_SO (const char *name, const ElementFn element_fn, const ExecPreset exec_preset=exec_presets::Materialized())
 
template<typename In1 , typename In2 , typename In3 , typename In4 , typename Out1 , typename ElementFn , typename ExecPreset = exec_presets::Materialized>
auto blender::fn::multi_function::build::SI4_SO (const char *name, const ElementFn element_fn, const ExecPreset exec_preset=exec_presets::Materialized())
 
template<typename In1 , typename In2 , typename In3 , typename In4 , typename In5 , typename Out1 , typename ElementFn , typename ExecPreset = exec_presets::Materialized>
auto blender::fn::multi_function::build::SI5_SO (const char *name, const ElementFn element_fn, const ExecPreset exec_preset=exec_presets::Materialized())
 
template<typename In1 , typename In2 , typename In3 , typename In4 , typename In5 , typename In6 , typename Out1 , typename ElementFn , typename ExecPreset = exec_presets::Materialized>
auto blender::fn::multi_function::build::SI6_SO (const char *name, const ElementFn element_fn, const ExecPreset exec_preset=exec_presets::Materialized())
 
template<typename Mut1 , typename ElementFn , typename ExecPreset = exec_presets::AllSpanOrSingle>
auto blender::fn::multi_function::build::SM (const char *name, const ElementFn element_fn, const ExecPreset exec_preset=exec_presets::AllSpanOrSingle())
 

Detailed Description

This file contains several utilities to create multi-functions with less redundant code.

Definition in file FN_multi_function_builder.hh.