// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "UObject/Class.h" struct FAnimNode_Base; // Interface passed to per-node OverrideAssets override point class IAnimBlueprintNodeOverrideAssetsContext { public: virtual ~IAnimBlueprintNodeOverrideAssetsContext() = default; // Get the anim node to override template AnimNodeType& GetAnimNode() const { check(GetAnimNodeTypeImpl()->IsChildOf(AnimNodeType::StaticStruct())); return static_cast(*GetAnimNodeImpl()); } // Get all of the assets to override with TArrayView GetAssets() const { return GetAssetsImpl(); } protected: // Get the anim node to override virtual FAnimNode_Base* GetAnimNodeImpl() const = 0; // Get the type of the anim node to override virtual UScriptStruct* GetAnimNodeTypeImpl() const = 0; // Get all of the assets to override with virtual TArrayView GetAssetsImpl() const = 0; };