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:
hultonha
2021-09-06 14:22:57 +01:00
committed by GitHub
parent 6cc9a33845
commit a374ea29f2
25 changed files with 239 additions and 166 deletions
@@ -92,21 +92,12 @@ namespace AtomToolsFramework
// AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::Handler ...
AzFramework::CameraState GetCameraState() override;
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) override;
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;
//! Set interface for providing viewport specific settings (e.g. snapping properties).
void SetViewportSettings(const AzToolsFramework::ViewportInteraction::ViewportSettings* viewportSettings);
// AzToolsFramework::ViewportInteraction::ViewportMouseCursorRequestBus::Handler ...
void BeginCursorCapture() override;
void EndCursorCapture() override;
@@ -148,7 +139,7 @@ namespace AtomToolsFramework
AzFramework::ViewportControllerListPtr m_controllerList;
// The default camera for our viewport i.e. the one used when a camera entity hasn't been activated.
AZ::RPI::ViewPtr m_defaultCamera;
// Our viewport-local auxgeom pipeline for supplemental rendering.
// Our viewport-local aux geom pipeline for supplemental rendering.
AZ::RPI::AuxGeomDrawPtr m_auxGeom;
// Used to keep track of a pending resize event to avoid initialization before window activate.
bool m_windowResizedEvent = false;
@@ -160,8 +151,6 @@ namespace AtomToolsFramework
QElapsedTimer m_renderTimer;
// The time of the last recorded tick event from the system tick bus.
AZ::ScriptTimePoint m_time;
// The viewport settings (e.g. grid snapping, grid size) for this viewport.
const AzToolsFramework::ViewportInteraction::ViewportSettings* m_viewportSettings = nullptr;
// Maps our internal Qt events into AzFramework InputChannels for our ViewportControllerList.
AzToolsFramework::QtEventToAzInputMapper* m_inputChannelMapper = nullptr;
};