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

46 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "IMovieSceneRetimingInterface.h"
#include "MovieScene.h"
namespace UE::MovieScene
{
FFrameNumber IRetimingInterface::RemapTime(FFrameNumber InTime) const
{
return RemapTime(FFrameTime(InTime)).RoundToFrame();
}
FFrameRateRetiming::FFrameRateRetiming(FFrameRate InSourceRate, FFrameRate InDestinationRate)
: SourceRate(InSourceRate)
, DestinationRate(InDestinationRate)
{}
double FFrameRateRetiming::GetScale() const
{
return DestinationRate.AsInterval() / SourceRate.AsInterval();
}
FFrameTime FFrameRateRetiming::RemapTime(FFrameTime InTime) const
{
return ConvertFrameTime(InTime, SourceRate, DestinationRate);
}
TUniquePtr<IRetimingInterface> FFrameRateRetiming::RecurseInto(UMovieScene* InMovieScene) const
{
return MakeUnique<FFrameRateRetiming>(InMovieScene->GetTickResolution(), DestinationRate);
}
void FFrameRateRetiming::Begin(UMovieScene* InMovieScene) const
{
}
void FFrameRateRetiming::End(UMovieScene* InMovieScene) const
{
InMovieScene->SetTickResolutionDirectly(DestinationRate);
}
} // namespace UE::MovieScene