Files
UnrealEngineUWP/Engine/Source/Editor/MovieSceneTools/Private/Channels/EventChannelCurveModel.h
lauren barnes c5aa0bcfce Curve editing tools now specify interactive vs. non-interactive changes
#jira UE-85567
#rb Matt.Hoffman
#rnx


#ROBOMERGE-SOURCE: CL 11074040 via CL 11074041
#ROBOMERGE-BOT: (v637-11041722)

[CL 11074042 by lauren barnes in Main branch]
2020-01-21 13:01:11 -05:00

53 lines
2.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreTypes.h"
#include "UObject/WeakObjectPtr.h"
#include "UObject/WeakObjectPtrTemplates.h"
#include "CurveModel.h"
#include "Channels/MovieSceneEventChannel.h"
#include "Channels/MovieSceneChannelHandle.h"
class UMovieSceneSection;
class ISequencer;
class FEventChannelCurveModel : public FCurveModel
{
public:
static ECurveEditorViewID EventView;
FEventChannelCurveModel(TMovieSceneChannelHandle<FMovieSceneEventChannel> InChannel, UMovieSceneSection* InOwningSection, TWeakPtr<ISequencer> InWeakSequencer);
virtual const void* GetCurve() const override;
virtual void Modify() override;
virtual void DrawCurve(const FCurveEditor& CurveEditor, const FCurveEditorScreenSpace& ScreenSpace, TArray<TTuple<double, double>>& InterpolatingPoints) const override;
virtual void GetKeys(const FCurveEditor& CurveEditor, double MinTime, double MaxTime, double MinValue, double MaxValue, TArray<FKeyHandle>& OutKeyHandles) const override;
virtual void GetKeyDrawInfo(ECurvePointType PointType, const FKeyHandle InKeyHandle, FKeyDrawInfo& OutDrawInfo) const override;
virtual void GetKeyPositions(TArrayView<const FKeyHandle> InKeys, TArrayView<FKeyPosition> OutKeyPositions) const override;
virtual void SetKeyPositions(TArrayView<const FKeyHandle> InKeys, TArrayView<const FKeyPosition> InKeyPositions, EPropertyChangeType::Type ChangeType) override;
virtual void GetKeyAttributes(TArrayView<const FKeyHandle> InKeys, TArrayView<FKeyAttributes> OutAttributes) const override;
virtual void SetKeyAttributes(TArrayView<const FKeyHandle> InKeys, TArrayView<const FKeyAttributes> InAttributes, EPropertyChangeType::Type ChangeType = EPropertyChangeType::Unspecified) override;
virtual void GetCurveAttributes(FCurveAttributes& OutCurveAttributes) const override;
virtual void SetCurveAttributes(const FCurveAttributes& InCurveAttributes) override;
virtual void GetTimeRange(double& MinTime, double& MaxTime) const override;
virtual void GetValueRange(double& MinValue, double& MaxValue) const override;
virtual int32 GetNumKeys() const override;
virtual void GetNeighboringKeys(const FKeyHandle InKeyHandle, TOptional<FKeyHandle>& OutPreviousKeyHandle, TOptional<FKeyHandle>& OutNextKeyHandle) const override {}
virtual bool Evaluate(double ProspectiveTime, double& OutValue) const override;
virtual void AddKeys(TArrayView<const FKeyPosition> InKeyPositions, TArrayView<const FKeyAttributes> InAttributes, TArrayView<TOptional<FKeyHandle>>* OutKeyHandles) override;
virtual void RemoveKeys(TArrayView<const FKeyHandle> InKeys) override;
virtual void CreateKeyProxies(TArrayView<const FKeyHandle> InKeyHandles, TArrayView<UObject*> OutObjects) override;
private:
TMovieSceneChannelHandle<FMovieSceneEventChannel> ChannelHandle;
TWeakObjectPtr<UMovieSceneSection> WeakSection;
TWeakPtr<ISequencer> WeakSequencer;
};