Files
UnrealEngine/Engine/Source/Editor/MovieSceneTools/Private/Cache/MovieSceneUpdateCachedCurveData.h
2025-05-18 13:04:45 +08:00

49 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CurveDrawInfo.h"
#include "Templates/UnrealTemplate.h"
class FCurveEditor;
class FCurveModel;
struct FCurveEditorScreenSpace;
namespace UE::MovieSceneTools
{
/** A struct that holds relevant parameters to cache a curve */
template <typename ChannelType>
struct FMovieSceneUpdateCachedCurveData
: public FNoncopyable
{
private:
/** The type of channel value structs */
using ChannelValueType = typename ChannelType::ChannelValueType;
public:
FMovieSceneUpdateCachedCurveData(
const FCurveEditor& InCurveEditor,
const FCurveModel& InCurveModel,
const ChannelType& InChannel,
const FCurveEditorScreenSpace& InScreenSpace,
const FFrameRate& InTickResolution)
: CurveEditor(InCurveEditor)
, CurveModel(InCurveModel)
, Channel(InChannel)
, ScreenSpace(InScreenSpace)
, TickResolution(InTickResolution)
, Times(InChannel.GetTimes())
, Values(InChannel.GetValues())
{};
const FCurveEditor& CurveEditor;
const FCurveModel& CurveModel;
const ChannelType& Channel;
const FCurveEditorScreenSpace& ScreenSpace;
const FFrameRate& TickResolution;
const TArrayView<const FFrameNumber> Times;
const TArrayView<const ChannelValueType> Values;
};
}