Expose sticky select option to the SettingsRegistry and disable by default (#4149)
* expose sticky select option to the SettingsRegistry Signed-off-by: hultonha <hultonha@amazon.co.uk> * update missed callsites after API change to Manipulator Test Framework Signed-off-by: hultonha <hultonha@amazon.co.uk> * updates following review feedback Signed-off-by: hultonha <hultonha@amazon.co.uk>
This commit is contained in:
+14
-14
@@ -15,19 +15,19 @@
|
||||
|
||||
namespace AzManipulatorTestFramework
|
||||
{
|
||||
//! Base class for derived immediate and retained action dispatchers.
|
||||
//! Base class for derived immediate action dispatchers.
|
||||
template<typename DerivedDispatcherT>
|
||||
class ActionDispatcher
|
||||
{
|
||||
public:
|
||||
virtual ~ActionDispatcher() = default;
|
||||
|
||||
//! Enable grid snapping.
|
||||
DerivedDispatcherT* EnableSnapToGrid();
|
||||
//! Disable grid snapping.
|
||||
DerivedDispatcherT* DisableSnapToGrid();
|
||||
//! Enable/disable grid snapping.
|
||||
DerivedDispatcherT* SetSnapToGrid(bool enabled);
|
||||
//! Set the grid size.
|
||||
DerivedDispatcherT* GridSize(float size);
|
||||
//! Enable/disable sticky select.
|
||||
DerivedDispatcherT* SetStickySelect(bool enabled);
|
||||
//! Enable/disable action logging.
|
||||
DerivedDispatcherT* LogActions(bool logging);
|
||||
//! Output a trace debug message.
|
||||
@@ -66,9 +66,9 @@ namespace AzManipulatorTestFramework
|
||||
DerivedDispatcherT* EnterComponentMode();
|
||||
|
||||
protected:
|
||||
// Actions to be implemented by derived immediate and retained action dispatchers.
|
||||
virtual void EnableSnapToGridImpl() = 0;
|
||||
virtual void DisableSnapToGridImpl() = 0;
|
||||
// Actions to be implemented by derived immediate action dispatcher.
|
||||
virtual void SetSnapToGridImpl(bool enabled) = 0;
|
||||
virtual void SetStickySelectImpl(bool enabled) = 0;
|
||||
virtual void GridSizeImpl(float size) = 0;
|
||||
virtual void CameraStateImpl(const AzFramework::CameraState& cameraState) = 0;
|
||||
virtual void MouseLButtonDownImpl() = 0;
|
||||
@@ -127,18 +127,18 @@ namespace AzManipulatorTestFramework
|
||||
}
|
||||
|
||||
template<typename DerivedDispatcherT>
|
||||
DerivedDispatcherT* ActionDispatcher<DerivedDispatcherT>::EnableSnapToGrid()
|
||||
DerivedDispatcherT* ActionDispatcher<DerivedDispatcherT>::SetSnapToGrid(const bool enabled)
|
||||
{
|
||||
Log("Enabling SnapToGrid");
|
||||
EnableSnapToGridImpl();
|
||||
Log("SnapToGrid %s", enabled ? "on" : "off");
|
||||
SetSnapToGridImpl(enabled);
|
||||
return static_cast<DerivedDispatcherT*>(this);
|
||||
}
|
||||
|
||||
template<typename DerivedDispatcherT>
|
||||
DerivedDispatcherT* ActionDispatcher<DerivedDispatcherT>::DisableSnapToGrid()
|
||||
DerivedDispatcherT* ActionDispatcher<DerivedDispatcherT>::SetStickySelect(bool enabled)
|
||||
{
|
||||
Log("Disabling SnapToGrid");
|
||||
DisableSnapToGridImpl();
|
||||
Log("StickySelect %s", enabled ? "on" : "off");
|
||||
SetStickySelectImpl(enabled);
|
||||
return static_cast<DerivedDispatcherT*>(this);
|
||||
}
|
||||
|
||||
|
||||
+11
-13
@@ -16,7 +16,7 @@ namespace AzFramework
|
||||
{
|
||||
class DebugDisplayRequests;
|
||||
struct CameraState;
|
||||
}
|
||||
} // namespace AzFramework
|
||||
|
||||
namespace AzManipulatorTestFramework
|
||||
{
|
||||
@@ -31,14 +31,10 @@ namespace AzManipulatorTestFramework
|
||||
virtual void SetCameraState(const AzFramework::CameraState& cameraState) = 0;
|
||||
//! Retrieve the debug display.
|
||||
virtual AzFramework::DebugDisplayRequests& GetDebugDisplay() = 0;
|
||||
//! Enable grid snapping.
|
||||
virtual void EnableGridSnaping() = 0;
|
||||
//! Disable grid snapping.
|
||||
virtual void DisableGridSnaping() = 0;
|
||||
//! Enable grid snapping.
|
||||
virtual void EnableAngularSnaping() = 0;
|
||||
//! Disable grid snapping.
|
||||
virtual void DisableAngularSnaping() = 0;
|
||||
//! Set if grid snapping is enabled or not.
|
||||
virtual void SetGridSnapping(bool enabled) = 0;
|
||||
//! Set if angular snapping is enabled or not.
|
||||
virtual void SetAngularSnapping(bool enabled) = 0;
|
||||
//! Set the grid size.
|
||||
virtual void SetGridSize(float size) = 0;
|
||||
//! Set the angular step.
|
||||
@@ -48,6 +44,8 @@ namespace AzManipulatorTestFramework
|
||||
//! Updates the visibility state.
|
||||
//! Updates which entities are currently visible given the current camera state.
|
||||
virtual void UpdateVisibility() = 0;
|
||||
//! Set if sticky select is enabled or not.
|
||||
virtual void SetStickySelect(bool enabled) = 0;
|
||||
};
|
||||
|
||||
//! This interface is used to simulate the manipulator manager while the manipulators are under test.
|
||||
@@ -82,15 +80,15 @@ namespace AzManipulatorTestFramework
|
||||
//! Return the representation of the viewport interaction model.
|
||||
ViewportInteractionInterface& GetViewportInteraction()
|
||||
{
|
||||
return const_cast<
|
||||
ViewportInteractionInterface&>(const_cast<const ManipulatorViewportInteraction*>(this)->GetViewportInteraction());
|
||||
return const_cast<ViewportInteractionInterface&>(
|
||||
const_cast<const ManipulatorViewportInteraction*>(this)->GetViewportInteraction());
|
||||
}
|
||||
|
||||
//! Return the const representation of the manipulator manager.
|
||||
ManipulatorManagerInterface& GetManipulatorManager()
|
||||
{
|
||||
return const_cast<
|
||||
ManipulatorManagerInterface&>(const_cast<const ManipulatorViewportInteraction*>(this)->GetManipulatorManager());
|
||||
return const_cast<ManipulatorManagerInterface&>(
|
||||
const_cast<const ManipulatorViewportInteraction*>(this)->GetManipulatorManager());
|
||||
}
|
||||
};
|
||||
} // namespace AzManipulatorTestFramework
|
||||
|
||||
+2
-2
@@ -52,8 +52,8 @@ namespace AzManipulatorTestFramework
|
||||
|
||||
protected:
|
||||
// ActionDispatcher ...
|
||||
void EnableSnapToGridImpl() override;
|
||||
void DisableSnapToGridImpl() override;
|
||||
void SetSnapToGridImpl(bool enabled) override;
|
||||
void SetStickySelectImpl(bool enabled) override;
|
||||
void GridSizeImpl(float size) override;
|
||||
void CameraStateImpl(const AzFramework::CameraState& cameraState) override;
|
||||
void MouseLButtonDownImpl() override;
|
||||
|
||||
+5
-4
@@ -29,14 +29,13 @@ namespace AzManipulatorTestFramework
|
||||
// ViewportInteractionInterface overrides ...
|
||||
void SetCameraState(const AzFramework::CameraState& cameraState) override;
|
||||
AzFramework::DebugDisplayRequests& GetDebugDisplay() override;
|
||||
void EnableGridSnaping() override;
|
||||
void DisableGridSnaping() override;
|
||||
void EnableAngularSnaping() override;
|
||||
void DisableAngularSnaping() override;
|
||||
void SetGridSnapping(bool enabled) override;
|
||||
void SetAngularSnapping(bool enabled) override;
|
||||
void SetGridSize(float size) override;
|
||||
void SetAngularStep(float step) override;
|
||||
int GetViewportId() const override;
|
||||
void UpdateVisibility() override;
|
||||
void SetStickySelect(bool enabled) override;
|
||||
|
||||
// ViewportInteractionRequestBus overrides ...
|
||||
AzFramework::CameraState GetCameraState() override;
|
||||
@@ -54,6 +53,7 @@ namespace AzManipulatorTestFramework
|
||||
float AngleStep() const override;
|
||||
float ManipulatorLineBoundWidth() const override;
|
||||
float ManipulatorCircleBoundWidth() const override;
|
||||
bool StickySelectEnabled() const override;
|
||||
|
||||
// EditorEntityViewportInteractionRequestBus overrides ...
|
||||
void FindVisibleEntities(AZStd::vector<AZ::EntityId>& visibleEntities) override;
|
||||
@@ -65,6 +65,7 @@ namespace AzManipulatorTestFramework
|
||||
AzFramework::CameraState m_cameraState;
|
||||
bool m_gridSnapping = false;
|
||||
bool m_angularSnapping = false;
|
||||
bool m_stickySelect = true;
|
||||
float m_gridSize = 1.0f;
|
||||
float m_angularStep = 0.0f;
|
||||
};
|
||||
|
||||
@@ -49,17 +49,17 @@ namespace AzManipulatorTestFramework
|
||||
m_viewportManipulatorInteraction.GetManipulatorManager().ConsumeMouseInteractionEvent(*m_event);
|
||||
}
|
||||
|
||||
void ImmediateModeActionDispatcher::EnableSnapToGridImpl()
|
||||
void ImmediateModeActionDispatcher::SetSnapToGridImpl(const bool enabled)
|
||||
{
|
||||
m_viewportManipulatorInteraction.GetViewportInteraction().EnableGridSnaping();
|
||||
m_viewportManipulatorInteraction.GetViewportInteraction().SetGridSnapping(enabled);
|
||||
}
|
||||
|
||||
void ImmediateModeActionDispatcher::DisableSnapToGridImpl()
|
||||
void ImmediateModeActionDispatcher::SetStickySelectImpl(const bool enabled)
|
||||
{
|
||||
m_viewportManipulatorInteraction.GetViewportInteraction().DisableGridSnaping();
|
||||
m_viewportManipulatorInteraction.GetViewportInteraction().SetStickySelect(enabled);
|
||||
}
|
||||
|
||||
void ImmediateModeActionDispatcher::GridSizeImpl(float size)
|
||||
void ImmediateModeActionDispatcher::GridSizeImpl(const float size)
|
||||
{
|
||||
m_viewportManipulatorInteraction.GetViewportInteraction().SetGridSize(size);
|
||||
}
|
||||
|
||||
@@ -6,16 +6,15 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include <AzManipulatorTestFramework/ViewportInteraction.h>
|
||||
#include <AzFramework/Viewport/ViewportScreen.h>
|
||||
#include <AzFramework/Viewport/CameraState.h>
|
||||
#include <AzFramework/Viewport/ViewportScreen.h>
|
||||
#include <AzManipulatorTestFramework/ViewportInteraction.h>
|
||||
#include <AzToolsFramework/Manipulators/ManipulatorBus.h>
|
||||
|
||||
namespace AzManipulatorTestFramework
|
||||
{
|
||||
// Null debug display for dummy draw calls
|
||||
class NullDebugDisplayRequests
|
||||
: public AzFramework::DebugDisplayRequests
|
||||
class NullDebugDisplayRequests : public AzFramework::DebugDisplayRequests
|
||||
{
|
||||
public:
|
||||
virtual ~NullDebugDisplayRequests() = default;
|
||||
@@ -76,6 +75,11 @@ namespace AzManipulatorTestFramework
|
||||
return 0.1f;
|
||||
}
|
||||
|
||||
bool ViewportInteraction::StickySelectEnabled() const
|
||||
{
|
||||
return m_stickySelect;
|
||||
}
|
||||
|
||||
void ViewportInteraction::FindVisibleEntities(AZStd::vector<AZ::EntityId>& visibleEntitiesOut)
|
||||
{
|
||||
visibleEntitiesOut.assign(m_entityVisibilityQuery.Begin(), m_entityVisibilityQuery.End());
|
||||
@@ -101,24 +105,19 @@ namespace AzManipulatorTestFramework
|
||||
return *m_nullDebugDisplayRequests;
|
||||
}
|
||||
|
||||
void ViewportInteraction::EnableGridSnaping()
|
||||
void ViewportInteraction::SetGridSnapping(const bool enabled)
|
||||
{
|
||||
m_gridSnapping = true;
|
||||
m_gridSnapping = enabled;
|
||||
}
|
||||
|
||||
void ViewportInteraction::DisableGridSnaping()
|
||||
void ViewportInteraction::SetAngularSnapping(const bool enabled)
|
||||
{
|
||||
m_gridSnapping = false;
|
||||
m_angularSnapping = enabled;
|
||||
}
|
||||
|
||||
void ViewportInteraction::EnableAngularSnaping()
|
||||
void ViewportInteraction::SetStickySelect(const bool enabled)
|
||||
{
|
||||
m_angularSnapping = true;
|
||||
}
|
||||
|
||||
void ViewportInteraction::DisableAngularSnaping()
|
||||
{
|
||||
m_angularSnapping = false;
|
||||
m_stickySelect = enabled;
|
||||
}
|
||||
|
||||
void ViewportInteraction::SetGridSize(float size)
|
||||
@@ -152,4 +151,4 @@ namespace AzManipulatorTestFramework
|
||||
{
|
||||
return 1.0f;
|
||||
}
|
||||
}// namespace AzManipulatorTestFramework
|
||||
} // namespace AzManipulatorTestFramework
|
||||
|
||||
@@ -76,7 +76,7 @@ namespace UnitTest
|
||||
linearManipulator->SetLocalPosition(action.LocalPosition());
|
||||
});
|
||||
|
||||
m_actionDispatcher->EnableSnapToGrid()
|
||||
m_actionDispatcher->SetSnapToGrid(true)
|
||||
->GridSize(5.0f)
|
||||
->CameraState(m_cameraState)
|
||||
->MousePosition(initialPositionScreen)
|
||||
@@ -114,7 +114,7 @@ namespace UnitTest
|
||||
manipulator->SetLocalPosition(action.LocalPosition());
|
||||
});
|
||||
|
||||
actionDispatcher->EnableSnapToGrid()
|
||||
actionDispatcher->SetSnapToGrid(true)
|
||||
->GridSize(1.0f)
|
||||
->CameraState(cameraState)
|
||||
->MousePosition(initialPositionScreen)
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace UnitTest
|
||||
{
|
||||
bool snapping = false;
|
||||
|
||||
m_viewportInteraction->EnableGridSnaping();
|
||||
m_viewportInteraction->SetGridSnapping(true);
|
||||
AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::EventResult(
|
||||
snapping, m_viewportInteraction->GetViewportId(),
|
||||
&AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Events::GridSnappingEnabled);
|
||||
@@ -60,7 +60,7 @@ namespace UnitTest
|
||||
{
|
||||
bool snapping = true;
|
||||
|
||||
m_viewportInteraction->DisableGridSnaping();
|
||||
m_viewportInteraction->SetGridSnapping(false);
|
||||
AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::EventResult(
|
||||
snapping, m_viewportInteraction->GetViewportId(),
|
||||
&AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Events::GridSnappingEnabled);
|
||||
@@ -75,7 +75,7 @@ namespace UnitTest
|
||||
|
||||
m_viewportInteraction->SetGridSize(expectedGridSize);
|
||||
|
||||
m_viewportInteraction->DisableGridSnaping();
|
||||
m_viewportInteraction->SetGridSnapping(false);
|
||||
AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::EventResult(
|
||||
gridSize, m_viewportInteraction->GetViewportId(),
|
||||
&AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Events::GridSize);
|
||||
@@ -87,7 +87,7 @@ namespace UnitTest
|
||||
{
|
||||
bool snapping = false;
|
||||
|
||||
m_viewportInteraction->EnableAngularSnaping();
|
||||
m_viewportInteraction->SetAngularSnapping(true);
|
||||
AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::EventResult(
|
||||
snapping, m_viewportInteraction->GetViewportId(),
|
||||
&AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Events::AngleSnappingEnabled);
|
||||
@@ -99,7 +99,7 @@ namespace UnitTest
|
||||
{
|
||||
bool snapping = true;
|
||||
|
||||
m_viewportInteraction->DisableAngularSnaping();
|
||||
m_viewportInteraction->SetAngularSnapping(false);
|
||||
AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::EventResult(
|
||||
snapping, m_viewportInteraction->GetViewportId(),
|
||||
&AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Events::AngleSnappingEnabled);
|
||||
|
||||
@@ -196,6 +196,8 @@ namespace AzToolsFramework
|
||||
virtual float ManipulatorLineBoundWidth() const = 0;
|
||||
//! Returns the current circle (torus) bound width for manipulators.
|
||||
virtual float ManipulatorCircleBoundWidth() const = 0;
|
||||
//! Returns if sticky select is enabled or not.
|
||||
virtual bool StickySelectEnabled() const = 0;
|
||||
|
||||
protected:
|
||||
~ViewportSettingsRequests() = default;
|
||||
|
||||
+9
-11
@@ -77,13 +77,6 @@ namespace AzToolsFramework
|
||||
nullptr,
|
||||
AZ::ConsoleFunctorFlags::Null,
|
||||
"The screen position of the gizmo in normalized (0-1) ndc space");
|
||||
AZ_CVAR(
|
||||
bool,
|
||||
ed_viewportStickySelect,
|
||||
true,
|
||||
nullptr,
|
||||
AZ::ConsoleFunctorFlags::Null,
|
||||
"Sticky select implies a single click will not change selection with an entity already selected");
|
||||
|
||||
// strings related to new viewport interaction model (EditorTransformComponentSelection)
|
||||
static const char* const TogglePivotTitleRightClick = "Toggle pivot";
|
||||
@@ -1790,7 +1783,8 @@ namespace AzToolsFramework
|
||||
|
||||
CheckDirtyEntityIds();
|
||||
|
||||
const AzFramework::CameraState cameraState = GetCameraState(mouseInteraction.m_mouseInteraction.m_interactionId.m_viewportId);
|
||||
const AzFramework::ViewportId viewportId = mouseInteraction.m_mouseInteraction.m_interactionId.m_viewportId;
|
||||
const AzFramework::CameraState cameraState = GetCameraState(viewportId);
|
||||
|
||||
m_cachedEntityIdUnderCursor = m_editorHelpers->HandleMouseInteraction(cameraState, mouseInteraction);
|
||||
|
||||
@@ -1835,7 +1829,11 @@ namespace AzToolsFramework
|
||||
return true;
|
||||
}
|
||||
|
||||
if (ed_viewportStickySelect)
|
||||
bool stickySelect = false;
|
||||
ViewportInteraction::ViewportSettingsRequestBus::EventResult(
|
||||
stickySelect, viewportId, &ViewportInteraction::ViewportSettingsRequestBus::Events::StickySelectEnabled);
|
||||
|
||||
if (stickySelect)
|
||||
{
|
||||
// double click to deselect all
|
||||
if (Input::DeselectAll(mouseInteraction))
|
||||
@@ -1891,7 +1889,7 @@ namespace AzToolsFramework
|
||||
return false;
|
||||
}
|
||||
|
||||
if (ed_viewportStickySelect)
|
||||
if (stickySelect)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -1900,7 +1898,7 @@ namespace AzToolsFramework
|
||||
// standard toggle selection
|
||||
if (Input::IndividualSelect(clickOutcome))
|
||||
{
|
||||
if (!ed_viewportStickySelect)
|
||||
if (!stickySelect)
|
||||
{
|
||||
ChangeSelectedEntity(entityIdUnderCursor);
|
||||
}
|
||||
|
||||
-2
@@ -33,8 +33,6 @@
|
||||
|
||||
namespace AzToolsFramework
|
||||
{
|
||||
AZ_CVAR_EXTERNED(bool, ed_viewportStickySelect);
|
||||
|
||||
class EditorVisibleEntityDataCache;
|
||||
|
||||
using EntityIdSet = AZStd::unordered_set<AZ::EntityId>; //!< Alias for unordered_set of EntityIds.
|
||||
|
||||
@@ -616,8 +616,6 @@ namespace UnitTest
|
||||
|
||||
TEST_F(EditorTransformComponentSelectionViewportPickingManipulatorTestFixture, StickySingleClickWithNoSelectionWillSelectEntity)
|
||||
{
|
||||
AzToolsFramework::ed_viewportStickySelect = true;
|
||||
|
||||
PositionEntities();
|
||||
PositionCamera(m_cameraState);
|
||||
|
||||
@@ -629,7 +627,11 @@ namespace UnitTest
|
||||
const auto entity1ScreenPosition = AzFramework::WorldToScreen(m_entity1WorldTranslation, m_cameraState);
|
||||
|
||||
// click the entity in the viewport
|
||||
m_actionDispatcher->CameraState(m_cameraState)->MousePosition(entity1ScreenPosition)->MouseLButtonDown()->MouseLButtonUp();
|
||||
m_actionDispatcher->SetStickySelect(true)
|
||||
->CameraState(m_cameraState)
|
||||
->MousePosition(entity1ScreenPosition)
|
||||
->MouseLButtonDown()
|
||||
->MouseLButtonUp();
|
||||
|
||||
// entity is selected
|
||||
auto selectedEntitiesAfter = SelectedEntities();
|
||||
@@ -639,8 +641,6 @@ namespace UnitTest
|
||||
|
||||
TEST_F(EditorTransformComponentSelectionViewportPickingManipulatorTestFixture, UnstickySingleClickWithNoSelectionWillSelectEntity)
|
||||
{
|
||||
AzToolsFramework::ed_viewportStickySelect = false;
|
||||
|
||||
PositionEntities();
|
||||
PositionCamera(m_cameraState);
|
||||
|
||||
@@ -652,7 +652,11 @@ namespace UnitTest
|
||||
const auto entity1ScreenPosition = AzFramework::WorldToScreen(m_entity1WorldTranslation, m_cameraState);
|
||||
|
||||
// click the entity in the viewport
|
||||
m_actionDispatcher->CameraState(m_cameraState)->MousePosition(entity1ScreenPosition)->MouseLButtonDown()->MouseLButtonUp();
|
||||
m_actionDispatcher->SetStickySelect(false)
|
||||
->CameraState(m_cameraState)
|
||||
->MousePosition(entity1ScreenPosition)
|
||||
->MouseLButtonDown()
|
||||
->MouseLButtonUp();
|
||||
|
||||
// entity is selected
|
||||
auto selectedEntitiesAfter = SelectedEntities();
|
||||
@@ -664,8 +668,6 @@ namespace UnitTest
|
||||
EditorTransformComponentSelectionViewportPickingManipulatorTestFixture,
|
||||
StickySingleClickOffEntityWithSelectionWillNotDeselectEntity)
|
||||
{
|
||||
AzToolsFramework::ed_viewportStickySelect = true;
|
||||
|
||||
PositionEntities();
|
||||
PositionCamera(m_cameraState);
|
||||
|
||||
@@ -678,7 +680,11 @@ namespace UnitTest
|
||||
const auto clickOffPositionScreen = AzFramework::WorldToScreen(clickOffPositionWorld, m_cameraState);
|
||||
|
||||
// click the empty space in the viewport
|
||||
m_actionDispatcher->CameraState(m_cameraState)->MousePosition(clickOffPositionScreen)->MouseLButtonDown()->MouseLButtonUp();
|
||||
m_actionDispatcher->SetStickySelect(true)
|
||||
->CameraState(m_cameraState)
|
||||
->MousePosition(clickOffPositionScreen)
|
||||
->MouseLButtonDown()
|
||||
->MouseLButtonUp();
|
||||
|
||||
// entity was not deselected
|
||||
using ::testing::Eq;
|
||||
@@ -690,8 +696,6 @@ namespace UnitTest
|
||||
TEST_F(
|
||||
EditorTransformComponentSelectionViewportPickingManipulatorTestFixture, UnstickySingleClickOffEntityWithSelectionWillDeselectEntity)
|
||||
{
|
||||
AzToolsFramework::ed_viewportStickySelect = false;
|
||||
|
||||
PositionEntities();
|
||||
PositionCamera(m_cameraState);
|
||||
|
||||
@@ -703,7 +707,11 @@ namespace UnitTest
|
||||
const auto clickOffPositionScreen = AzFramework::WorldToScreen(clickOffPositionWorld, m_cameraState);
|
||||
|
||||
// click the empty space in the viewport
|
||||
m_actionDispatcher->CameraState(m_cameraState)->MousePosition(clickOffPositionScreen)->MouseLButtonDown()->MouseLButtonUp();
|
||||
m_actionDispatcher->SetStickySelect(false)
|
||||
->CameraState(m_cameraState)
|
||||
->MousePosition(clickOffPositionScreen)
|
||||
->MouseLButtonDown()
|
||||
->MouseLButtonUp();
|
||||
|
||||
// entity was deselected
|
||||
auto selectedEntitiesAfter = SelectedEntities();
|
||||
@@ -714,8 +722,6 @@ namespace UnitTest
|
||||
EditorTransformComponentSelectionViewportPickingManipulatorTestFixture,
|
||||
StickySingleClickOnNewEntityWithSelectionWillNotChangeSelectedEntity)
|
||||
{
|
||||
AzToolsFramework::ed_viewportStickySelect = true;
|
||||
|
||||
PositionEntities();
|
||||
PositionCamera(m_cameraState);
|
||||
|
||||
@@ -725,7 +731,11 @@ namespace UnitTest
|
||||
const auto entity2ScreenPosition = AzFramework::WorldToScreen(m_entity2WorldTranslation, m_cameraState);
|
||||
|
||||
// click the entity in the viewport
|
||||
m_actionDispatcher->CameraState(m_cameraState)->MousePosition(entity2ScreenPosition)->MouseLButtonDown()->MouseLButtonUp();
|
||||
m_actionDispatcher->SetStickySelect(true)
|
||||
->CameraState(m_cameraState)
|
||||
->MousePosition(entity2ScreenPosition)
|
||||
->MouseLButtonDown()
|
||||
->MouseLButtonUp();
|
||||
|
||||
// entity selection was not changed
|
||||
using ::testing::Eq;
|
||||
@@ -738,8 +748,6 @@ namespace UnitTest
|
||||
EditorTransformComponentSelectionViewportPickingManipulatorTestFixture,
|
||||
UnstickySingleClickOnNewEntityWithSelectionWillChangeSelectedEntity)
|
||||
{
|
||||
AzToolsFramework::ed_viewportStickySelect = false;
|
||||
|
||||
PositionEntities();
|
||||
PositionCamera(m_cameraState);
|
||||
|
||||
@@ -749,7 +757,11 @@ namespace UnitTest
|
||||
const auto entity2ScreenPosition = AzFramework::WorldToScreen(m_entity2WorldTranslation, m_cameraState);
|
||||
|
||||
// click the entity in the viewport
|
||||
m_actionDispatcher->CameraState(m_cameraState)->MousePosition(entity2ScreenPosition)->MouseLButtonDown()->MouseLButtonUp();
|
||||
m_actionDispatcher->SetStickySelect(false)
|
||||
->CameraState(m_cameraState)
|
||||
->MousePosition(entity2ScreenPosition)
|
||||
->MouseLButtonDown()
|
||||
->MouseLButtonUp();
|
||||
|
||||
// entity selection was changed
|
||||
using ::testing::Eq;
|
||||
@@ -762,8 +774,6 @@ namespace UnitTest
|
||||
EditorTransformComponentSelectionViewportPickingManipulatorTestFixture,
|
||||
StickyCtrlSingleClickOnNewEntityWithSelectionWillAppendSelectedEntityToSelection)
|
||||
{
|
||||
AzToolsFramework::ed_viewportStickySelect = true;
|
||||
|
||||
PositionEntities();
|
||||
PositionCamera(m_cameraState);
|
||||
|
||||
@@ -773,7 +783,7 @@ namespace UnitTest
|
||||
const auto entity2ScreenPosition = AzFramework::WorldToScreen(m_entity2WorldTranslation, m_cameraState);
|
||||
|
||||
// click the entity in the viewport
|
||||
m_actionDispatcher->CameraState(m_cameraState)
|
||||
m_actionDispatcher->SetStickySelect(true)->CameraState(m_cameraState)
|
||||
->MousePosition(entity2ScreenPosition)
|
||||
->KeyboardModifierDown(AzToolsFramework::ViewportInteraction::KeyboardModifier::Control)
|
||||
->MouseLButtonDown()
|
||||
@@ -789,8 +799,6 @@ namespace UnitTest
|
||||
EditorTransformComponentSelectionViewportPickingManipulatorTestFixture,
|
||||
UnstickyCtrlSingleClickOnNewEntityWithSelectionWillAppendSelectedEntityToSelection)
|
||||
{
|
||||
AzToolsFramework::ed_viewportStickySelect = false;
|
||||
|
||||
PositionEntities();
|
||||
PositionCamera(m_cameraState);
|
||||
|
||||
@@ -800,7 +808,8 @@ namespace UnitTest
|
||||
const auto entity2ScreenPosition = AzFramework::WorldToScreen(m_entity2WorldTranslation, m_cameraState);
|
||||
|
||||
// click the entity in the viewport
|
||||
m_actionDispatcher->CameraState(m_cameraState)
|
||||
m_actionDispatcher->SetStickySelect(false)
|
||||
->CameraState(m_cameraState)
|
||||
->MousePosition(entity2ScreenPosition)
|
||||
->KeyboardModifierDown(AzToolsFramework::ViewportInteraction::KeyboardModifier::Control)
|
||||
->MouseLButtonDown()
|
||||
@@ -816,8 +825,6 @@ namespace UnitTest
|
||||
EditorTransformComponentSelectionViewportPickingManipulatorTestFixture,
|
||||
StickyCtrlSingleClickOnEntityInSelectionWillRemoveEntityFromSelection)
|
||||
{
|
||||
AzToolsFramework::ed_viewportStickySelect = true;
|
||||
|
||||
PositionEntities();
|
||||
PositionCamera(m_cameraState);
|
||||
|
||||
@@ -827,7 +834,8 @@ namespace UnitTest
|
||||
const auto entity2ScreenPosition = AzFramework::WorldToScreen(m_entity2WorldTranslation, m_cameraState);
|
||||
|
||||
// click the entity in the viewport
|
||||
m_actionDispatcher->CameraState(m_cameraState)
|
||||
m_actionDispatcher->SetStickySelect(true)
|
||||
->CameraState(m_cameraState)
|
||||
->MousePosition(entity2ScreenPosition)
|
||||
->KeyboardModifierDown(AzToolsFramework::ViewportInteraction::KeyboardModifier::Control)
|
||||
->MouseLButtonDown()
|
||||
@@ -843,8 +851,6 @@ namespace UnitTest
|
||||
EditorTransformComponentSelectionViewportPickingManipulatorTestFixture,
|
||||
UnstickyCtrlSingleClickOnEntityInSelectionWillRemoveEntityFromSelection)
|
||||
{
|
||||
AzToolsFramework::ed_viewportStickySelect = false;
|
||||
|
||||
PositionEntities();
|
||||
PositionCamera(m_cameraState);
|
||||
|
||||
@@ -854,7 +860,8 @@ namespace UnitTest
|
||||
const auto entity2ScreenPosition = AzFramework::WorldToScreen(m_entity2WorldTranslation, m_cameraState);
|
||||
|
||||
// click the entity in the viewport
|
||||
m_actionDispatcher->CameraState(m_cameraState)
|
||||
m_actionDispatcher->SetStickySelect(false)
|
||||
->CameraState(m_cameraState)
|
||||
->MousePosition(entity2ScreenPosition)
|
||||
->KeyboardModifierDown(AzToolsFramework::ViewportInteraction::KeyboardModifier::Control)
|
||||
->MouseLButtonDown()
|
||||
@@ -868,8 +875,6 @@ namespace UnitTest
|
||||
|
||||
TEST_F(EditorTransformComponentSelectionViewportPickingManipulatorTestFixture, BoxSelectWithNoInitialSelectionAddsEntitiesToSelection)
|
||||
{
|
||||
AzToolsFramework::ed_viewportStickySelect = true;
|
||||
|
||||
PositionEntities();
|
||||
PositionCamera(m_cameraState);
|
||||
|
||||
@@ -882,7 +887,8 @@ namespace UnitTest
|
||||
const auto endingPositionWorldBoxSelect = AzFramework::WorldToScreen(AZ::Vector3(5.0f, 16.5f, 9.5f), m_cameraState);
|
||||
|
||||
// perform a box select in the viewport
|
||||
m_actionDispatcher->CameraState(m_cameraState)
|
||||
m_actionDispatcher->SetStickySelect(true)
|
||||
->CameraState(m_cameraState)
|
||||
->MousePosition(beginningPositionWorldBoxSelect)
|
||||
->MouseLButtonDown()
|
||||
->MousePosition(endingPositionWorldBoxSelect)
|
||||
@@ -896,8 +902,6 @@ namespace UnitTest
|
||||
|
||||
TEST_F(EditorTransformComponentSelectionViewportPickingManipulatorTestFixture, BoxSelectWithSelectionAppendsEntitiesToSelection)
|
||||
{
|
||||
AzToolsFramework::ed_viewportStickySelect = true;
|
||||
|
||||
PositionEntities();
|
||||
PositionCamera(m_cameraState);
|
||||
|
||||
@@ -914,7 +918,8 @@ namespace UnitTest
|
||||
const auto endingPositionWorldBoxSelect2 = AzFramework::WorldToScreen(AZ::Vector3(5.0f, 16.5f, 9.5f), m_cameraState);
|
||||
|
||||
// perform a box select in the viewport (going left and right)
|
||||
m_actionDispatcher->CameraState(m_cameraState)
|
||||
m_actionDispatcher->SetStickySelect(true)
|
||||
->CameraState(m_cameraState)
|
||||
->MousePosition(beginningPositionWorldBoxSelect1)
|
||||
->MouseLButtonDown()
|
||||
->MousePosition(endingPositionWorldBoxSelect1)
|
||||
@@ -933,8 +938,6 @@ namespace UnitTest
|
||||
EditorTransformComponentSelectionViewportPickingManipulatorTestFixture,
|
||||
BoxSelectHoldingCtrlWithSelectionRemovesEntitiesFromSelection)
|
||||
{
|
||||
AzToolsFramework::ed_viewportStickySelect = true;
|
||||
|
||||
PositionEntities();
|
||||
PositionCamera(m_cameraState);
|
||||
|
||||
@@ -949,7 +952,8 @@ namespace UnitTest
|
||||
const auto endingPositionWorldBoxSelect = AzFramework::WorldToScreen(AZ::Vector3(5.0f, 16.5f, 9.5f), m_cameraState);
|
||||
|
||||
// perform a box select in the viewport
|
||||
m_actionDispatcher->CameraState(m_cameraState)
|
||||
m_actionDispatcher->SetStickySelect(true)
|
||||
->CameraState(m_cameraState)
|
||||
->MousePosition(beginningPositionWorldBoxSelect)
|
||||
->KeyboardModifierDown(AzToolsFramework::ViewportInteraction::KeyboardModifier::Control)
|
||||
->MouseLButtonDown()
|
||||
@@ -963,8 +967,6 @@ namespace UnitTest
|
||||
|
||||
TEST_F(EditorTransformComponentSelectionViewportPickingManipulatorTestFixture, StickyDoubleClickWithSelectionWillDeselectEntities)
|
||||
{
|
||||
AzToolsFramework::ed_viewportStickySelect = true;
|
||||
|
||||
PositionEntities();
|
||||
PositionCamera(m_cameraState);
|
||||
|
||||
@@ -980,7 +982,10 @@ namespace UnitTest
|
||||
const auto clickOffPositionScreen = AzFramework::WorldToScreen(clickOffPositionWorld, m_cameraState);
|
||||
|
||||
// double click to deselect entities
|
||||
m_actionDispatcher->CameraState(m_cameraState)->MousePosition(clickOffPositionScreen)->MouseLButtonDoubleClick();
|
||||
m_actionDispatcher->SetStickySelect(true)
|
||||
->CameraState(m_cameraState)
|
||||
->MousePosition(clickOffPositionScreen)
|
||||
->MouseLButtonDoubleClick();
|
||||
|
||||
// no entities are selected
|
||||
auto selectedEntitiesAfter = SelectedEntities();
|
||||
@@ -989,8 +994,6 @@ namespace UnitTest
|
||||
|
||||
TEST_F(EditorTransformComponentSelectionViewportPickingManipulatorTestFixture, UnstickyUndoOperationForChangeInSelectionIsAtomic)
|
||||
{
|
||||
AzToolsFramework::ed_viewportStickySelect = false;
|
||||
|
||||
PositionEntities();
|
||||
PositionCamera(m_cameraState);
|
||||
|
||||
@@ -1000,7 +1003,11 @@ namespace UnitTest
|
||||
const auto entity2ScreenPosition = AzFramework::WorldToScreen(m_entity2WorldTranslation, m_cameraState);
|
||||
|
||||
// single click select entity2
|
||||
m_actionDispatcher->CameraState(m_cameraState)->MousePosition(entity2ScreenPosition)->MouseLButtonDown()->MouseLButtonUp();
|
||||
m_actionDispatcher->SetStickySelect(false)
|
||||
->CameraState(m_cameraState)
|
||||
->MousePosition(entity2ScreenPosition)
|
||||
->MouseLButtonDown()
|
||||
->MouseLButtonUp();
|
||||
|
||||
// undo action
|
||||
AzToolsFramework::ToolsApplicationRequestBus::Broadcast(&AzToolsFramework::ToolsApplicationRequestBus::Events::UndoPressed);
|
||||
|
||||
Reference in New Issue
Block a user