Blender V4.3
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
13namespace blender::deg {
14
15struct Node;
16
17/* Settings/Tags on Relationship.
18 * NOTE: Is a bitmask, allowing accumulation. */
20 /* "cyclic" link - when detecting cycles, this relationship was the one
21 * which triggers a cyclic relationship to exist in the graph. */
23 /* Update flush will not go through this relation. */
25 /* Only flush along the relation is update comes from a node which was
26 * affected by user input. */
28 /* The relation can not be killed by the cyclic dependencies solver. */
30 /* Relation will check existence before being added. */
32 /* The relation does not participate in visibility checks. */
34};
35
36/* B depends on A (A -> B) */
37struct 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
52};
53
54} // namespace blender::deg
Read Guarded memory(de)allocation.
MEM_CXX_CLASS_ALLOC_FUNCS("Relation")
Relation(Node *from, Node *to, const char *description)