Files
UnrealEngine/Engine/Source/Runtime/MovieScene/Public/IMovieSceneRetimingInterface.h
2025-05-18 13:04:45 +08:00

53 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreTypes.h"
#include "Misc/FrameRate.h"
#define UE_API MOVIESCENE_API
struct FFrameNumber;
struct FFrameTime;
class UMovieScene;
namespace UE::MovieScene
{
struct IRetimingInterface
{
virtual ~IRetimingInterface() {}
MOVIESCENE_API FFrameNumber RemapTime(FFrameNumber InTime) const;
virtual double GetScale() const = 0;
virtual FFrameTime RemapTime(FFrameTime InTime) const = 0;
virtual TUniquePtr<IRetimingInterface> RecurseInto(UMovieScene* InMovieScene) const = 0;
virtual void Begin(UMovieScene* InMovieScene) const = 0;
virtual void End(UMovieScene* InMovieScene) const = 0;
};
struct FFrameRateRetiming : IRetimingInterface
{
FFrameRate SourceRate;
FFrameRate DestinationRate;
UE_API FFrameRateRetiming(FFrameRate InSourceRate, FFrameRate InDestinationRate);
UE_API virtual double GetScale() const override;
UE_API virtual FFrameTime RemapTime(FFrameTime InTime) const override;
UE_API virtual TUniquePtr<IRetimingInterface> RecurseInto(UMovieScene* InMovieScene) const override;
UE_API virtual void Begin(UMovieScene* InMovieScene) const override;
UE_API virtual void End(UMovieScene* InMovieScene) const override;
};
} // namespace UE::MovieScene
#undef UE_API