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::ManipulatorManagerRequests Class Referenceabstract

EBus interface used to send requests to ManipulatorManager. More...

#include <ManipulatorBus.h>

Inherits AZ::EBusTraits.

Public Types

using BusIdType = ManipulatorManagerId
 

Public Member Functions

virtual void RegisterManipulator (AZStd::shared_ptr< BaseManipulator > manipulator)=0
 
virtual void UnregisterManipulator (BaseManipulator *manipulator)=0
 
virtual void DeleteManipulatorBound (Picking::RegisteredBoundId boundId)=0
 Delete a manipulator bound.
 
virtual void SetBoundDirty (Picking::RegisteredBoundId boundId)=0
 
virtual bool Interacting () const =0
 Returns true if the manipulator manager is currently interacting, otherwise false.
 
virtual Picking::RegisteredBoundId UpdateBound (ManipulatorId manipulatorId, Picking::RegisteredBoundId boundId, const Picking::BoundRequestShapeBase &boundShapeData)=0
 

Static Public Attributes

static const AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::ById
 
static const AZ::EBusHandlerPolicy HandlerPolicy = AZ::EBusHandlerPolicy::Single
 

Detailed Description

EBus interface used to send requests to ManipulatorManager.

Member Function Documentation

◆ RegisterManipulator()

virtual void AzToolsFramework::ManipulatorManagerRequests::RegisterManipulator ( AZStd::shared_ptr< BaseManipulator manipulator)
pure virtual

Register a manipulator with the Manipulator Manager.

Parameters
manipulatorThe manipulator parameter is passed as a shared_ptr so that the system responsible for managing manipulators can maintain ownership of the manipulator even if is destroyed while in use.

◆ SetBoundDirty()

virtual void AzToolsFramework::ManipulatorManagerRequests::SetBoundDirty ( Picking::RegisteredBoundId  boundId)
pure virtual

Mark the bound of a manipulator dirty so it's excluded from mouse hit detection. This should be called whenever a manipulator is moved.

◆ UnregisterManipulator()

virtual void AzToolsFramework::ManipulatorManagerRequests::UnregisterManipulator ( BaseManipulator manipulator)
pure virtual

Unregister a manipulator from the Manipulator Manager. After unregistering the manipulator, it will be excluded from mouse hit detection and will not receive any mouse action events. The Manipulator Manager will also relinquish ownership of the manipulator.

◆ UpdateBound()

virtual Picking::RegisteredBoundId AzToolsFramework::ManipulatorManagerRequests::UpdateBound ( ManipulatorId  manipulatorId,
Picking::RegisteredBoundId  boundId,
const Picking::BoundRequestShapeBase boundShapeData 
)
pure virtual

Update the bound for a manipulator. If boundId hasn't been registered before or it's invalid, a new bound is created and set using boundShapeData.

Parameters
manipulatorIdThe id of the manipulator whose bound needs to update.
boundIdThe id of the bound that needs to update.
boundShapeDataThe pointer to the new bound shape data.
Returns
If boundId has been registered return the same id, otherwise create a new bound and return its id.

Member Data Documentation

◆ AddressPolicy

const AZ::EBusAddressPolicy AzToolsFramework::ManipulatorManagerRequests::AddressPolicy = AZ::EBusAddressPolicy::ById
static

We can have multiple manipulator managers. In the case where there are multiple viewports, each displaying a different set of entities, a different manipulator manager is required to provide a different collision space for each viewport so that mouse hit detection can be handled properly.


The documentation for this class was generated from the following file: