Files
UnrealEngineUWP/Engine/Source/Runtime/InteractiveToolsFramework/Private/SceneQueries/SceneSnappingManager.cpp
ryan schmidt 35cb7ccf8f ToolsFramework: move support for scene location/angle snapping from ToolContextInterfaces/IContextQueriesAPI to USceneSnappingManager, a context store object that different modes may wish to implement.
USceneSnappingManager currently only provides the current snapping interface and a no-op implementation.
Move existing EdModeInteractiveToolsContext snapping implementation to ModelingSceneSnappingManager in ModelingComponents module.
Add IContextQueriesAPI::GetCurrentSnappingSettings to allow ITF Host to specify snapping settings, implement in EdModeInteractiveToolsContext.
Update affected Tools/Gizmos, register ModelingSceneSnappingManager instance in Modeling EdMode.

#rb semion.piskarev
#rnx
#jira none
#preflight 6171b7654d6efa00017a0450

#ROBOMERGE-OWNER: ryan.schmidt
#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17890511 in //UE5/Release-5.0/... via CL 17890705
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v883-17842818)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17890711 by ryan schmidt in ue5-release-engine-test branch]
2021-10-21 16:57:00 -04:00

34 lines
811 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "SceneQueries/SceneSnappingManager.h"
#include "InteractiveToolManager.h"
#include "InteractiveGizmoManager.h"
#include "ContextObjectStore.h"
USceneSnappingManager* USceneSnappingManager::Find(UInteractiveToolManager* ToolManager)
{
if (ensure(ToolManager))
{
USceneSnappingManager* Found = ToolManager->GetContextObjectStore()->FindContext<USceneSnappingManager>();
if (Found != nullptr)
{
return Found;
}
}
return nullptr;
}
USceneSnappingManager* USceneSnappingManager::Find(UInteractiveGizmoManager* GizmoManager)
{
if (ensure(GizmoManager))
{
USceneSnappingManager* Found = GizmoManager->GetContextObjectStore()->FindContext<USceneSnappingManager>();
if (Found != nullptr)
{
return Found;
}
}
return nullptr;
}