88 lines
3.1 KiB
C++
88 lines
3.1 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
/*=============================================================================
|
|
EditorModeInterpolation : Editor mode for setting up interpolation sequences.
|
|
|
|
=============================================================================*/
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "InputCoreTypes.h"
|
|
#include "EdMode.h"
|
|
#include "EditorModeTools.h"
|
|
|
|
class FCanvas;
|
|
class FEditorViewportClient;
|
|
class FPrimitiveDrawInterface;
|
|
class FSceneView;
|
|
class FViewport;
|
|
class UInterpGroup;
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// FEdModeInterpEdit
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
class FEdModeInterpEdit: public FEdMode
|
|
{
|
|
public:
|
|
FEdModeInterpEdit();
|
|
~FEdModeInterpEdit();
|
|
|
|
virtual bool InputKey(FEditorViewportClient* ViewportClient, FViewport* Viewport, FKey Key, EInputEvent Event) override;
|
|
virtual void Enter() override;
|
|
virtual void Exit() override;
|
|
virtual void ActorMoveNotify() override;
|
|
virtual void ActorPropChangeNotify() override;
|
|
virtual bool AllowWidgetMove() override;
|
|
virtual void ActorSelectionChangeNotify() override;
|
|
virtual bool IsCompatibleWith(FEditorModeID OtherModeID) const override;
|
|
|
|
virtual void Render(const FSceneView* View, FViewport* Viewport, FPrimitiveDrawInterface* PDI) override;
|
|
virtual void DrawHUD(FEditorViewportClient* ViewportClient, FViewport* Viewport, const FSceneView* View, FCanvas* Canvas) override;
|
|
|
|
void CamMoveNotify(FEditorViewportClient* ViewportClient);
|
|
void InitInterpMode(class AMatineeActor* InMatineeActor);
|
|
UNREALED_API void UpdateSelectedActor();
|
|
|
|
class AMatineeActor* MatineeActor;
|
|
class IMatineeBase* InterpEd;
|
|
bool bLeavingMode;
|
|
|
|
private:
|
|
// Grouping is always disabled while in InterpEdit Mode, re-enable the saved value on exit
|
|
bool bGroupingActiveSaved;
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// FModeTool_InterpEdit
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
class FModeTool_InterpEdit: public FModeTool
|
|
{
|
|
public:
|
|
FModeTool_InterpEdit();
|
|
~FModeTool_InterpEdit();
|
|
|
|
virtual FString GetName() const override { return TEXT("Interp Edit"); }
|
|
|
|
/**
|
|
* @return true if the key was handled by this editor mode tool.
|
|
*/
|
|
virtual bool InputKey(FEditorViewportClient* ViewportClient, FViewport* Viewport, FKey Key, EInputEvent Event) override;
|
|
virtual bool InputAxis(FEditorViewportClient* InViewportClient, FViewport* Viewport, int32 ControllerId, FKey Key, float Delta, float DeltaTime) override;
|
|
virtual bool MouseMove(FEditorViewportClient* ViewportClient, FViewport* Viewport, int32 x, int32 y) override;
|
|
|
|
/**
|
|
* @return true if the delta was handled by this editor mode tool.
|
|
*/
|
|
virtual bool InputDelta(FEditorViewportClient* InViewportClient, FViewport* InViewport, FVector& InDrag, FRotator& InRot, FVector& InScale) override;
|
|
virtual void SelectNone() override;
|
|
|
|
bool bMovingHandle;
|
|
UInterpGroup* DragGroup;
|
|
int32 DragTrackIndex;
|
|
int32 DragKeyIndex;
|
|
bool bDragArriving;
|
|
};
|