Expose setting to adjust angular manipulator circle bound (#3932)
* add debug drawing for angular manipulator bounds Signed-off-by: hultonha <hultonha@amazon.co.uk> * remove editor viewport settings from RenderViewport Signed-off-by: hultonha <hultonha@amazon.co.uk> * add setting for angular manipulator circle bound Signed-off-by: hultonha <hultonha@amazon.co.uk> * update minimum value allowed for some camera settings Signed-off-by: hultonha <hultonha@amazon.co.uk> * updates following review feedback, some small tidy-up Signed-off-by: hultonha <hultonha@amazon.co.uk> * update comment Signed-off-by: hultonha <hultonha@amazon.co.uk>
This commit is contained in:
+16
-12
@@ -17,14 +17,14 @@ namespace AzManipulatorTestFramework
|
||||
//! Implementation of the viewport interaction model to handle viewport interaction requests.
|
||||
class ViewportInteraction
|
||||
: public ViewportInteractionInterface
|
||||
, private AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::Handler
|
||||
, public AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::Handler
|
||||
, public AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Handler
|
||||
{
|
||||
public:
|
||||
ViewportInteraction();
|
||||
~ViewportInteraction();
|
||||
|
||||
// ViewportInteractionInterface ...
|
||||
AzFramework::CameraState GetCameraState() override;
|
||||
// ViewportInteractionInterface overrides ...
|
||||
void SetCameraState(const AzFramework::CameraState& cameraState) override;
|
||||
AzFramework::DebugDisplayRequests& GetDebugDisplay() override;
|
||||
void EnableGridSnaping() override;
|
||||
@@ -34,20 +34,24 @@ namespace AzManipulatorTestFramework
|
||||
void SetGridSize(float size) override;
|
||||
void SetAngularStep(float step) override;
|
||||
int GetViewportId() const override;
|
||||
|
||||
// ViewportInteractionRequestBus overrides ...
|
||||
AzFramework::CameraState GetCameraState() override;
|
||||
AzFramework::ScreenPoint ViewportWorldToScreen(const AZ::Vector3& worldPosition);
|
||||
AZStd::optional<AZ::Vector3> ViewportScreenToWorld(const AzFramework::ScreenPoint& screenPosition, float depth) override;
|
||||
AZStd::optional<AzToolsFramework::ViewportInteraction::ProjectedViewportRay> ViewportScreenToWorldRay(
|
||||
const AzFramework::ScreenPoint& screenPosition) override;
|
||||
float DeviceScalingFactor() override;
|
||||
private:
|
||||
// ViewportInteractionRequestBus ...
|
||||
bool GridSnappingEnabled() override;
|
||||
float GridSize() override;
|
||||
bool ShowGrid() override;
|
||||
bool AngleSnappingEnabled() override;
|
||||
float AngleStep() override;
|
||||
float ManipulatorLineBoundWidth() override;
|
||||
|
||||
AzFramework::ScreenPoint ViewportWorldToScreen(const AZ::Vector3& worldPosition);
|
||||
// ViewportSettingsRequestBus overrides ...
|
||||
bool GridSnappingEnabled() const override;
|
||||
float GridSize() const override;
|
||||
bool ShowGrid() const override;
|
||||
bool AngleSnappingEnabled() const override;
|
||||
float AngleStep() const override;
|
||||
float ManipulatorLineBoundWidth() const override;
|
||||
float ManipulatorCircleBoundWidth() const override;
|
||||
|
||||
private:
|
||||
AZStd::unique_ptr<NullDebugDisplayRequests> m_nullDebugDisplayRequests;
|
||||
const int m_viewportId = 1234; // Arbitrary viewport id for manipulator tests
|
||||
|
||||
@@ -25,10 +25,12 @@ namespace AzManipulatorTestFramework
|
||||
: m_nullDebugDisplayRequests(AZStd::make_unique<NullDebugDisplayRequests>())
|
||||
{
|
||||
AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::Handler::BusConnect(m_viewportId);
|
||||
AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Handler::BusConnect(m_viewportId);
|
||||
}
|
||||
|
||||
ViewportInteraction::~ViewportInteraction()
|
||||
{
|
||||
AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Handler::BusDisconnect();
|
||||
AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::Handler::BusDisconnect();
|
||||
}
|
||||
|
||||
@@ -37,32 +39,37 @@ namespace AzManipulatorTestFramework
|
||||
return m_cameraState;
|
||||
}
|
||||
|
||||
bool ViewportInteraction::GridSnappingEnabled()
|
||||
bool ViewportInteraction::GridSnappingEnabled() const
|
||||
{
|
||||
return m_gridSnapping;
|
||||
}
|
||||
|
||||
float ViewportInteraction::GridSize()
|
||||
float ViewportInteraction::GridSize() const
|
||||
{
|
||||
return m_gridSize;
|
||||
}
|
||||
|
||||
bool ViewportInteraction::ShowGrid()
|
||||
bool ViewportInteraction::ShowGrid() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ViewportInteraction::AngleSnappingEnabled()
|
||||
bool ViewportInteraction::AngleSnappingEnabled() const
|
||||
{
|
||||
return m_angularSnapping;
|
||||
}
|
||||
|
||||
float ViewportInteraction::AngleStep()
|
||||
float ViewportInteraction::AngleStep() const
|
||||
{
|
||||
return m_angularStep;
|
||||
}
|
||||
|
||||
float ViewportInteraction::ManipulatorLineBoundWidth()
|
||||
float ViewportInteraction::ManipulatorLineBoundWidth() const
|
||||
{
|
||||
return 0.1f;
|
||||
}
|
||||
|
||||
float ViewportInteraction::ManipulatorCircleBoundWidth() const
|
||||
{
|
||||
return 0.1f;
|
||||
}
|
||||
|
||||
@@ -49,9 +49,9 @@ namespace UnitTest
|
||||
bool snapping = false;
|
||||
|
||||
m_viewportInteraction->EnableGridSnaping();
|
||||
AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::EventResult(
|
||||
AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::EventResult(
|
||||
snapping, m_viewportInteraction->GetViewportId(),
|
||||
&AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::Events::GridSnappingEnabled);
|
||||
&AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Events::GridSnappingEnabled);
|
||||
|
||||
EXPECT_TRUE(snapping);
|
||||
}
|
||||
@@ -61,9 +61,9 @@ namespace UnitTest
|
||||
bool snapping = true;
|
||||
|
||||
m_viewportInteraction->DisableGridSnaping();
|
||||
AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::EventResult(
|
||||
AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::EventResult(
|
||||
snapping, m_viewportInteraction->GetViewportId(),
|
||||
&AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::Events::GridSnappingEnabled);
|
||||
&AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Events::GridSnappingEnabled);
|
||||
|
||||
EXPECT_FALSE(snapping);
|
||||
}
|
||||
@@ -76,9 +76,9 @@ namespace UnitTest
|
||||
m_viewportInteraction->SetGridSize(expectedGridSize);
|
||||
|
||||
m_viewportInteraction->DisableGridSnaping();
|
||||
AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::EventResult(
|
||||
AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::EventResult(
|
||||
gridSize, m_viewportInteraction->GetViewportId(),
|
||||
&AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::Events::GridSize);
|
||||
&AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Events::GridSize);
|
||||
|
||||
EXPECT_EQ(gridSize, expectedGridSize);
|
||||
}
|
||||
@@ -88,9 +88,9 @@ namespace UnitTest
|
||||
bool snapping = false;
|
||||
|
||||
m_viewportInteraction->EnableAngularSnaping();
|
||||
AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::EventResult(
|
||||
AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::EventResult(
|
||||
snapping, m_viewportInteraction->GetViewportId(),
|
||||
&AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::Events::AngleSnappingEnabled);
|
||||
&AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Events::AngleSnappingEnabled);
|
||||
|
||||
EXPECT_TRUE(snapping);
|
||||
}
|
||||
@@ -100,9 +100,9 @@ namespace UnitTest
|
||||
bool snapping = true;
|
||||
|
||||
m_viewportInteraction->DisableAngularSnaping();
|
||||
AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::EventResult(
|
||||
AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::EventResult(
|
||||
snapping, m_viewportInteraction->GetViewportId(),
|
||||
&AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::Events::AngleSnappingEnabled);
|
||||
&AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Events::AngleSnappingEnabled);
|
||||
|
||||
EXPECT_FALSE(snapping);
|
||||
}
|
||||
@@ -114,9 +114,9 @@ namespace UnitTest
|
||||
|
||||
m_viewportInteraction->SetAngularStep(expectedAngularStep);
|
||||
|
||||
AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::EventResult(
|
||||
AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::EventResult(
|
||||
angularStep, m_viewportInteraction->GetViewportId(),
|
||||
&AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::Events::AngleStep);
|
||||
&AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Events::AngleStep);
|
||||
|
||||
EXPECT_EQ(angularStep, expectedAngularStep);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user