Preparatory work to allow for more viewport integration tests (#3961)
* preparatory work to allow for more viewport integration tests Signed-off-by: hultonha <hultonha@amazon.co.uk> * minor grammatical fix Signed-off-by: hultonha <hultonha@amazon.co.uk> * fix for missed bus call update Signed-off-by: hultonha <hultonha@amazon.co.uk>
This commit is contained in:
+3
-3
@@ -91,12 +91,12 @@ namespace AzManipulatorTestFramework
|
||||
AzToolsFramework::ViewportInteraction::MousePick BuildMousePick(
|
||||
const AzFramework::ScreenPoint& screenPoint, const AzFramework::CameraState& cameraState)
|
||||
{
|
||||
const auto screenToWorld = AzFramework::ScreenToWorld(screenPoint, cameraState);
|
||||
const auto nearPlaneWorldPosition = AzFramework::ScreenToWorld(screenPoint, cameraState);
|
||||
|
||||
AzToolsFramework::ViewportInteraction::MousePick mousePick;
|
||||
mousePick.m_screenCoordinates = screenPoint;
|
||||
mousePick.m_rayOrigin = screenToWorld;
|
||||
mousePick.m_rayDirection = (screenToWorld - cameraState.m_position).GetNormalized();
|
||||
mousePick.m_rayOrigin = cameraState.m_position;
|
||||
mousePick.m_rayDirection = (nearPlaneWorldPosition - cameraState.m_position).GetNormalized();
|
||||
|
||||
return mousePick;
|
||||
}
|
||||
|
||||
+4
-4
@@ -16,8 +16,7 @@ namespace AzManipulatorTestFramework
|
||||
using MouseInteractionEvent = AzToolsFramework::ViewportInteraction::MouseInteractionEvent;
|
||||
|
||||
//! Implementation of the manipulator interface using bus calls to access to the manipulator manager.
|
||||
class IndirectCallManipulatorManager
|
||||
: public ManipulatorManagerInterface
|
||||
class IndirectCallManipulatorManager : public ManipulatorManagerInterface
|
||||
{
|
||||
public:
|
||||
IndirectCallManipulatorManager(ViewportInteractionInterface& viewportInteraction);
|
||||
@@ -39,11 +38,12 @@ namespace AzManipulatorTestFramework
|
||||
|
||||
void IndirectCallManipulatorManager::ConsumeMouseInteractionEvent(const MouseInteractionEvent& event)
|
||||
{
|
||||
m_viewportInteraction.UpdateVisibility();
|
||||
|
||||
DrawManipulators();
|
||||
AzToolsFramework::EditorInteractionSystemViewportSelectionRequestBus::Event(
|
||||
AzToolsFramework::GetEntityContextId(),
|
||||
&AzToolsFramework::ViewportInteraction::InternalMouseViewportRequests::InternalHandleAllMouseInteractions,
|
||||
event);
|
||||
&AzToolsFramework::ViewportInteraction::InternalMouseViewportRequests::InternalHandleAllMouseInteractions, event);
|
||||
DrawManipulators();
|
||||
}
|
||||
|
||||
|
||||
@@ -26,10 +26,12 @@ namespace AzManipulatorTestFramework
|
||||
{
|
||||
AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::Handler::BusConnect(m_viewportId);
|
||||
AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Handler::BusConnect(m_viewportId);
|
||||
AzToolsFramework::ViewportInteraction::EditorEntityViewportInteractionRequestBus::Handler::BusConnect(m_viewportId);
|
||||
}
|
||||
|
||||
ViewportInteraction::~ViewportInteraction()
|
||||
{
|
||||
AzToolsFramework::ViewportInteraction::EditorEntityViewportInteractionRequestBus::Handler::BusDisconnect();
|
||||
AzToolsFramework::ViewportInteraction::ViewportSettingsRequestBus::Handler::BusDisconnect();
|
||||
AzToolsFramework::ViewportInteraction::ViewportInteractionRequestBus::Handler::BusDisconnect();
|
||||
}
|
||||
@@ -74,6 +76,16 @@ namespace AzManipulatorTestFramework
|
||||
return 0.1f;
|
||||
}
|
||||
|
||||
void ViewportInteraction::FindVisibleEntities(AZStd::vector<AZ::EntityId>& visibleEntitiesOut)
|
||||
{
|
||||
visibleEntitiesOut.assign(m_entityVisibilityQuery.Begin(), m_entityVisibilityQuery.End());
|
||||
}
|
||||
|
||||
void ViewportInteraction::UpdateVisibility()
|
||||
{
|
||||
m_entityVisibilityQuery.UpdateVisibility(m_cameraState);
|
||||
}
|
||||
|
||||
AzFramework::ScreenPoint ViewportInteraction::ViewportWorldToScreen(const AZ::Vector3& worldPosition)
|
||||
{
|
||||
return AzFramework::WorldToScreen(worldPosition, m_cameraState);
|
||||
|
||||
Reference in New Issue
Block a user