2019-12-27 09:26:59 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
2019-06-04 15:42:48 -04:00
|
|
|
|
|
|
|
|
#include "SampleToolsEditorMode.h"
|
|
|
|
|
#include "SampleToolsEditorModeToolkit.h"
|
2020-09-02 15:43:58 -04:00
|
|
|
#include "EdModeInteractiveToolsContext.h"
|
|
|
|
|
#include "InteractiveToolManager.h"
|
2020-09-02 17:44:16 -04:00
|
|
|
#include "SampleToolsEditorModeCommands.h"
|
2019-06-04 15:42:48 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
2020-09-02 15:43:58 -04:00
|
|
|
// AddYourTool Step 1 - include the header file for your Tools here
|
2019-06-04 15:42:48 -04:00
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
#include "SampleTools/CreateActorSampleTool.h"
|
|
|
|
|
#include "SampleTools/DrawCurveOnMeshSampleTool.h"
|
|
|
|
|
#include "SampleTools/MeasureDistanceSampleTool.h"
|
|
|
|
|
|
|
|
|
|
// step 2: register a ToolBuilder in FSampleToolsEditorMode::Enter()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define LOCTEXT_NAMESPACE "FSampleToolsEditorMode"
|
|
|
|
|
|
2020-09-02 15:43:58 -04:00
|
|
|
const FEditorModeID USampleToolsEditorMode::EM_SampleToolsEditorModeId = TEXT("EM_SampleToolsEditorMode");
|
2019-06-04 15:42:48 -04:00
|
|
|
|
|
|
|
|
|
2020-09-02 15:43:58 -04:00
|
|
|
USampleToolsEditorMode::USampleToolsEditorMode()
|
2019-06-04 15:42:48 -04:00
|
|
|
{
|
2020-09-02 15:43:58 -04:00
|
|
|
Info = FEditorModeInfo(USampleToolsEditorMode::EM_SampleToolsEditorModeId,
|
|
|
|
|
LOCTEXT("SampleToolsEditorModeName", "SampleToolsEditorMode"),
|
|
|
|
|
FSlateIcon(),
|
|
|
|
|
true);
|
2019-06-04 15:42:48 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2020-09-02 15:43:58 -04:00
|
|
|
USampleToolsEditorMode::~USampleToolsEditorMode()
|
2019-06-04 15:42:48 -04:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2020-09-02 15:43:58 -04:00
|
|
|
void USampleToolsEditorMode::ActorSelectionChangeNotify()
|
2019-06-04 15:42:48 -04:00
|
|
|
{
|
|
|
|
|
// @todo support selection change
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-02 15:43:58 -04:00
|
|
|
void USampleToolsEditorMode::Enter()
|
2019-06-04 15:42:48 -04:00
|
|
|
{
|
2020-09-02 15:43:58 -04:00
|
|
|
UEdMode::Enter();
|
2019-06-04 15:42:48 -04:00
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
2020-09-02 15:43:58 -04:00
|
|
|
// AddYourTool Step 2 - register the ToolBuilders for your Tools here.
|
2019-06-04 15:42:48 -04:00
|
|
|
// The string name you pass to the ToolManager is used to select/activate your ToolBuilder later.
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
2020-09-02 17:58:13 -04:00
|
|
|
const FSampleToolsEditorModeCommands& SampleToolCommands = FSampleToolsEditorModeCommands::Get();
|
2019-06-04 15:42:48 -04:00
|
|
|
|
2020-09-02 15:43:58 -04:00
|
|
|
auto CreateActorSampleToolBuilder = NewObject< UCreateActorSampleToolBuilder>(this);
|
|
|
|
|
RegisterTool(SampleToolCommands.CreateActorTool, TEXT("CreateActorSampleTool"), CreateActorSampleToolBuilder);
|
2019-06-04 15:42:48 -04:00
|
|
|
|
2020-09-02 15:43:58 -04:00
|
|
|
RegisterTool(SampleToolCommands.DrawCurveOnMeshTool, TEXT("DrawCurveOnMeshSampleTool"), NewObject<UDrawCurveOnMeshSampleToolBuilder>(this));
|
|
|
|
|
RegisterTool(SampleToolCommands.MeasureDistanceTool, TEXT("MeasureDistanceSampleTool"), NewObject<UMeasureDistanceSampleToolBuilder>(this));
|
|
|
|
|
RegisterTool(SampleToolCommands.SurfacePointTool, TEXT("SurfacePointTool"), NewObject<UMeshSurfacePointToolBuilder>(this));
|
2019-06-04 15:42:48 -04:00
|
|
|
|
|
|
|
|
// active tool type is not relevant here, we just set to default
|
2020-09-02 15:43:58 -04:00
|
|
|
GetToolManager()->SelectActiveToolType(EToolSide::Left, TEXT("SurfacePointTool"));
|
2019-06-04 15:42:48 -04:00
|
|
|
}
|
|
|
|
|
|
2020-09-02 15:43:58 -04:00
|
|
|
void USampleToolsEditorMode::CreateToolkit()
|
2019-06-04 15:42:48 -04:00
|
|
|
{
|
2020-09-02 15:43:58 -04:00
|
|
|
Toolkit = MakeShareable(new FSampleToolsEditorModeToolkit);
|
2019-06-04 15:42:48 -04:00
|
|
|
}
|
|
|
|
|
|
2020-09-02 15:43:58 -04:00
|
|
|
TMap<FName, TArray<TSharedPtr<FUICommandInfo>>> USampleToolsEditorMode::GetModeCommands() const
|
2019-06-04 15:42:48 -04:00
|
|
|
{
|
2020-09-02 15:43:58 -04:00
|
|
|
return FSampleToolsEditorModeCommands::Get().GetCommands();
|
2019-06-04 15:42:48 -04:00
|
|
|
}
|
|
|
|
|
|
2020-09-02 15:43:58 -04:00
|
|
|
#undef LOCTEXT_NAMESPACE
|