// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Tools/UEdMode.h" #include "Tools/Modes.h" #include "Engine/EngineBaseTypes.h" #include "Templates/SharedPointer.h" #include "LegacyEdMode.generated.h" class AActor; struct FRotator; class FEditorModeTools; class FEdMode; class UTexture2D; struct FVector; struct FBox; struct FRotator; class FEditorViewportClient; class FViewport; class UPrimitiveComponent; UCLASS() class UNREALED_API ULegacyEdModeWrapper final: public UEdMode { GENERATED_BODY() public: ULegacyEdModeWrapper(); bool CreateLegacyMode(FEditorModeID ModeID, FEditorModeTools& ModeManager); // Begin UEdMode overrides virtual void Initialize() override; virtual bool IsSelectionAllowed(AActor* InActor, bool bInSelected) const override; virtual bool Select(AActor* InActor, bool bInSelected) override; virtual bool ProcessEditDuplicate() override; virtual bool ProcessEditDelete() override; virtual bool ProcessEditCut() override; virtual bool ProcessEditCopy() override; virtual bool ProcessEditPaste() override; virtual EEditAction::Type GetActionEditDuplicate() override; virtual EEditAction::Type GetActionEditDelete() override; virtual EEditAction::Type GetActionEditCut() override; virtual EEditAction::Type GetActionEditCopy() override; virtual EEditAction::Type GetActionEditPaste() override; virtual bool IsSnapRotationEnabled() override; virtual bool SnapRotatorToGridOverride(FRotator& Rotation) override; virtual void ActorsDuplicatedNotify(TArray& PreDuplicateSelection, TArray& PostDuplicateSelection, bool bOffsetLocations) override; virtual void ActorMoveNotify() override; virtual void ActorSelectionChangeNotify() override; virtual void ActorPropChangeNotify() override; virtual void UpdateInternalData() override; virtual void MapChangeNotify() override; virtual void SelectNone() override; virtual bool GetPivotForOrbit(FVector& OutPivot) const override; virtual void PostUndo() override; virtual bool DisallowMouseDeltaTracking() const override; virtual bool GetCursor(EMouseCursor::Type& OutCursor) const override; virtual bool GetOverrideCursorVisibility(bool& bWantsOverride, bool& bHardwareCursorVisible, bool bSoftwareCursorVisible) const; virtual bool CanAutoSave() const override; virtual bool IsCompatibleWith(FEditorModeID OtherModeID) const override; virtual bool ComputeBoundingBoxForViewportFocus(AActor* Actor, UPrimitiveComponent* PrimitiveComponent, FBox& InOutBox) const override; virtual bool AllowsViewportDragTool() const override; virtual bool UsesToolkits() const override; virtual bool ProcessCapturedMouseMoves(FEditorViewportClient* InViewportClient, FViewport* InViewport, const TArrayView& CapturedMouseMoves) override; 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 InputDelta(FEditorViewportClient* InViewportClient, FViewport* InViewport, FVector& InDrag, FRotator& InRot, FVector& InScale) override; virtual bool StartTracking(FEditorViewportClient* InViewportClient, FViewport* InViewport) override; virtual bool EndTracking(FEditorViewportClient* InViewportClient, FViewport* InViewport) override; virtual bool HandleClick(FEditorViewportClient* InViewportClient, HHitProxy* HitProxy, const FViewportClick& Click) override; virtual void Tick(FEditorViewportClient* ViewportClient, float DeltaTime) override; virtual bool CapturedMouseMove(FEditorViewportClient* InViewportClient, FViewport* InViewport, int32 InMouseX, int32 InMouseY) override; virtual bool MouseEnter(FEditorViewportClient* ViewportClient, FViewport* Viewport, int32 x, int32 y) override; virtual bool MouseLeave(FEditorViewportClient* ViewportClient, FViewport* Viewport) override; virtual bool MouseMove(FEditorViewportClient* ViewportClient, FViewport* Viewport, int32 x, int32 y) override; virtual bool ReceivedFocus(FEditorViewportClient* ViewportClient, FViewport* Viewport) override; virtual bool LostFocus(FEditorViewportClient* ViewportClient, FViewport* Viewport) 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; virtual bool PreConvertMouseMovement(FEditorViewportClient* InViewportClient) override; virtual bool PostConvertMouseMovement(FEditorViewportClient* InViewportClient) override; virtual void DrawBrackets(FEditorViewportClient* ViewportClient, FViewport* Viewport, const FSceneView* View, FCanvas* Canvas) override; virtual bool ShouldDrawBrushWireframe(AActor* InActor) const override; virtual void Enter() override; virtual void Exit() override; virtual FEdMode* AsLegacyMode() override; virtual UTexture2D* GetVertexTexture() override; // End UEdMode overrides // Start FCommonDrawHelper overrides virtual void Draw(const FSceneView* View, FPrimitiveDrawInterface* PDI) override; // End FCommonDrawHelper overrides private: TSharedPtr LegacyEditorMode; };