Files
UnrealEngineUWP/Engine/Source/Editor/Levels/Public/LevelEdMode.h
Andrew Rodham ba3528c9d4 Made it possible for asset editors to maintain their own FEditorModeTools lists
Breaking changes include:
    * Rename of GEditorModeTools -> GLevelEditorModeTools to signify that it applies only to the level editor modes
    * Addition of FEditorModeRegistry, responsible for managing and creating new editor modes. Modes are no longer registered with an instance of the mode, instead with a mode factory that is able to create a new mode of that type.
    * Editor modes now operate on FEditorViewportClients rather than FLevelEditorViewportClients
    * Added ability to specify an FEditorModeTools when creating an FEditorViewport

Moved component vizualiser manager handling outside of individual editor modes, and into FLevelEditorViewportClient. This should make it easier to transplant in future.

This work addresses TTP#334640 - EDITOR: Investigate making editor modes a per-'editor' concept

Reviewed by Michael Noland, Matt Kuhlenschmidt

[CL 2109245 by Andrew Rodham in Main branch]
2014-06-18 10:16:16 -04:00

66 lines
1.7 KiB
C++

// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "LevelEditorViewport.h"
class FEdModeLevel : public FEdMode
{
public:
/** Constructor */
FEdModeLevel();
/** Destructor */
virtual ~FEdModeLevel();
// Begin FEdMode
virtual void Exit() override;
virtual void AddReferencedObjects( FReferenceCollector& Collector ) override;
virtual EAxisList::Type GetWidgetAxisToDraw( FWidget::EWidgetMode InWidgetMode ) const override;
virtual bool ShouldDrawWidget() const override;
virtual bool UsesTransformWidget(FWidget::EWidgetMode CheckMode) const override;
virtual FVector GetWidgetLocation() const override;
virtual bool AllowWidgetMove() override { return true; }
virtual bool InputDelta(FEditorViewportClient* InViewportClient, FViewport* InViewport, FVector& InDrag, FRotator& InRot, FVector& InScale) override;
virtual void Render( const FSceneView* View, FViewport* Viewport, FPrimitiveDrawInterface* PDI ) override;
virtual bool StartTracking(FEditorViewportClient* InViewportClient, FViewport* InViewport) override;
virtual bool EndTracking(FEditorViewportClient* InViewportClient, FViewport* InViewport) override;
virtual bool IsSnapRotationEnabled() override;
virtual bool SnapRotatorToGridOverride(FRotator& Rotation) override;
// End FEdMode
/** Sets the level we will be transforming */
void SetLevel( ULevelStreaming* Level );
/** Returns true if this is the current level were editing */
virtual bool IsEditing( ULevelStreaming* Level );
/** Calls Apply Post Edit Move on all Actors in the level*/
void ApplyPostEditMove();
private:
ULevelStreaming* SelectedLevel;
FTransform LevelTransform;
UMaterialInstanceDynamic* BoxMaterial;
FBox LevelBounds;
bool bIsTracking;
bool bIsDirty;
};