Atom Tools: Restoring idle behavior for viewport input behavior controller
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
This commit is contained in:
+21
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <AtomToolsFramework/Viewport/ViewportInputBehaviorController/ViewportInputBehavior.h>
|
||||
|
||||
namespace AtomToolsFramework
|
||||
{
|
||||
class IdleBehavior final : public ViewportInputBehavior
|
||||
{
|
||||
public:
|
||||
IdleBehavior(ViewportInputBehaviorControllerInterface* controller);
|
||||
virtual ~IdleBehavior() = default;
|
||||
};
|
||||
} // namespace AtomToolsFramework
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include <AtomToolsFramework/Viewport/ViewportInputBehaviorController/IdleBehavior.h>
|
||||
#include <AtomToolsFramework/Viewport/ViewportInputBehaviorController/ViewportInputBehaviorControllerInterface.h>
|
||||
|
||||
namespace AtomToolsFramework
|
||||
{
|
||||
IdleBehavior::IdleBehavior(ViewportInputBehaviorControllerInterface* controller)
|
||||
: ViewportInputBehavior(controller)
|
||||
{
|
||||
}
|
||||
} // namespace AtomToolsFramework
|
||||
+6
@@ -280,8 +280,14 @@ namespace AtomToolsFramework
|
||||
void ViewportInputBehaviorController::EvaluateControlBehavior()
|
||||
{
|
||||
auto it = m_behaviorMap.find(m_keys);
|
||||
if (it == m_behaviorMap.end())
|
||||
{
|
||||
it = m_behaviorMap.find(None);
|
||||
}
|
||||
|
||||
AZStd::shared_ptr<ViewportInputBehavior> nextBehavior =
|
||||
it != m_behaviorMap.end() ? it->second : AZStd::shared_ptr<ViewportInputBehavior>();
|
||||
|
||||
if (m_behavior != nextBehavior)
|
||||
{
|
||||
if (m_behavior)
|
||||
|
||||
@@ -95,6 +95,8 @@ set(FILES
|
||||
Include/AtomToolsFramework/Viewport/ViewportInputBehaviorController/ViewportInputBehavior.h
|
||||
Source/Viewport/ViewportInputBehaviorController/DollyCameraBehavior.cpp
|
||||
Include/AtomToolsFramework/Viewport/ViewportInputBehaviorController/DollyCameraBehavior.h
|
||||
Source/Viewport/ViewportInputBehaviorController/IdleBehavior.cpp
|
||||
Include/AtomToolsFramework/Viewport/ViewportInputBehaviorController/IdleBehavior.h
|
||||
Source/Viewport/ViewportInputBehaviorController/MoveCameraBehavior.cpp
|
||||
Include/AtomToolsFramework/Viewport/ViewportInputBehaviorController/MoveCameraBehavior.h
|
||||
Source/Viewport/ViewportInputBehaviorController/PanCameraBehavior.cpp
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
#include <AtomLyIntegration/CommonFeatures/PostProcess/ExposureControl/ExposureControlComponentConstants.h>
|
||||
#include <AtomLyIntegration/CommonFeatures/PostProcess/PostFxLayerComponentConstants.h>
|
||||
#include <AtomToolsFramework/Viewport/ViewportInputBehaviorController/DollyCameraBehavior.h>
|
||||
#include <AtomToolsFramework/Viewport/ViewportInputBehaviorController/IdleBehavior.h>
|
||||
#include <AtomToolsFramework/Viewport/ViewportInputBehaviorController/MoveCameraBehavior.h>
|
||||
#include <AtomToolsFramework/Viewport/ViewportInputBehaviorController/OrbitCameraBehavior.h>
|
||||
#include <AtomToolsFramework/Viewport/ViewportInputBehaviorController/PanCameraBehavior.h>
|
||||
@@ -312,6 +313,8 @@ namespace MaterialEditor
|
||||
// Create viewport input controller and regioster its behaviors
|
||||
m_viewportController.reset(
|
||||
aznew ViewportInputBehaviorController(m_cameraEntity->GetId(), m_modelEntity->GetId(), m_iblEntity->GetId()));
|
||||
m_viewportController->AddBehavior(
|
||||
ViewportInputBehaviorController::None, AZStd::make_shared<IdleBehavior>(m_viewportController.get()));
|
||||
m_viewportController->AddBehavior(
|
||||
ViewportInputBehaviorController::Lmb, AZStd::make_shared<PanCameraBehavior>(m_viewportController.get()));
|
||||
m_viewportController->AddBehavior(
|
||||
|
||||
Reference in New Issue
Block a user