Navigation
API > API/Plugins > API/Plugins/ConcertSyncCore > API/Plugins/ConcertSyncCore/HistoryEdition
References
| Module | ConcertSyncCore |
| Header | /Engine/Plugins/Developer/Concert/ConcertSync/ConcertSyncCore/Source/ConcertSyncCore/Public/HistoryEdition/ActivityDependencyGraph.h |
| Include | #include "HistoryEdition/ActivityDependencyGraph.h" |
Syntax
class FActivityDependencyGraph
Remarks
The graph models activities as nodes and dependencies to activities as edges. Activities can only affect each other from left-to-right: an earlier activity affects a later activity.
We say an activity A has a hard dependency to activity B when A cannot exist in an activity history without B. We say an activity A has a possible dependency to activity B when A may exist with B but we cannot rule out that B does not affect A. Example: You modify an actor twice each time triggering the construction script. See EDependencyType.
A node corresponds to an activity. A root node has depends on no other activity. An edge from a A to B means that B depends on A.
Dependencies do not necessarily need to be transitive: 1. Remove package Foo 2. Create package Foo 3. Edit Foo The existence of 3 can requires that either
- 1 and 2 both exist
- 1 and 2 are deleted (among other details, e.g. that the underlying assets must have equal classes)
Example: 1: Create level named Foo 2: Create level named Bar 3: Add actor named 'Cube' to level Foo
Add actor named 'Sphere" to level Foo 6: Edit 'Cube'. Resulting graph: 1 2 / \ 3 4 / 5
Example:
Create data asset A
Edit and save A (remember: transactions do not happen for all .uasset only for .umaps)
Create actor in level
Edit actor to reference data assets A
Edit actor whose construction script reads data from A Resulting Graph: 1 I 2 3 \ / 4 I 5
Functions
| Type | Name | Description | |
|---|---|---|---|
| FActivityNodeID | AddActivity
(
int64 ActivityIndex, |
Adds a node. Invalidates the results of GetNodeById. | |
| bool | AddDependency
(
FActivityNodeID From, |
Adds a dependency from an existing node to another existing node | |
| TOptional< FActivityNodeID > | FindNodeByActivity
(
int64 ActivityID |
Tries to find a corresponding node for an activity ID. | |
| void | ForEachNode
(
TFunctionRef< void(const FActivityNode&)> ConsumerFunc |
||
| const FActivityNode & | GetNodeById
(
FActivityNodeID ID |
Gets the node identified by the given ID, if it is valid. |