Files
UnrealEngineUWP/Engine/Source/Runtime/InteractiveToolsFramework/Public/InteractiveToolsContext.h
Chris Gagnon 930e33cb48 Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) for 4.23 From CL 6837861
#rb none

[CL 6838042 by Chris Gagnon in Main branch]
2019-06-04 15:42:48 -04:00

45 lines
1.5 KiB
C++

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "InteractiveToolManager.h"
#include "InteractiveGizmoManager.h"
#include "InteractiveToolsContext.generated.h"
/**
* InteractiveToolsContext owns a ToolManager and an InputRouter. This is just a top-level
* UObject container, however implementations like UEdModeInteractiveToolsContext extend
* this class to make it easier to connect external systems (like an FEdMode) to the ToolsFramework.
*/
UCLASS(Transient)
class INTERACTIVETOOLSFRAMEWORK_API UInteractiveToolsContext : public UObject
{
GENERATED_BODY()
public:
UInteractiveToolsContext();
/**
* Initialize the Context. This creates the InputRouter and ToolManager
* @param QueriesAPI client-provided implementation of the API for querying the higher-evel scene state
* @param TransactionsAPI client-provided implementation of the API for publishing events and transactions
*/
virtual void Initialize(IToolsContextQueriesAPI* QueriesAPI, IToolsContextTransactionsAPI* TransactionsAPI);
/** Shutdown Context by destroying InputRouter and ToolManager */
virtual void Shutdown();
public:
/** current UInputRouter for this Context */
UPROPERTY()
UInputRouter* InputRouter;
/** current UInteractiveToolManager for this Context */
UPROPERTY()
UInteractiveToolManager* ToolManager;
/** current UInteractiveGizmoManager for this Context */
UPROPERTY()
UInteractiveGizmoManager* GizmoManager;
};