Blender V5.0
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
8
9#pragma once
10
11namespace blender::deg {
12
13struct Node;
14
15/* Settings/Tags on Relationship.
16 * NOTE: Is a bitmask, allowing accumulation. */
18 /* "cyclic" link - when detecting cycles, this relationship was the one
19 * which triggers a cyclic relationship to exist in the graph. */
21 /* Update flush will not go through this relation. */
23 /* Only flush along the relation is update comes from a node which was
24 * affected by user input. */
26 /* The relation can not be killed by the cyclic dependencies solver. */
28 /* Relation will check existence before being added. */
30 /* The relation does not participate in visibility checks. */
32};
33
34/* B depends on A (A -> B) */
35struct Relation {
36 Relation(Node *from, Node *to, const char *description) : from(from), to(to), name(description)
37 {
38 }
39
40 void unlink();
41
42 /* the nodes in the relationship (since this is shared between the nodes) */
43 Node *from; /* A */
44 Node *to; /* B */
45
46 /* relationship attributes */
47 const char *name; /* label for debugging */
48 int flag = 0; /* Bitmask of RelationFlag) */
49};
50
51} // namespace blender::deg
Relation(Node *from, Node *to, const char *description)