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]
42 lines
1.5 KiB
C++
42 lines
1.5 KiB
C++
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "ViewportInteractionInputProcessor.h"
|
|
#include "Input/Events.h"
|
|
#include "Misc/App.h"
|
|
#include "ViewportWorldInteractionManager.h"
|
|
|
|
FViewportInteractionInputProcessor::FViewportInteractionInputProcessor( FViewportWorldInteractionManager* InWorldInteractionManager )
|
|
: WorldInteractionManager( InWorldInteractionManager )
|
|
{
|
|
}
|
|
|
|
FViewportInteractionInputProcessor::~FViewportInteractionInputProcessor()
|
|
{
|
|
WorldInteractionManager = nullptr;
|
|
}
|
|
|
|
void FViewportInteractionInputProcessor::Tick( const float DeltaTime, FSlateApplication& SlateApp, TSharedRef<ICursor> Cursor )
|
|
{
|
|
}
|
|
|
|
bool FViewportInteractionInputProcessor::HandleKeyDownEvent( FSlateApplication& SlateApp, const FKeyEvent& InKeyEvent )
|
|
{
|
|
return WorldInteractionManager->PreprocessedInputKey( InKeyEvent.GetKey(), InKeyEvent.IsRepeat() ? IE_Repeat : IE_Pressed );
|
|
}
|
|
|
|
bool FViewportInteractionInputProcessor::HandleKeyUpEvent( FSlateApplication& SlateApp, const FKeyEvent& InKeyEvent )
|
|
{
|
|
return WorldInteractionManager->PreprocessedInputKey( InKeyEvent.GetKey(), IE_Released );
|
|
}
|
|
|
|
bool FViewportInteractionInputProcessor::HandleAnalogInputEvent( FSlateApplication& SlateApp, const FAnalogInputEvent& InAnalogInputEvent )
|
|
{
|
|
return WorldInteractionManager->PreprocessedInputAxis( InAnalogInputEvent.GetUserIndex(), InAnalogInputEvent.GetKey(), InAnalogInputEvent.GetAnalogValue(), FApp::GetDeltaTime() );
|
|
}
|
|
|
|
bool FViewportInteractionInputProcessor::HandleMouseMoveEvent( FSlateApplication& SlateApp, const FPointerEvent& MouseEvent )
|
|
{
|
|
return false;
|
|
}
|
|
|