// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Channels/ChannelCurveModel.h" #include "Channels/MovieSceneChannelHandle.h" #include "Channels/MovieSceneIntegerChannel.h" #include "Containers/ArrayView.h" #include "CoreTypes.h" #include "IBufferedCurveModel.h" #include "MovieSceneSection.h" #include "Templates/SharedPointer.h" #include "Templates/UniquePtr.h" #include "UObject/WeakObjectPtr.h" #include "UObject/WeakObjectPtrTemplates.h" class IBufferedCurveModel; class ISequencer; class UMovieSceneSection; class UObject; struct FKeyHandle; struct FMovieSceneIntegerChannel; template struct TMovieSceneChannelHandle; class FIntegerChannelCurveModel : public FChannelCurveModel { public: FIntegerChannelCurveModel(TMovieSceneChannelHandle InChannel, UMovieSceneSection* InOwningSection, TWeakPtr InWeakSequencer); // FCurveModel virtual void DrawCurve(const FCurveEditor& CurveEditor, const FCurveEditorScreenSpace& ScreenSpace, TArray>& InterpolatingPoints) const override; virtual void CreateKeyProxies(TArrayView InKeyHandles, TArrayView OutObjects) override; virtual TUniquePtr CreateBufferedCurveCopy() const override; virtual void GetCurveAttributes(FCurveAttributes& OutAttributes) const override; virtual void SetCurveAttributes(const FCurveAttributes& InAttributes) override; protected: // FChannelCurveModel virtual double GetKeyValue(TArrayView Values, int32 Index) const override; virtual void SetKeyValue(int32 Index, double KeyValue) const override; };