Open 3D Engine AzToolsFramework API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AzToolsFramework::ViewportInteraction Namespace Reference

Viewport related types that are used when interacting with the viewport. More...

Classes

class  EditorEntityViewportInteractionRequests
 Editor entity requests to be made about the viewport. More...
 
class  EditorModifierKeyRequests
 An interface to query editor modifier keys. More...
 
class  EditorViewportInputTimeNowRequests
 
class  Helpers
 
struct  InteractionId
 Information relevant when interacting with a particular viewport. More...
 
class  InternalMouseViewportRequests
 Interface for internal handling mouse viewport events.
 
class  InternalViewportSelectionRequests
 
struct  KeyboardModifiers
 Interface over keyboard modifier to query which key is pressed. More...
 
class  MainEditorViewportInteractionRequests
 Viewport requests that are only guaranteed to be serviced by the Main Editor viewport. More...
 
struct  MouseButtons
 Interface over mouse buttons to query which button is pressed. More...
 
struct  MouseInteraction
 State relating to an individual mouse interaction. More...
 
struct  MouseInteractionEvent
 
struct  MousePick
 Data representing a mouse pick ray. More...
 
class  MouseViewportRequests
 Interface for handling mouse viewport events. More...
 
struct  ProjectedViewportRay
 A ray projection, originating from a point and extending in a direction specified as a normal. More...
 
class  ViewportDisplayNotifications
 Interface for viewport selection behaviors. More...
 
class  ViewportEBusTraits
 
class  ViewportInteractionNotifications
 Notifications for a specific viewport relating to user input/interactions. More...
 
class  ViewportInteractionRequests
 Requests that can be made to the viewport to query and modify its state. More...
 
class  ViewportMouseCursorRequests
 Viewport requests for managing the viewport cursor state. More...
 
class  ViewportNotificationsEBusTraits
 The EBusTraits for ViewportInteractionNotifications. More...
 
class  ViewportSelectionRequests
 
class  ViewportSettingNotifications
 An interface to notify when changes to viewport settings have happened. More...
 
class  ViewportSettingsRequests
 Interface to return only viewport specific settings (e.g. snapping). More...
 

Typedefs

using ViewportRequestsEBusTraits = ViewportEBusTraits
 The EBusTraits for ViewportInteractionRequests.
 
using ViewportMouseRequestBus = AZ::EBus< MouseViewportRequests, ViewportRequestsEBusTraits >
 A bus to listen to just the MouseViewportRequests.
 
using ViewportInteractionRequestBus = AZ::EBus< ViewportInteractionRequests, ViewportRequestsEBusTraits >
 Type to inherit to implement ViewportInteractionRequests.
 
using ViewportInteractionNotificationBus = AZ::EBus< ViewportInteractionNotifications, ViewportNotificationsEBusTraits >
 Type to inherit to implement ViewportInteractionNotifications.
 
using ViewportSettingsRequestBus = AZ::EBus< ViewportSettingsRequests, ViewportRequestsEBusTraits >
 Type to inherit to implement ViewportSettingsRequests.
 
using ViewportSettingsNotificationBus = AZ::EBus< ViewportSettingNotifications, ViewportRequestsEBusTraits >
 
using MainEditorViewportInteractionRequestBus = AZ::EBus< MainEditorViewportInteractionRequests, ViewportRequestsEBusTraits >
 Type to inherit to implement MainEditorViewportInteractionRequests.
 
using EditorEntityViewportInteractionRequestBus = AZ::EBus< EditorEntityViewportInteractionRequests, ViewportRequestsEBusTraits >
 
using EditorModifierKeyRequestBus = AZ::EBus< EditorModifierKeyRequests >
 
using EditorViewportInputTimeNowRequestBus = AZ::EBus< EditorViewportInputTimeNowRequests >
 
using ViewportMouseCursorRequestBus = AZ::EBus< ViewportMouseCursorRequests, ViewportRequestsEBusTraits >
 Type to inherit to implement MainEditorViewportInteractionRequests.
 

Enumerations

enum class  MouseInteractionResult { Manipulator , Viewport , None }
 Result of handling mouse interaction. More...
 
enum class  CursorStyleOverride { Forbidden }
 The style of cursor override.
 
enum class  KeyboardModifier : AZ::u32 {
  None = 0 , Alt = 0x01 , Shift = 0x02 , Ctrl = 0x04 ,
  Control = Ctrl
}
 Flags to represent each modifier key. More...
 
enum class  MouseButton : AZ::u32 { None = 0 , Left = 0x01 , Middle = 0x02 , Right = 0x04 }
 Flags to represent each mouse button. More...
 
enum class  MouseEvent {
  Up , Down , DoubleClick , Wheel ,
  Move
}
 The type of mouse event that occurred. More...
 

Functions

ProjectedViewportRay ViewportScreenToWorldRay (const AzFramework::ViewportId viewportId, const AzFramework::ScreenPoint &screenPoint)
 Utility function to return a viewport ray using the ViewportInteractionRequestBus.
 
KeyboardModifiers QueryKeyboardModifiers ()
 Convenience method to call the above EditorModifierKeyRequestBus's QueryKeyModifiers event.
 
float MouseWheelDelta (const MouseInteractionEvent &mouseInteractionEvent)
 Checked access to mouse wheel delta - ensure event originated from the mouse wheel.
 
ProjectedViewportRay ViewportScreenToWorldRay (const AzFramework::CameraState &cameraState, const AzFramework::ScreenPoint &screenPoint)
 Utility function to return a viewport ray.
 
QPoint QPointFromScreenPoint (const AzFramework::ScreenPoint &screenPoint)
 Return QPoint from AzFramework::ScreenPoint.
 
AzFramework::ScreenPoint ScreenPointFromQPoint (const QPoint &qpoint)
 Return AzFramework::ScreenPoint from QPoint.
 
AZ::u32 TranslateMouseButtons (const Qt::MouseButtons buttons)
 Map from Qt -> Open 3D Engine buttons.>>>>>>> main.
 
AZ::u32 TranslateKeyboardModifiers (const Qt::KeyboardModifiers modifiers)
 Map from Qt -> Open 3D Engine modifiers.
 
KeyboardModifiers BuildKeyboardModifiers (const Qt::KeyboardModifiers modifiers)
 Interface to translate Qt modifiers to Open 3D Engine modifiers.
 
MouseButtons BuildMouseButtons (const Qt::MouseButtons buttons)
 Interface to translate Qt buttons to Open 3D Engine buttons.
 
MouseButtons MouseButtonsFromButton (MouseButton button)
 Generate mouse buttons from single button enum.
 
MousePick BuildMousePick (const AzFramework::CameraState &cameraState, const AzFramework::ScreenPoint &screenPoint)
 Build a mouse pick from the specified mouse position and camera state.
 
MouseInteraction BuildMouseInteraction (const MousePick &mousePick, MouseButtons buttons, InteractionId interactionId, KeyboardModifiers modifiers)
 Create a mouse interaction from the specified pick, buttons, interaction id and keyboard modifiers.
 
MouseButtons BuildMouseButtons (const MouseButton button)
 Create a mouse buttons from the specified mouse button.
 
MouseInteractionEvent BuildMouseInteractionEvent (const MouseInteraction &mouseInteraction, MouseEvent event, bool cursorCaptured=false)
 Create a mouse interaction event from the specified interaction and event.
 
void ViewportInteractionReflect (AZ::ReflectContext *context)
 Reflect all viewport related types.
 

Detailed Description

Viewport related types that are used when interacting with the viewport.

Enumeration Type Documentation

◆ KeyboardModifier

Flags to represent each modifier key.

Enumerator
None 

No keyboard modifier.

Alt 

Alt keyboard modifier.

Shift 

Shift keyboard modifier.

Ctrl 

Ctrl keyboard modifier.

Control 

Alias for Ctrl modifier.

◆ MouseButton

Flags to represent each mouse button.

Enumerator
None 

No mouse buttons.

Left 

Left mouse button.

Middle 

Middle mouse button.

Right 

Right mouse button.

◆ MouseEvent

The type of mouse event that occurred.

Enumerator
Up 

Mouse up event,.

Down 

Mouse down event.

DoubleClick 

Mouse double click event.

Wheel 

Mouse wheel event.

Move 

Mouse move event.

◆ MouseInteractionResult

Result of handling mouse interaction.

Enumerator
Manipulator 

The manipulator manager handled the interaction.

Viewport 

The viewport handled the interaction.

None 

The interaction was not handled.

Function Documentation

◆ MouseWheelDelta()

float AzToolsFramework::ViewportInteraction::MouseWheelDelta ( const MouseInteractionEvent mouseInteractionEvent)
inline

Checked access to mouse wheel delta - ensure event originated from the mouse wheel.

Special friend function to return the mouse wheel delta (scroll amount) if the event was of type MouseEvent::Wheel.