Blender
V3.3
source
blender
functions
FN_multi_function_context.hh
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later */
2
3
#pragma once
4
15
#include "
BLI_utildefines.h
"
16
17
#include "
BLI_map.hh
"
18
19
namespace
blender::fn
{
20
21
class
MFContext;
22
23
class
MFContextBuilder
{
24
private
:
25
Map<std::string, const void *>
global_contexts_;
26
27
friend
MFContext
;
28
29
public
:
30
template
<
typename
T>
void
add_global_context
(std::string name,
const
T
*
context
)
31
{
32
global_contexts_.
add_new
(std::move(name),
static_cast<
const
void
*
>
(
context
));
33
}
34
};
35
36
class
MFContext
{
37
private
:
38
MFContextBuilder
&builder_;
39
40
public
:
41
MFContext
(
MFContextBuilder
&builder) : builder_(builder)
42
{
43
}
44
45
template
<
typename
T>
const
T
*
get_global_context
(
StringRef
name)
const
46
{
47
const
void
*
context
= builder_.global_contexts_.
lookup_default_as
(name,
nullptr
);
48
/* TODO: Implement type checking. */
49
return
static_cast<
const
T
*
>
(
context
);
50
}
51
};
52
53
}
// namespace blender::fn
BLI_map.hh
BLI_utildefines.h
blender::Map< std::string, const void * >
blender::Map::add_new
void add_new(const Key &key, const Value &value)
Definition:
BLI_map.hh:220
blender::Map::lookup_default_as
Value lookup_default_as(const ForwardKey &key, ForwardValue &&...default_value) const
Definition:
BLI_map.hh:515
blender::StringRef
Definition:
BLI_string_ref.hh:123
blender::fn::MFContextBuilder
Definition:
FN_multi_function_context.hh:23
blender::fn::MFContextBuilder::add_global_context
void add_global_context(std::string name, const T *context)
Definition:
FN_multi_function_context.hh:30
blender::fn::MFContext
Definition:
FN_multi_function_context.hh:36
blender::fn::MFContext::MFContext
MFContext(MFContextBuilder &builder)
Definition:
FN_multi_function_context.hh:41
blender::fn::MFContext::get_global_context
const T * get_global_context(StringRef name) const
Definition:
FN_multi_function_context.hh:45
T
#define T
Definition:
mball_tessellate.c:264
blender::compositor::context
cl_context context
Definition:
COM_WorkScheduler.cc:73
blender::fn
Definition:
FN_field.hh:43
Generated on Sat Jul 27 2024 14:57:55 for Blender by
doxygen
1.9.1