Blender  V3.3
Classes | Namespaces | Enumerations | Functions
FN_multi_function_builder.hh File Reference
#include <functional>
#include "BLI_devirtualize_parameters.hh"
#include "FN_multi_function.hh"

Go to the source code of this file.

Classes

struct  blender::fn::CustomMF_presets::Simple
 
struct  blender::fn::CustomMF_presets::Materialized
 
struct  blender::fn::CustomMF_presets::AllSpanOrSingle
 
struct  blender::fn::CustomMF_presets::SomeSpanOrSingle< Indices >
 
struct  blender::fn::materialize_detail::ArgInfo< ParamTag >
 
class  blender::fn::CustomMF< ParamTags >
 
class  blender::fn::CustomMF_SI_SO< In1, Out1 >
 
class  blender::fn::CustomMF_SI_SI_SO< In1, In2, Out1 >
 
class  blender::fn::CustomMF_SI_SI_SI_SO< In1, In2, In3, Out1 >
 
class  blender::fn::CustomMF_SI_SI_SI_SI_SO< In1, In2, In3, In4, Out1 >
 
class  blender::fn::CustomMF_SM< Mut1 >
 
class  blender::fn::CustomMF_GenericConstant
 
class  blender::fn::CustomMF_GenericConstantArray
 
class  blender::fn::CustomMF_Constant< T >
 
class  blender::fn::CustomMF_DefaultOutput
 
class  blender::fn::CustomMF_GenericCopy
 

Namespaces

 blender
 
 blender::fn
 
 blender::fn::CustomMF_presets
 
 blender::fn::detail
 
 blender::fn::materialize_detail
 

Enumerations

enum class  blender::fn::CustomMF_presets::FallbackMode { blender::fn::CustomMF_presets::Simple , blender::fn::CustomMF_presets::Materialized }
 
enum class  blender::fn::materialize_detail::ArgMode { blender::fn::materialize_detail::Unknown , blender::fn::materialize_detail::Single , blender::fn::materialize_detail::Span , blender::fn::materialize_detail::Materialized }
 

Functions

template<typename MaskT , typename... Args, typename... ParamTags, size_t... I, typename ElementFn >
void blender::fn::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::materialize_detail::execute_materialized_impl (TypeSequence< ParamTags... >, const ElementFn element_fn, const IndexRange in_mask, const IndexMask out_mask, Chunks &&__restrict... chunks)
 
template<typename... ParamTags, size_t... I, typename ElementFn , typename... Args>
void blender::fn::materialize_detail::execute_materialized (TypeSequence< ParamTags... >, std::index_sequence< I... >, const ElementFn element_fn, const IndexMask mask, Args &&...args)
 

Detailed Description

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

Definition in file FN_multi_function_builder.hh.