Files
UnrealEngine/Engine/Source/Editor/SceneDepthPickerMode/Private/SceneDepthPickerMode.cpp
2025-05-18 13:04:45 +08:00

44 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "SceneDepthPickerMode.h"
#include "Modules/ModuleManager.h"
#include "EditorModeRegistry.h"
#include "EditorModeManager.h"
#include "EditorModes.h"
#include "EditorModeSceneDepthPicker.h"
IMPLEMENT_MODULE( FSceneDepthPickerModeModule, SceneDepthPickerMode );
void FSceneDepthPickerModeModule::StartupModule()
{
FEditorModeRegistry::Get().RegisterMode<FEdModeSceneDepthPicker>(FBuiltinEditorModes::EM_SceneDepthPicker);
}
void FSceneDepthPickerModeModule::ShutdownModule()
{
FEditorModeRegistry::Get().UnregisterMode(FBuiltinEditorModes::EM_SceneDepthPicker);
}
void FSceneDepthPickerModeModule::BeginSceneDepthPickingMode(FOnSceneDepthLocationSelected InOnSceneDepthLocationSelected)
{
// Activate the mode
GLevelEditorModeTools().ActivateMode(FBuiltinEditorModes::EM_SceneDepthPicker);
// Set the required delegates
FEdModeSceneDepthPicker* const Mode = GLevelEditorModeTools().GetActiveModeTyped<FEdModeSceneDepthPicker>(FBuiltinEditorModes::EM_SceneDepthPicker);
if (ensure(Mode))
{
Mode->OnSceneDepthLocationSelected = InOnSceneDepthLocationSelected;
}
}
void FSceneDepthPickerModeModule::EndSceneDepthPickingMode()
{
GLevelEditorModeTools().DeactivateMode(FBuiltinEditorModes::EM_SceneDepthPicker);
}
bool FSceneDepthPickerModeModule::IsInSceneDepthPickingMode() const
{
return GLevelEditorModeTools().IsModeActive(FBuiltinEditorModes::EM_SceneDepthPicker);
}