Navigation
API > API/Runtime > API/Runtime/InterchangeCore
The Interchange UInterchangeBaseNode graph is a format used to feed factories and writers when they import, reimport, and export an asset or scene.
This container holds a flat list of all nodes that have been translated from the source data. Translators fill this container, and the import/export managers read it to execute the import/export process.
| Name | UInterchangeBaseNodeContainer |
| Type | class |
| Header File | /Engine/Source/Runtime/Interchange/Core/Public/Nodes/InterchangeBaseNodeContainer.h |
| Include Path | #include "Nodes/InterchangeBaseNodeContainer.h" |
Syntax
UCLASS (BlueprintType, MinimalAPI)
class UInterchangeBaseNodeContainer : public UObject
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UInterchangeBaseNodeContainer
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UInterchangeBaseNodeContainer() |
Nodes/InterchangeBaseNodeContainer.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| ChildrenCache | TMap< FString, TArray< FString > > | Nodes/InterchangeBaseNodeContainer.h | ||
| Nodes | TMap< FString, TObjectPtr< UInterchangeBaseNode > > | Flat List of the nodes. Since the nodes are variable size, we store a pointer. | Nodes/InterchangeBaseNodeContainer.h |
|
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FString AddNode
(
UInterchangeBaseNode* Node |
Add a node to the container. The node is added into a TMap. | Nodes/InterchangeBaseNodeContainer.h |
|
bool BreakableIterateNodeChildren
(
const FString& NodeUniqueID, |
Recursively traverse the hierarchy starting with the specified node unique ID. | Nodes/InterchangeBaseNodeContainer.h | |
void BreakableIterateNodes
(
TFunctionRef< bool(const FString&, UInterchangeBaseNode*)> IterationLambda |
Unordered iteration of the all nodes, but can be stopped early by returning true. | Nodes/InterchangeBaseNodeContainer.h | |
void BreakableIterateNodesOfType
(
TFunctionRef< bool(const FString&, T*)> IterationLambda |
Nodes/InterchangeBaseNodeContainer.h | ||
bool ClearNodeParentUid
(
const FString& NodeUniqueID |
Remove the node's ParentUid, making it into a top-level node | Nodes/InterchangeBaseNodeContainer.h |
|
void ComputeChildrenCache() |
Fill the cache of children UIDs to optimize the GetNodeChildrenUids call. | Nodes/InterchangeBaseNodeContainer.h |
|
| Nodes/InterchangeBaseNodeContainer.h | |||
| Gets the children cache. | Nodes/InterchangeBaseNodeContainer.h | ||
UInterchangeFactoryBaseNode * GetFactoryNode
(
const FString& NodeUniqueID |
Get a factory node pointer. | Nodes/InterchangeBaseNodeContainer.h |
|
| Checks if ParentNodeUID is an ancestor. | Nodes/InterchangeBaseNodeContainer.h |
|
|
const UInterchangeBaseNode * GetNode
(
const FString& NodeUniqueID |
Get a node pointer. Once added to the container, nodes are considered const. | Nodes/InterchangeBaseNodeContainer.h |
|
UInterchangeBaseNode * GetNodeChildren
(
const FString& NodeUniqueID, |
Get the nth const child of the node | Nodes/InterchangeBaseNodeContainer.h |
|
const UInterchangeBaseNode * GetNodeChildren
(
const FString& NodeUniqueID, |
Get the nth const child of the node. Const version. | Nodes/InterchangeBaseNodeContainer.h | |
int32 GetNodeChildrenCount
(
const FString& NodeUniqueID |
Get the number of children the node has. | Nodes/InterchangeBaseNodeContainer.h |
|
| Get the UIDs of all the node's children. | Nodes/InterchangeBaseNodeContainer.h |
|
|
| Return all nodes that are of the ClassNode type. | Nodes/InterchangeBaseNodeContainer.h |
|
|
| Nodes/InterchangeBaseNodeContainer.h | |||
| Return all nodes that do not have any parent. | Nodes/InterchangeBaseNodeContainer.h |
|
|
bool IsNodeUidValid
(
const FString& NodeUniqueID |
Return true if the node unique ID exists in the container. | Nodes/InterchangeBaseNodeContainer.h |
|
void IterateNodeChildren
(
const FString& NodeUniqueID, |
Recursively traverse the hierarchy starting with the specified node unique ID. | Nodes/InterchangeBaseNodeContainer.h | |
void IterateNodes
(
TFunctionRef< void(const FString&, UInterchangeBaseNode*)> IterationLambda |
Unordered iteration of the all nodes. | Nodes/InterchangeBaseNodeContainer.h | |
void IterateNodesOfType
(
TFunctionRef< void(const FString&, T*)> IterationLambda |
Nodes/InterchangeBaseNodeContainer.h | ||
void LoadFromFile
(
const FString& Filename |
Serialize the node container from the specified file. | Nodes/InterchangeBaseNodeContainer.h |
|
void RemoveNode
(
const FString& NodeUniqueID |
Removes node from Nodes map with the given NodeUniqueID. | Nodes/InterchangeBaseNodeContainer.h |
|
void ReplaceNode
(
const FString& NodeUniqueID, |
Nodes/InterchangeBaseNodeContainer.h |
|
|
void Reset() |
Empty the container. | Nodes/InterchangeBaseNodeContainer.h |
|
void ResetChildrenCache() |
Reset the cache of children UIDs. | Nodes/InterchangeBaseNodeContainer.h |
|
void SaveToFile
(
const FString& Filename |
Serialize the node container into the specified file. | Nodes/InterchangeBaseNodeContainer.h |
|
void SerializeNodeContainerData
(
FArchive& Ar |
This function serializes the node container and all node sub-objects it points . | Nodes/InterchangeBaseNodeContainer.h | |
| Sets the children cache from an incoming data set. | Nodes/InterchangeBaseNodeContainer.h | ||
void SetNamespace
(
const FString& Namespace, |
Set a namespace to all node of the target class in this container. | Nodes/InterchangeBaseNodeContainer.h |
|
bool SetNodeDesiredChildIndex
(
const FString& NodeUniqueID, |
Set the desired child index of the node. | Nodes/InterchangeBaseNodeContainer.h |
|
| Set the ParentUid of the node. | Nodes/InterchangeBaseNodeContainer.h |
|
|
void SetupAndReplaceFactoryNode
(
UInterchangeFactoryBaseNode* Node, |
Nodes/InterchangeBaseNodeContainer.h | ||
void SetupNode
(
UInterchangeBaseNode* Node, |
Nodes/InterchangeBaseNodeContainer.h |