Blender
V5.0
source
blender
nodes
NOD_geometry_nodes_dependencies.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2024 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#pragma once
6
7
#include "
BLI_map.hh
"
8
#include "
BLI_struct_equality_utils.hh
"
9
10
struct
ID
;
11
struct
Object
;
12
struct
bNodeTree
;
13
14
namespace
blender::nodes
{
15
19
struct
GeometryNodesEvalDependencies
{
24
struct
ObjectDependencyInfo
{
25
bool
transform
=
false
;
26
bool
geometry
=
false
;
27
bool
camera_parameters
=
false
;
28
29
BLI_STRUCT_EQUALITY_OPERATORS_3
(
ObjectDependencyInfo
,
transform
,
geometry
,
camera_parameters
);
30
};
31
static
constexpr
ObjectDependencyInfo
all_object_deps
{
true
,
true
,
true
};
32
38
Map<uint32_t, ID *>
ids
;
39
41
Map<uint32_t, ObjectDependencyInfo>
objects_info
;
42
43
bool
needs_own_transform
=
false
;
44
bool
needs_active_camera
=
false
;
45
bool
needs_scene_render_params
=
false
;
46
bool
time_dependent
=
false
;
47
53
void
add_generic_id
(
ID
*
id
);
54
59
void
add_generic_id_full
(
ID
*
id
);
60
65
void
add_object
(
Object
*
object
,
const
ObjectDependencyInfo
&object_deps =
all_object_deps
);
66
70
void
merge
(
const
GeometryNodesEvalDependencies
&other);
71
72
BLI_STRUCT_EQUALITY_OPERATORS_6
(
GeometryNodesEvalDependencies
,
73
ids
,
74
objects_info
,
75
needs_own_transform
,
76
needs_active_camera
,
77
needs_scene_render_params
,
78
time_dependent
);
79
};
80
86
GeometryNodesEvalDependencies
gather_geometry_nodes_eval_dependencies_recursive
(
87
const
bNodeTree
&ntree);
91
GeometryNodesEvalDependencies
gather_geometry_nodes_eval_dependencies_with_cache
(
92
const
bNodeTree
&ntree);
93
94
}
// namespace blender::nodes
BLI_map.hh
BLI_struct_equality_utils.hh
blender::Map
Definition
BLI_map.hh:129
blender::nodes
Definition
BKE_compute_contexts.hh:29
blender::nodes::gather_geometry_nodes_eval_dependencies_with_cache
GeometryNodesEvalDependencies gather_geometry_nodes_eval_dependencies_with_cache(const bNodeTree &ntree)
Definition
geometry_nodes_dependencies.cc:212
blender::nodes::gather_geometry_nodes_eval_dependencies_recursive
GeometryNodesEvalDependencies gather_geometry_nodes_eval_dependencies_recursive(const bNodeTree &ntree)
Definition
geometry_nodes_dependencies.cc:236
ID
Definition
DNA_ID.h:414
Object
Definition
DNA_object_types.h:191
bNodeTree
Definition
DNA_node_types.h:759
blender::nodes::GeometryNodesEvalDependencies::ObjectDependencyInfo
Definition
NOD_geometry_nodes_dependencies.hh:24
blender::nodes::GeometryNodesEvalDependencies::ObjectDependencyInfo::BLI_STRUCT_EQUALITY_OPERATORS_3
BLI_STRUCT_EQUALITY_OPERATORS_3(ObjectDependencyInfo, transform, geometry, camera_parameters)
blender::nodes::GeometryNodesEvalDependencies::ObjectDependencyInfo::transform
bool transform
Definition
NOD_geometry_nodes_dependencies.hh:25
blender::nodes::GeometryNodesEvalDependencies::ObjectDependencyInfo::camera_parameters
bool camera_parameters
Definition
NOD_geometry_nodes_dependencies.hh:27
blender::nodes::GeometryNodesEvalDependencies::ObjectDependencyInfo::geometry
bool geometry
Definition
NOD_geometry_nodes_dependencies.hh:26
blender::nodes::GeometryNodesEvalDependencies
Definition
NOD_geometry_nodes_dependencies.hh:19
blender::nodes::GeometryNodesEvalDependencies::BLI_STRUCT_EQUALITY_OPERATORS_6
BLI_STRUCT_EQUALITY_OPERATORS_6(GeometryNodesEvalDependencies, ids, objects_info, needs_own_transform, needs_active_camera, needs_scene_render_params, time_dependent)
blender::nodes::GeometryNodesEvalDependencies::time_dependent
bool time_dependent
Definition
NOD_geometry_nodes_dependencies.hh:46
blender::nodes::GeometryNodesEvalDependencies::objects_info
Map< uint32_t, ObjectDependencyInfo > objects_info
Definition
NOD_geometry_nodes_dependencies.hh:41
blender::nodes::GeometryNodesEvalDependencies::add_generic_id_full
void add_generic_id_full(ID *id)
Definition
geometry_nodes_dependencies.cc:23
blender::nodes::GeometryNodesEvalDependencies::needs_scene_render_params
bool needs_scene_render_params
Definition
NOD_geometry_nodes_dependencies.hh:45
blender::nodes::GeometryNodesEvalDependencies::all_object_deps
static constexpr ObjectDependencyInfo all_object_deps
Definition
NOD_geometry_nodes_dependencies.hh:31
blender::nodes::GeometryNodesEvalDependencies::add_object
void add_object(Object *object, const ObjectDependencyInfo &object_deps=all_object_deps)
Definition
geometry_nodes_dependencies.cc:36
blender::nodes::GeometryNodesEvalDependencies::ids
Map< uint32_t, ID * > ids
Definition
NOD_geometry_nodes_dependencies.hh:38
blender::nodes::GeometryNodesEvalDependencies::needs_active_camera
bool needs_active_camera
Definition
NOD_geometry_nodes_dependencies.hh:44
blender::nodes::GeometryNodesEvalDependencies::needs_own_transform
bool needs_own_transform
Definition
NOD_geometry_nodes_dependencies.hh:43
blender::nodes::GeometryNodesEvalDependencies::add_generic_id
void add_generic_id(ID *id)
Definition
geometry_nodes_dependencies.cc:15
blender::nodes::GeometryNodesEvalDependencies::merge
void merge(const GeometryNodesEvalDependencies &other)
Definition
geometry_nodes_dependencies.cc:50
Generated on
for Blender by
doxygen
1.16.1