Files
UnrealEngine/Engine/Plugins/Experimental/AnimNext/Source/AnimNextUncookedOnly/Internal/Compilation/AnimNextRigVMAssetCompileContext.h
2025-05-18 13:04:45 +08:00

44 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Param/ParamType.h"
#include "StructUtils/PropertyBag.h"
#include "RigVMCore/RigVMGraphFunctionDefinition.h"
#include "Compilation/AnimNextProgrammaticFunctionHeader.h"
#include "Variables/AnimNextProgrammaticVariable.h"
class URigVMGraph;
/**
* Struct holding temporary compilation info for a single RigVM asset
*
* Note: Sub compile contexts give limited access. But feel free to expand
* the access of any particular sub context as needed.
*/
struct ANIMNEXTUNCOOKEDONLY_API FAnimNextRigVMAssetCompileContext
{
private:
friend class UAnimNextRigVMAssetEditorData;
friend struct FAnimNextGetFunctionHeaderCompileContext;
friend struct FAnimNextGetVariableCompileContext;
friend struct FAnimNextGetGraphCompileContext;
friend struct FAnimNextProcessGraphCompileContext;
protected:
/** Function Headers we should generate variables / graphs for */
TArray<FAnimNextProgrammaticFunctionHeader> FunctionHeaders;
/** Programmtic variables generated during this compile */
TArray<FAnimNextProgrammaticVariable> ProgrammaticVariables;
/** Programmtic graphs generated during this compile */
TArray<URigVMGraph*> ProgrammaticGraphs;
/** All graphs compiled by this RigVM Asset */
TArray<URigVMGraph*> AllGraphs;
};