Files
UnrealEngineUWP/Engine/Source/Editor/AnimationEditor/Public/IAnimationEditor.h
Lina Halper 44c1bb3292 COPY from //Dev-Anim to //Dev-Main
#rb: none
#fyi: Laurent.Delayen, Thomas.Sarkanen

[CL 11088765 by Lina Halper in Main branch]
2020-01-22 17:58:55 -05:00

63 lines
2.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "WorkflowOrientedApp/WorkflowCentricApplication.h"
#include "IHasPersonaToolkit.h"
#include "Animation/SmartName.h"
class UAnimationAsset;
class IAnimationSequenceBrowser;
class UAnimSequenceBase;
struct FRichCurve;
class ITimeSliderController;
enum class ERawCurveTrackTypes : uint8;
class IAnimationEditor : public FWorkflowCentricApplication, public IHasPersonaToolkit
{
public:
/** Set the animation asset of the editor. */
virtual void SetAnimationAsset(UAnimationAsset* AnimAsset) = 0;
/** Get the asset browser we host */
virtual IAnimationSequenceBrowser* GetAssetBrowser() const = 0;
/** Support structure for EditCurves */
struct FCurveEditInfo
{
FCurveEditInfo(const FText& InCurveDisplayName, const FLinearColor& InCurveColor, const FSmartName& InName, ERawCurveTrackTypes InType, int32 InCurveIndex, FSimpleDelegate OnCurveModified = FSimpleDelegate())
: CurveDisplayName(InCurveDisplayName)
, CurveColor(InCurveColor)
, Name(InName)
, Type(InType)
, CurveIndex(InCurveIndex)
, OnCurveModified(OnCurveModified)
{}
FCurveEditInfo(const FSmartName& InName, ERawCurveTrackTypes InType, int32 InCurveIndex)
: Name(InName)
, Type(InType)
, CurveIndex(InCurveIndex)
{}
bool operator==(const FCurveEditInfo& InCurveEditInfo) const
{
return Name.UID == InCurveEditInfo.Name.UID && Type == InCurveEditInfo.Type && CurveIndex == InCurveEditInfo.CurveIndex;
}
FText CurveDisplayName;
FLinearColor CurveColor;
FSmartName Name;
ERawCurveTrackTypes Type;
int32 CurveIndex;
FSimpleDelegate OnCurveModified;
};
/** Edit the specified curves on the specified sequence */
virtual void EditCurves(UAnimSequenceBase* InAnimSequence, const TArray<FCurveEditInfo>& InCurveInfo, const TSharedPtr<ITimeSliderController>& InExternalTimeSliderController) = 0;
/** Stop editing the specified curves */
virtual void StopEditingCurves(const TArray<FCurveEditInfo>& InCurveInfo) = 0;
};