Camera Component, Editor Viewport Widget refactoring.

- Handle changing of active camera entirely inside CameraComponentController
- Remove a LOT of legacy Cry things related to cameras
- Add a CameraSystemComponent to handle ActiveCameraRequestBus and CameraSystemRequestBus

Signed-off-by: Yuriy Toporovskyy <toporovskyy.y@gmail.com>
This commit is contained in:
Yuriy Toporovskyy
2021-08-04 10:39:57 -04:00
parent 6d2765ef42
commit 73fee0c57e
47 changed files with 1126 additions and 6046 deletions
@@ -23,6 +23,8 @@
#include <MathConversion.h>
#include <QtViewPaneManager.h>
#include <AzFramework/Components/CameraBus.h>
using namespace AudioControls;
@@ -148,18 +150,21 @@ void CAudioControlsEditorPlugin::ExecuteTrigger(const AZStd::string_view sTrigge
Audio::AudioSystemRequestBus::BroadcastResult(ms_nAudioTriggerID, &Audio::AudioSystemRequestBus::Events::GetAudioTriggerID, sTriggerName.data());
if (ms_nAudioTriggerID != INVALID_AUDIO_CONTROL_ID)
{
AZ::Transform activeCameraTm = AZ::Transform::CreateIdentity();
EBUS_EVENT_RESULT(activeCameraTm, Camera::ActiveCameraRequestBus, GetActiveCameraTransform);
const AZ::Matrix3x4 cameraMatrix = AZ::Matrix3x4::CreateFromTransform(activeCameraTm);
Audio::SAudioRequest request;
request.nFlags = Audio::eARF_PRIORITY_NORMAL;
const AZ::Matrix3x4 listenerTxfm = AZ::Matrix3x4::CreateIdentity();
Audio::SAudioListenerRequestData<Audio::eALRT_SET_POSITION> requestData(listenerTxfm);
Audio::SAudioListenerRequestData<Audio::eALRT_SET_POSITION> requestData(cameraMatrix);
requestData.oNewPosition.NormalizeForwardVec();
requestData.oNewPosition.NormalizeUpVec();
request.pData = &requestData;
Audio::AudioSystemRequestBus::Broadcast(&Audio::AudioSystemRequestBus::Events::PushRequest, request);
ms_pIAudioProxy->SetPosition(listenerTxfm);
ms_pIAudioProxy->SetPosition(cameraMatrix);
ms_pIAudioProxy->ExecuteTrigger(ms_nAudioTriggerID);
}
}