Files
UnrealEngineUWP/Engine/Source/Editor/CurveTableEditor/Private/RealCurveModel.h
Louise Rasmussen ca23b08c0a CurveTableEditor - work in progress
#JIRA UETOOL-3544
#rb Andrew.Rodham, Lauren.Barnes
#preflight 60afc351241ce500010b1461

[CL 16487773 by Louise Rasmussen in ue5-main branch]
2021-05-27 13:24:53 -04:00

51 lines
2.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreTypes.h"
#include "CurveModel.h"
struct FRealCurve;
/*
* RealCurveModel implements the FCurveModel interface for FRealCurves which allows
* users to edit FRealCurves in the CurveEditor
*/
class FRealCurveModel : public FCurveModel
{
public:
static ECurveEditorViewID EventView;
FRealCurveModel(FRealCurve* InRealCurve, UObject* InOwner);
// FCurveModel interface
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 AddKeys(TArrayView<const FKeyPosition> InKeyPositions, TArrayView<const FKeyAttributes> InAttributes, TArrayView<TOptional<FKeyHandle>>* OutKeyHandles) override;
virtual void RemoveKeys(TArrayView<const FKeyHandle> InKeys) 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 GetKeyDrawInfo(ECurvePointType PointType, const FKeyHandle InKeyHandle, FKeyDrawInfo& OutDrawInfo) const override;
virtual void GetKeyAttributes(TArrayView<const FKeyHandle> InKeys, TArrayView<FKeyAttributes> OutAttributes) const 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 bool IsValid() const { return RealCurve != nullptr; }
private:
TWeakObjectPtr<> WeakOwner;
FRealCurve* RealCurve;
};