Files
UnrealEngineUWP/Engine/Source/Editor/LevelAssetEditor/Private/LevelEditorToolsContextInterfaces.h
brooke hubert 0e65cf7202 Add getters in context queries API for viewports so that tools can query the viewport client for input context directly.
#Jira none
#rb ryan.schmidt
[FYI] lauren.barnes

#ROBOMERGE-SOURCE: CL 15527815 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15527825 by brooke hubert in ue5-main branch]
2021-02-25 09:47:14 -04:00

45 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "ToolContextInterfaces.h"
class UInteractiveToolsContext;
class FEditorViewportClient;
class HHitProxy;
class UMaterialInterface;
class FText;
class FToolCommandChange;
class FLevelEditorToolsContextQueriesImpl : public IToolsContextQueriesAPI
{
public:
FLevelEditorToolsContextQueriesImpl(UInteractiveToolsContext* InContext);
virtual void GetCurrentSelectionState(FToolBuilderState& StateOut) const override;
virtual void GetCurrentViewState(FViewCameraState& StateOut) const override;
virtual EToolContextCoordinateSystem GetCurrentCoordinateSystem() const override;
virtual bool ExecuteSceneSnapQuery(const FSceneSnapQueryRequest& Request, TArray<FSceneSnapQueryResult>& Results) const override;
virtual UMaterialInterface* GetStandardMaterial(EStandardToolContextMaterials MaterialType) const override;
virtual FViewport* GetHoveredViewport() const override;
virtual FViewport* GetFocusedViewport() const override;
protected:
UInteractiveToolsContext* ToolsContext;
FEditorViewportClient* ViewportClient;
UObject* EditingAsset;
};
class FLevelEditorContextTransactionImpl : public IToolsContextTransactionsAPI
{
public:
virtual void DisplayMessage(const FText& Message, EToolMessageLevel Level) override;
virtual void PostInvalidation() override;
virtual void BeginUndoTransaction(const FText& Description) override;
virtual void EndUndoTransaction() override;
virtual void AppendChange(UObject* TargetObject, TUniquePtr<FToolCommandChange> Change, const FText& Description) override;
virtual bool RequestSelectionChange(const FSelectedOjectsChangeList& SelectionChange) override;
virtual bool RequestToolSelectionStore(const UInteractiveToolStorableSelection* StorableSelection,
const FToolSelectionStoreParams& Params) override;
};