You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- This merge contains various changes to ViewportInteraction and VR Editor to make things more extensible
- Some changes are from Yannick's recent shelved refactoring work, that I've modified and improved upon
- EditorWorldManager is gone and replaced by EditorWorldExtensionManager
- EditorWorldExtensions are sort of like a more modern version of 'FEdMode', but still a work in progress
- Cleaned up access to VREditorMode from other modules, forcing systems to go through EditorWorldExtensions
- Overhauled how transforming objects works with world interaction
- Viewport interactors can now be used to move objects other than actors around (by implementing an UViewportTransformer, and a FViewportTransformable)
- Undo/Redo now works better with inertial transformation! The transaction only ends when objects finally come to rest.
- Some initial support for 'grabber sphere' interactor methods has been implemented (not used yet)
- Viewport interaction input events now receive the viewport being interacted through
- Viewport interaction hover events no longer get a viewport client (because they must be designed to work any number of viewports.)
NOTE: This introduces UBT warnings about cyclic module dependencies. We'll have to address this in a different changelist.
Other changes:
- The active Viewport Interaction 'gizmo mode' is now tied directly to the editor's normal gizmo mode. They share the same state.
- New console variable 'VI.UseTransientActors' can be turned off to force editor actors to be created non-transient to make it easier to debug
- New console variable 'VI.DragTranslationVelocityStopEpsilon' sets the speed at which transformables will stop have inertia applied to them
- Fixed cyclic dependencies with ViewportInteraction and VREditor modules not being tagged properly for UBT
- Fixed some issues with transform gizmos not getting release events
- Various methods that should have been const were made const
- Eliminated duplicate implementation of SpawnTransientSceneActor and DestroyTransientActor; made it static
- UnrealEd no longer directly depends on VREditor and ViewportInteraction modules
- Engine: AActor::SetIsTemporarilyHiddenInEditor no longer does any work if the object's hidden state didn't change
- Slate: Input preprocessor (if bound) now also gets a chance at mouse button down and up events
#codereview yannick.lange,lauren.ridge
#rb various
[CL 3245240 by Mike Fricker in Dev-VREditor branch]
48 lines
1.5 KiB
C++
48 lines
1.5 KiB
C++
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "ViewportWorldInteractionManager.h"
|
|
#include "Framework/Application/SlateApplication.h"
|
|
#include "ViewportWorldInteraction.h"
|
|
|
|
FViewportWorldInteractionManager::FViewportWorldInteractionManager() :
|
|
CurrentWorldInteraction( nullptr )
|
|
{
|
|
InputProcessor = MakeShareable( new FViewportInteractionInputProcessor( this ) );
|
|
FSlateApplication::Get().SetInputPreProcessor( true, InputProcessor );
|
|
}
|
|
|
|
FViewportWorldInteractionManager::~FViewportWorldInteractionManager()
|
|
{
|
|
CurrentWorldInteraction = nullptr;
|
|
}
|
|
|
|
void FViewportWorldInteractionManager::AddReferencedObjects( FReferenceCollector& Collector )
|
|
{
|
|
Collector.AddReferencedObject( CurrentWorldInteraction );
|
|
}
|
|
|
|
bool FViewportWorldInteractionManager::PreprocessedInputKey( const FKey Key, const EInputEvent Event )
|
|
{
|
|
bool bResult = false;
|
|
if( CurrentWorldInteraction && CurrentWorldInteraction->IsActive() )
|
|
{
|
|
bResult = CurrentWorldInteraction->PreprocessedInputKey( Key, Event );
|
|
}
|
|
return bResult;
|
|
}
|
|
|
|
bool FViewportWorldInteractionManager::PreprocessedInputAxis( const int32 ControllerId, const FKey Key, const float Delta, const float DeltaTime )
|
|
{
|
|
bool bResult = false;
|
|
if(CurrentWorldInteraction && CurrentWorldInteraction->IsActive() )
|
|
{
|
|
bResult = CurrentWorldInteraction->PreprocessedInputAxis( ControllerId, Key, Delta, DeltaTime );
|
|
}
|
|
return bResult;
|
|
}
|
|
|
|
void FViewportWorldInteractionManager::SetCurrentViewportWorldInteraction( UViewportWorldInteraction* WorldInteraction )
|
|
{
|
|
CurrentWorldInteraction = WorldInteraction;
|
|
}
|