Blender
V4.3
source
blender
depsgraph
intern
depsgraph_relation.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2020 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
9
#pragma once
10
11
#include "
MEM_guardedalloc.h
"
12
13
namespace
blender::deg
{
14
15
struct
Node
;
16
17
/* Settings/Tags on Relationship.
18
* NOTE: Is a bitmask, allowing accumulation. */
19
enum
RelationFlag
{
20
/* "cyclic" link - when detecting cycles, this relationship was the one
21
* which triggers a cyclic relationship to exist in the graph. */
22
RELATION_FLAG_CYCLIC
= (1 << 0),
23
/* Update flush will not go through this relation. */
24
RELATION_FLAG_NO_FLUSH
= (1 << 1),
25
/* Only flush along the relation is update comes from a node which was
26
* affected by user input. */
27
RELATION_FLAG_FLUSH_USER_EDIT_ONLY
= (1 << 2),
28
/* The relation can not be killed by the cyclic dependencies solver. */
29
RELATION_FLAG_GODMODE
= (1 << 4),
30
/* Relation will check existence before being added. */
31
RELATION_CHECK_BEFORE_ADD
= (1 << 5),
32
/* The relation does not participate in visibility checks. */
33
RELATION_NO_VISIBILITY_CHANGE
= (1 << 6),
34
};
35
36
/* B depends on A (A -> B) */
37
struct
Relation
{
38
Relation
(
Node
*from,
Node
*to,
const
char
*description);
39
~Relation
();
40
41
void
unlink
();
42
43
/* the nodes in the relationship (since this is shared between the nodes) */
44
Node
*
from
;
/* A */
45
Node
*
to
;
/* B */
46
47
/* relationship attributes */
48
const
char
*
name
;
/* label for debugging */
49
int
flag
;
/* Bitmask of RelationFlag) */
50
51
MEM_CXX_CLASS_ALLOC_FUNCS
(
"Relation"
);
52
};
53
54
}
// namespace blender::deg
MEM_guardedalloc.h
Read Guarded memory(de)allocation.
blender::deg
Definition
DEG_depsgraph_light_linking.hh:18
blender::deg::RelationFlag
RelationFlag
Definition
depsgraph_relation.hh:19
blender::deg::RELATION_FLAG_NO_FLUSH
@ RELATION_FLAG_NO_FLUSH
Definition
depsgraph_relation.hh:24
blender::deg::RELATION_FLAG_FLUSH_USER_EDIT_ONLY
@ RELATION_FLAG_FLUSH_USER_EDIT_ONLY
Definition
depsgraph_relation.hh:27
blender::deg::RELATION_CHECK_BEFORE_ADD
@ RELATION_CHECK_BEFORE_ADD
Definition
depsgraph_relation.hh:31
blender::deg::RELATION_FLAG_GODMODE
@ RELATION_FLAG_GODMODE
Definition
depsgraph_relation.hh:29
blender::deg::RELATION_NO_VISIBILITY_CHANGE
@ RELATION_NO_VISIBILITY_CHANGE
Definition
depsgraph_relation.hh:33
blender::deg::RELATION_FLAG_CYCLIC
@ RELATION_FLAG_CYCLIC
Definition
depsgraph_relation.hh:22
Node
Definition
graph/node.h:90
blender::deg::Node
Definition
deg_node.hh:153
blender::deg::Relation
Definition
depsgraph_relation.hh:37
blender::deg::Relation::~Relation
~Relation()
Definition
depsgraph_relation.cc:38
blender::deg::Relation::to
Node * to
Definition
depsgraph_relation.hh:45
blender::deg::Relation::from
Node * from
Definition
depsgraph_relation.hh:44
blender::deg::Relation::MEM_CXX_CLASS_ALLOC_FUNCS
MEM_CXX_CLASS_ALLOC_FUNCS("Relation")
blender::deg::Relation::name
const char * name
Definition
depsgraph_relation.hh:48
blender::deg::Relation::flag
int flag
Definition
depsgraph_relation.hh:49
blender::deg::Relation::unlink
void unlink()
Definition
depsgraph_relation.cc:44
blender::deg::Relation::Relation
Relation(Node *from, Node *to, const char *description)
Definition
depsgraph_relation.cc:18
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0