You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- add new UModelingObjectsCreationAPI and associated data structures, provides abstract API for creating mesh and texture objects from Tools that is not specifically tied to StaticMesh Actors/Assets - new helper functions in UE::Modeling:: namespace to simplify usage of an implementation of this API registered in a ContextObjectStore - add new UEditorModelingObjectsCreationAPI implementation of above, supports hooks for higher level to provide custom paths - add ModelingModeAssetUtils.h, provides several functions in UE::Modeling:: namespace to be used to implement those hooks (various existing path-determination code is moved here) - ModelingToolsEditorMode now registers an instance of UEditorModelingObjectsCreationAPI in ContextObjectStore and connects up callbacks to these path functions - AssetGenerationUtil functions and ModelingModeAssetAPI deleted - All Tools that previously used IToolsContextAssetAPI updated to use this new system #rb jimmy.andrews #rnx #jira none #preflight 60b7c2ddae46a1000162729b [CL 16538450 by Ryan Schmidt in ue5-main branch]
80 lines
3.0 KiB
C++
80 lines
3.0 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "SampleToolsEditorMode.h"
|
|
#include "SampleToolsEditorModeToolkit.h"
|
|
#include "EdModeInteractiveToolsContext.h"
|
|
#include "InteractiveToolManager.h"
|
|
#include "SampleToolsEditorModeCommands.h"
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// AddYourTool Step 1 - include the header file for your Tools here
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
#include "SampleTools/CreateActorSampleTool.h"
|
|
#include "SampleTools/DrawCurveOnMeshSampleTool.h"
|
|
#include "SampleTools/MeasureDistanceSampleTool.h"
|
|
|
|
// step 2: register a ToolBuilder in FSampleToolsEditorMode::Enter()
|
|
|
|
|
|
#define LOCTEXT_NAMESPACE "FSampleToolsEditorMode"
|
|
|
|
const FEditorModeID USampleToolsEditorMode::EM_SampleToolsEditorModeId = TEXT("EM_SampleToolsEditorMode");
|
|
|
|
|
|
USampleToolsEditorMode::USampleToolsEditorMode()
|
|
{
|
|
Info = FEditorModeInfo(USampleToolsEditorMode::EM_SampleToolsEditorModeId,
|
|
LOCTEXT("SampleToolsEditorModeName", "SampleToolsEditorMode"),
|
|
FSlateIcon(),
|
|
true);
|
|
}
|
|
|
|
|
|
USampleToolsEditorMode::~USampleToolsEditorMode()
|
|
{
|
|
}
|
|
|
|
|
|
void USampleToolsEditorMode::ActorSelectionChangeNotify()
|
|
{
|
|
// @todo support selection change
|
|
}
|
|
|
|
void USampleToolsEditorMode::Enter()
|
|
{
|
|
UEdMode::Enter();
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// AddYourTool Step 2 - register the ToolBuilders for your Tools here.
|
|
// The string name you pass to the ToolManager is used to select/activate your ToolBuilder later.
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
const FSampleToolsEditorModeCommands& SampleToolCommands = FSampleToolsEditorModeCommands::Get();
|
|
|
|
auto CreateActorSampleToolBuilder = NewObject< UCreateActorSampleToolBuilder>(this);
|
|
RegisterTool(SampleToolCommands.CreateActorTool, TEXT("CreateActorSampleTool"), CreateActorSampleToolBuilder);
|
|
|
|
RegisterTool(SampleToolCommands.DrawCurveOnMeshTool, TEXT("DrawCurveOnMeshSampleTool"), NewObject<UDrawCurveOnMeshSampleToolBuilder>(this));
|
|
RegisterTool(SampleToolCommands.MeasureDistanceTool, TEXT("MeasureDistanceSampleTool"), NewObject<UMeasureDistanceSampleToolBuilder>(this));
|
|
RegisterTool(SampleToolCommands.SurfacePointTool, TEXT("SurfacePointTool"), NewObject<UMeshSurfacePointToolBuilder>(this));
|
|
|
|
// active tool type is not relevant here, we just set to default
|
|
GetToolManager()->SelectActiveToolType(EToolSide::Left, TEXT("SurfacePointTool"));
|
|
}
|
|
|
|
void USampleToolsEditorMode::CreateToolkit()
|
|
{
|
|
Toolkit = MakeShareable(new FSampleToolsEditorModeToolkit);
|
|
}
|
|
|
|
TMap<FName, TArray<TSharedPtr<FUICommandInfo>>> USampleToolsEditorMode::GetModeCommands() const
|
|
{
|
|
return FSampleToolsEditorModeCommands::Get().GetCommands();
|
|
}
|
|
|
|
#undef LOCTEXT_NAMESPACE
|