You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Avoid rebuilding graphs if we don't need to. hashes contain the structure of each node, the structure of any used data type and the structure of each used template. #rb sara.schvartzman #preflight https://horde.devtools.epicgames.com/job/63ee1c6fc9692d7c04423941 [CL 24280391 by helge mathee in ue5-main branch]
78 lines
2.5 KiB
C++
78 lines
2.5 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "RigVMCore/RigVMGraphFunctionDefinition.h"
|
|
#include "RigVMModel/RigVMGraph.h"
|
|
#include "RigVMModel/Nodes/RigVMLibraryNode.h"
|
|
#include "RigVMFunctionReferenceNode.generated.h"
|
|
|
|
class URigVMFunctionLibrary;
|
|
|
|
/**
|
|
* The Function Reference Node is a library node which references
|
|
* a library node from a separate function library graph.
|
|
*/
|
|
UCLASS(BlueprintType)
|
|
class RIGVMDEVELOPER_API URigVMFunctionReferenceNode : public URigVMLibraryNode
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
|
|
// URigVMNode interface
|
|
virtual FString GetNodeTitle() const override;
|
|
virtual FLinearColor GetNodeColor() const override;
|
|
virtual FText GetToolTipText() const override;
|
|
// end URigVMNode interface
|
|
|
|
// URigVMLibraryNode interface
|
|
virtual FString GetNodeCategory() const override;
|
|
virtual FString GetNodeKeywords() const override;
|
|
virtual TArray<FRigVMExternalVariable> GetExternalVariables() const override;
|
|
virtual const FRigVMTemplate* GetTemplate() const override { return nullptr; }
|
|
virtual FRigVMGraphFunctionIdentifier GetFunctionIdentifier() const override;
|
|
// end URigVMLibraryNode interface
|
|
|
|
bool IsReferencedFunctionHostLoaded() const;
|
|
bool IsReferencedNodeLoaded() const;
|
|
URigVMLibraryNode* LoadReferencedNode() const;
|
|
|
|
// Variable remapping
|
|
bool RequiresVariableRemapping() const;
|
|
bool IsFullyRemapped() const;
|
|
TArray<FRigVMExternalVariable> GetExternalVariables(bool bRemapped) const;
|
|
const TMap<FName, FName>& GetVariableMap() const { return VariableMap; }
|
|
FName GetOuterVariableName(const FName& InInnerVariableName) const;
|
|
// end Variable remapping
|
|
|
|
virtual uint32 GetStructureHash() const override;
|
|
const FRigVMGraphFunctionHeader& GetReferencedFunctionHeader() const { return ReferencedFunctionHeader; }
|
|
|
|
const FRigVMGraphFunctionData* GetReferencedFunctionData() const;
|
|
|
|
|
|
private:
|
|
|
|
virtual FText GetToolTipTextForPin(const URigVMPin* InPin) const override;
|
|
bool RequiresVariableRemappingInternal(TArray<FRigVMExternalVariable>& InnerVariables) const;
|
|
|
|
//void SetReferencedFunctionData(FRigVMGraphFunctionData* Data);
|
|
|
|
UPROPERTY(AssetRegistrySearchable)
|
|
FRigVMGraphFunctionHeader ReferencedFunctionHeader;
|
|
|
|
UPROPERTY(AssetRegistrySearchable, meta=(DeprecatedProperty=5.2))
|
|
TSoftObjectPtr<URigVMLibraryNode> ReferencedNodePtr_DEPRECATED;
|
|
|
|
UPROPERTY()
|
|
TMap<FName, FName> VariableMap;
|
|
|
|
friend class URigVMController;
|
|
friend class FRigVMParserAST;
|
|
friend class UControlRigBlueprint;
|
|
friend struct FRigVMClient;
|
|
friend struct EngineTestRigVMFramework;
|
|
};
|
|
|