// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CurveModel.h" #include "Misc/Attribute.h" namespace UE::MovieScene { struct FPiecewiseCurve; class FPiecewiseCurveModel : public FCurveModel { public: TAttribute CurveAttribute; TAttribute FrameRateAttribute; TAttribute CurveTransformAttribute; FPiecewiseCurveModel() { Color = FLinearColor(0.1f,0.1f,0.1f); } // FCurveModel const void* GetCurve() const override { return nullptr; } void Modify() override { } void GetKeys(double MinTime, double MaxTime, double MinValue, double MaxValue, TArray& OutKeyHandles) const override { } void AddKeys(TArrayView InPositions, TArrayView InAttributes, TArrayView>* OutKeyHandles) override { } void RemoveKeys(TArrayView InKeys, double InCurrentTime) override { } void GetKeyPositions(TArrayView InKeys, TArrayView OutKeyPositions) const override { } void SetKeyPositions(TArrayView InKeys, TArrayView InKeyPositions, EPropertyChangeType::Type ChangeType = EPropertyChangeType::Unspecified) override { } void GetKeyDrawInfo(ECurvePointType PointType, const FKeyHandle InKeyHandle, FKeyDrawInfo& OutDrawInfo) const override { } int32 GetNumKeys() const override { return 0; } void GetNeighboringKeys(const FKeyHandle InKeyHandle, TOptional& OutPreviousKeyHandle, TOptional& OutNextKeyHandle) const override { } bool IsReadOnly() const override { return true; } FTransform2d GetCurveTransform() const override { return CurveTransformAttribute.Get(); } bool Evaluate(double InTime, double& OutValue) const override; void DrawCurve(const FCurveEditor& CurveEditor, const FCurveEditorScreenSpace& ScreenSpace, TArray>& InterpolatingPoints) const override; void GetTimeRange(double& MinTime, double& MaxTime) const override; void GetValueRange(double& MinValue, double& MaxValue) const override; }; } // namespace UE::MovieScene