EM_Task/UnrealEd/Private/Tools/LegacyEdMode.h

102 lines
5.4 KiB
C
Raw Normal View History

2026-02-13 16:18:33 +08:00
// 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<AActor*>& PreDuplicateSelection, TArray<AActor*>& 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<FIntPoint>& 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<FEdMode> LegacyEditorMode;
};