feedback from PR

Signed-off-by: greerdv <greerdv@amazon.com>
This commit is contained in:
greerdv
2021-11-22 18:46:29 +00:00
parent bd4e012eeb
commit 03e5fd213c
2 changed files with 22 additions and 29 deletions
@@ -142,7 +142,7 @@ namespace PhysX
if (mouseInteraction.m_mouseEvent == AzToolsFramework::ViewportInteraction::MouseEvent::Wheel && if (mouseInteraction.m_mouseEvent == AzToolsFramework::ViewportInteraction::MouseEvent::Wheel &&
mouseInteraction.m_mouseInteraction.m_keyboardModifiers.Ctrl()) mouseInteraction.m_mouseInteraction.m_keyboardModifiers.Ctrl())
{ {
int direction = MouseWheelDelta(mouseInteraction) > 0.0f ? -1 : 1; const int direction = MouseWheelDelta(mouseInteraction) > 0.0f ? -1 : 1;
AZ::u32 currentModeIndex = static_cast<AZ::u32>(m_subMode); AZ::u32 currentModeIndex = static_cast<AZ::u32>(m_subMode);
AZ::u32 numSubModes = static_cast<AZ::u32>(SubMode::NumModes); AZ::u32 numSubModes = static_cast<AZ::u32>(SubMode::NumModes);
AZ::u32 nextModeIndex = (currentModeIndex + numSubModes + direction) % m_subModes.size(); AZ::u32 nextModeIndex = (currentModeIndex + numSubModes + direction) % m_subModes.size();
@@ -160,29 +160,18 @@ namespace PhysX
void ColliderComponentMode::SetCurrentMode(SubMode newMode) void ColliderComponentMode::SetCurrentMode(SubMode newMode)
{ {
if (auto subMode = m_subModes.find(newMode); subMode != m_subModes.end()) auto subMode = m_subModes.find(newMode);
{ AZ_Assert(subMode != m_subModes.end(), "Submode not found:%d", newMode);
m_subModes[m_subMode]->Teardown(GetEntityComponentIdPair()); m_subModes[m_subMode]->Teardown(GetEntityComponentIdPair());
m_subMode = newMode; m_subMode = newMode;
m_subModes[m_subMode]->Setup(GetEntityComponentIdPair()); m_subModes[m_subMode]->Setup(GetEntityComponentIdPair());
const auto modeIndex = static_cast<size_t>(newMode); const auto modeIndex = static_cast<size_t>(newMode);
if (modeIndex < m_buttonIds.size()) AZ_Assert(modeIndex < m_buttonIds.size(), "Invalid mode index %i.", modeIndex);
{ AzToolsFramework::ViewportUi::ViewportUiRequestBus::Event(
AzToolsFramework::ViewportUi::ViewportUiRequestBus::Event( AzToolsFramework::ViewportUi::DefaultViewportId,
AzToolsFramework::ViewportUi::DefaultViewportId, &AzToolsFramework::ViewportUi::ViewportUiRequestBus::Events::SetClusterActiveButton, m_modeSelectionClusterId,
&AzToolsFramework::ViewportUi::ViewportUiRequestBus::Events::SetClusterActiveButton, m_modeSelectionClusterId, m_buttonIds[modeIndex]);
m_buttonIds[modeIndex]);
}
else
{
AZ_Error("PhysX Collider Component Mode", false, "Invalid mode index %i.", modeIndex);
}
}
else
{
AZ_Assert(false, "Submode not found:%d", newMode);
}
} }
AzToolsFramework::ViewportUi::ClusterId ColliderComponentMode::GetClusterId() const AzToolsFramework::ViewportUi::ClusterId ColliderComponentMode::GetClusterId() const
@@ -261,7 +250,6 @@ namespace PhysX
&AzToolsFramework::ViewportUi::ViewportUiRequestBus::Events::CreateCluster, AzToolsFramework::ViewportUi::Alignment::TopLeft); &AzToolsFramework::ViewportUi::ViewportUiRequestBus::Events::CreateCluster, AzToolsFramework::ViewportUi::Alignment::TopLeft);
// create and register the buttons // create and register the buttons
m_buttonIds.resize(static_cast<size_t>(SubMode::NumModes));
m_buttonIds[static_cast<size_t>(SubMode::Offset)] = RegisterClusterButton(m_modeSelectionClusterId, "Move"); m_buttonIds[static_cast<size_t>(SubMode::Offset)] = RegisterClusterButton(m_modeSelectionClusterId, "Move");
m_buttonIds[static_cast<size_t>(SubMode::Rotation)] = RegisterClusterButton(m_modeSelectionClusterId, "Rotate"); m_buttonIds[static_cast<size_t>(SubMode::Rotation)] = RegisterClusterButton(m_modeSelectionClusterId, "Rotate");
m_buttonIds[static_cast<size_t>(SubMode::Dimensions)] = RegisterClusterButton(m_modeSelectionClusterId, "Scale"); m_buttonIds[static_cast<size_t>(SubMode::Dimensions)] = RegisterClusterButton(m_modeSelectionClusterId, "Scale");
@@ -282,6 +270,10 @@ namespace PhysX
{ {
SetCurrentMode(SubMode::Dimensions); SetCurrentMode(SubMode::Dimensions);
} }
else
{
AZ_Error("PhysX Collider Component Mode", false, "Unrecognized button ID.");
}
}; };
m_modeSelectionHandler = AZ::Event<AzToolsFramework::ViewportUi::ButtonId>::Handler(onButtonClicked); m_modeSelectionHandler = AZ::Event<AzToolsFramework::ViewportUi::ButtonId>::Handler(onButtonClicked);
@@ -31,22 +31,22 @@ namespace PhysX
ColliderComponentMode(const AZ::EntityComponentIdPair& entityComponentIdPair, AZ::Uuid componentType); ColliderComponentMode(const AZ::EntityComponentIdPair& entityComponentIdPair, AZ::Uuid componentType);
~ColliderComponentMode(); ~ColliderComponentMode();
// EditorBaseComponentMode ... // EditorBaseComponentMode overrides ...
void Refresh() override; void Refresh() override;
AZStd::vector<AzToolsFramework::ActionOverride> PopulateActionsImpl() override; AZStd::vector<AzToolsFramework::ActionOverride> PopulateActionsImpl() override;
AZStd::vector<AzToolsFramework::ViewportUi::ClusterId> PopulateViewportUiImpl() override; AZStd::vector<AzToolsFramework::ViewportUi::ClusterId> PopulateViewportUiImpl() override;
// ColliderComponentModeBus ... // ColliderComponentModeBus overrides ...
SubMode GetCurrentMode() override; SubMode GetCurrentMode() override;
void SetCurrentMode(SubMode index) override; void SetCurrentMode(SubMode index) override;
// ColliderComponentModeUiBus ... // ColliderComponentModeUiBus overrides ...
AzToolsFramework::ViewportUi::ButtonId GetOffsetButtonId() const override; AzToolsFramework::ViewportUi::ButtonId GetOffsetButtonId() const override;
AzToolsFramework::ViewportUi::ButtonId GetRotationButtonId() const override; AzToolsFramework::ViewportUi::ButtonId GetRotationButtonId() const override;
AzToolsFramework::ViewportUi::ClusterId GetClusterId() const override; AzToolsFramework::ViewportUi::ClusterId GetClusterId() const override;
AzToolsFramework::ViewportUi::ButtonId GetDimensionsButtonId() const override; AzToolsFramework::ViewportUi::ButtonId GetDimensionsButtonId() const override;
// ComponentMode ... // ComponentMode overrides ...
AZStd::string GetComponentModeName() const override; AZStd::string GetComponentModeName() const override;
private: private:
@@ -66,7 +66,8 @@ namespace PhysX
AzToolsFramework::ViewportUi::ClusterId AzToolsFramework::ViewportUi::ClusterId
m_modeSelectionClusterId; //!< Viewport UI cluster for changing sub mode. m_modeSelectionClusterId; //!< Viewport UI cluster for changing sub mode.
AZStd::vector<AzToolsFramework::ViewportUi::ButtonId> m_buttonIds; //!< Ids for the Viewport UI buttons for each mode. //! Ids for the Viewport UI buttons for each mode.
AZStd::fixed_vector< AzToolsFramework::ViewportUi::ButtonId, static_cast<size_t>(SubMode::NumModes)> m_buttonIds;
AZ::Event<AzToolsFramework::ViewportUi::ButtonId>::Handler AZ::Event<AzToolsFramework::ViewportUi::ButtonId>::Handler
m_modeSelectionHandler; //!< Event handler for sub mode changes. m_modeSelectionHandler; //!< Event handler for sub mode changes.