Merge branch 'development' into redcode/driller_removal
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
This commit is contained in:
@@ -479,9 +479,11 @@ namespace AZ
|
||||
|
||||
// Merge Command Line arguments
|
||||
constexpr bool executeRegDumpCommands = false;
|
||||
SettingsRegistryMergeUtils::MergeSettingsToRegistry_CommandLine(*m_settingsRegistry, m_commandLine, executeRegDumpCommands);
|
||||
|
||||
#if defined(AZ_DEBUG_BUILD) || defined(AZ_PROFILE_BUILD)
|
||||
// Skip over merging the User Registry in non-debug and profile configurations
|
||||
SettingsRegistryMergeUtils::MergeSettingsToRegistry_O3deUserRegistry(*m_settingsRegistry, AZ_TRAIT_OS_PLATFORM_CODENAME, {});
|
||||
#endif
|
||||
SettingsRegistryMergeUtils::MergeSettingsToRegistry_CommandLine(*m_settingsRegistry, m_commandLine, executeRegDumpCommands);
|
||||
SettingsRegistryMergeUtils::MergeSettingsToRegistry_AddRuntimeFilePaths(*m_settingsRegistry);
|
||||
|
||||
|
||||
@@ -12,13 +12,57 @@
|
||||
|
||||
namespace AzFramework::Terrain
|
||||
{
|
||||
// Create a handler that can be accessed from Python scripts to receive terrain change notifications.
|
||||
class TerrainDataNotificationHandler final
|
||||
: public AzFramework::Terrain::TerrainDataNotificationBus::Handler
|
||||
, public AZ::BehaviorEBusHandler
|
||||
{
|
||||
public:
|
||||
AZ_EBUS_BEHAVIOR_BINDER(
|
||||
TerrainDataNotificationHandler,
|
||||
"{A83EF103-295A-4653-8279-F30FBF3F9037}",
|
||||
AZ::SystemAllocator,
|
||||
OnTerrainDataCreateBegin,
|
||||
OnTerrainDataCreateEnd,
|
||||
OnTerrainDataDestroyBegin,
|
||||
OnTerrainDataDestroyEnd,
|
||||
OnTerrainDataChanged);
|
||||
|
||||
void OnTerrainDataCreateBegin() override
|
||||
{
|
||||
Call(FN_OnTerrainDataCreateBegin);
|
||||
}
|
||||
|
||||
void OnTerrainDataCreateEnd() override
|
||||
{
|
||||
Call(FN_OnTerrainDataCreateEnd);
|
||||
}
|
||||
|
||||
void OnTerrainDataDestroyBegin() override
|
||||
{
|
||||
Call(FN_OnTerrainDataDestroyBegin);
|
||||
}
|
||||
|
||||
void OnTerrainDataDestroyEnd() override
|
||||
{
|
||||
Call(FN_OnTerrainDataDestroyEnd);
|
||||
}
|
||||
|
||||
void OnTerrainDataChanged(
|
||||
const AZ::Aabb& dirtyRegion, AzFramework::Terrain::TerrainDataNotifications::TerrainDataChangedMask dataChangedMask) override
|
||||
{
|
||||
Call(FN_OnTerrainDataChanged, dirtyRegion, dataChangedMask);
|
||||
}
|
||||
};
|
||||
|
||||
void TerrainDataRequests::Reflect(AZ::ReflectContext* context)
|
||||
{
|
||||
if (AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(context))
|
||||
{
|
||||
behaviorContext->EBus<AzFramework::Terrain::TerrainDataRequestBus>("TerrainDataRequestBus")
|
||||
->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Common)
|
||||
->Attribute(AZ::Script::Attributes::Category, "Terrain")
|
||||
->Event("GetHeight", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetHeight)
|
||||
->Attribute(AZ::Script::Attributes::Module, "terrain")
|
||||
->Event("GetNormal", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetNormal)
|
||||
->Event("GetMaxSurfaceWeight", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetMaxSurfaceWeight)
|
||||
->Event("GetMaxSurfaceWeightFromVector2",
|
||||
@@ -34,8 +78,24 @@ namespace AzFramework::Terrain
|
||||
->Event("GetTerrainAabb", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetTerrainAabb)
|
||||
->Event("GetTerrainHeightQueryResolution",
|
||||
&AzFramework::Terrain::TerrainDataRequestBus::Events::GetTerrainHeightQueryResolution)
|
||||
->Event("GetHeight", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetHeightVal)
|
||||
->Event("GetHeightFromVector2", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetHeightValFromVector2)
|
||||
->Event("GetHeightFromFloats", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetHeightValFromFloats)
|
||||
;
|
||||
|
||||
behaviorContext->EBus<AzFramework::Terrain::TerrainDataNotificationBus>("TerrainDataNotificationBus")
|
||||
->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Common)
|
||||
->Attribute(AZ::Script::Attributes::Category, "Terrain")
|
||||
->Attribute(AZ::Script::Attributes::Module, "terrain")
|
||||
->Event("OnTerrainDataCreateBegin", &AzFramework::Terrain::TerrainDataNotifications::OnTerrainDataCreateBegin)
|
||||
->Event("OnTerrainDataCreateEnd", &AzFramework::Terrain::TerrainDataNotifications::OnTerrainDataCreateEnd)
|
||||
->Event("OnTerrainDataDestroyBegin", &AzFramework::Terrain::TerrainDataNotifications::OnTerrainDataDestroyBegin)
|
||||
->Event("OnTerrainDataDestroyEnd", &AzFramework::Terrain::TerrainDataNotifications::OnTerrainDataDestroyEnd)
|
||||
->Event("OnTerrainDataChanged", &AzFramework::Terrain::TerrainDataNotifications::OnTerrainDataChanged)
|
||||
->Handler<AzFramework::Terrain::TerrainDataNotificationHandler>()
|
||||
;
|
||||
}
|
||||
|
||||
//TerrainDataNotificationHandler::Reflect(context);
|
||||
}
|
||||
} // namespace AzFramework::Terrain
|
||||
|
||||
@@ -144,13 +144,31 @@ namespace AzFramework
|
||||
return result;
|
||||
}
|
||||
SurfaceData::SurfacePoint BehaviorContextGetSurfacePointFromVector2(
|
||||
const AZ::Vector2& inPosition,
|
||||
Sampler sampleFilter = Sampler::DEFAULT) const
|
||||
const AZ::Vector2& inPosition, Sampler sampleFilter = Sampler::DEFAULT) const
|
||||
{
|
||||
SurfaceData::SurfacePoint result;
|
||||
GetSurfacePointFromVector2(inPosition, result, sampleFilter);
|
||||
return result;
|
||||
}
|
||||
|
||||
// Functions without the optional bool* parameter that can be used from Python tests.
|
||||
float GetHeightVal(AZ::Vector3 position, Sampler sampler = Sampler::BILINEAR) const
|
||||
{
|
||||
bool terrainExists;
|
||||
return GetHeight(position, sampler, &terrainExists);
|
||||
}
|
||||
|
||||
float GetHeightValFromVector2(AZ::Vector2 position, Sampler sampler = Sampler::BILINEAR) const
|
||||
{
|
||||
bool terrainExists;
|
||||
return GetHeightFromVector2(position, sampler, &terrainExists);
|
||||
}
|
||||
|
||||
float GetHeightValFromFloats(float x, float y, Sampler sampler = Sampler::BILINEAR) const
|
||||
{
|
||||
bool terrainExists;
|
||||
return GetHeightFromFloats(x, y, sampler, &terrainExists);
|
||||
}
|
||||
};
|
||||
using TerrainDataRequestBus = AZ::EBus<TerrainDataRequests>;
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
+3
-3
@@ -52,7 +52,7 @@ namespace AzToolsFramework
|
||||
|
||||
void ReadOnlyEntitySystemComponent::RefreshReadOnlyState(const EntityIdList& entityIds)
|
||||
{
|
||||
for (const AZ::EntityId entityId : entityIds)
|
||||
for (const AZ::EntityId& entityId : entityIds)
|
||||
{
|
||||
bool wasReadOnly = m_readOnlystates[entityId];
|
||||
QueryReadOnlyStateForEntity(entityId);
|
||||
@@ -67,10 +67,10 @@ namespace AzToolsFramework
|
||||
|
||||
void ReadOnlyEntitySystemComponent::RefreshReadOnlyStateForAllEntities()
|
||||
{
|
||||
for (auto elem : m_readOnlystates)
|
||||
for (auto& elem : m_readOnlystates)
|
||||
{
|
||||
AZ::EntityId entityId = elem.first;
|
||||
bool wasReadOnly = m_readOnlystates[entityId];
|
||||
bool wasReadOnly = elem.second;
|
||||
QueryReadOnlyStateForEntity(entityId);
|
||||
|
||||
if (bool isReadOnly = m_readOnlystates[entityId]; wasReadOnly != isReadOnly)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
namespace AzToolsFramework
|
||||
{
|
||||
AZ_CVAR(bool, cl_manipulatorDrawDebug, false, nullptr, AZ::ConsoleFunctorFlags::Null, "Enable debug drawing for Manipulators");
|
||||
AZ_CVAR(bool, ed_manipulatorDrawDebug, false, nullptr, AZ::ConsoleFunctorFlags::Null, "Enable debug drawing for Manipulators");
|
||||
|
||||
const AZ::Color BaseManipulator::s_defaultMouseOverColor = AZ::Color(1.0f, 1.0f, 0.0f, 1.0f); // yellow
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace AzFramework
|
||||
|
||||
namespace AzToolsFramework
|
||||
{
|
||||
AZ_CVAR_EXTERNED(bool, cl_manipulatorDrawDebug);
|
||||
AZ_CVAR_EXTERNED(bool, ed_manipulatorDrawDebug);
|
||||
|
||||
namespace UndoSystem
|
||||
{
|
||||
|
||||
@@ -207,7 +207,7 @@ namespace AzToolsFramework
|
||||
? AZ::Transform::CreateFromQuaternionAndTranslation(m_visualOrientationOverride, GetLocalPosition())
|
||||
: GetLocalTransform();
|
||||
|
||||
if (cl_manipulatorDrawDebug)
|
||||
if (ed_manipulatorDrawDebug)
|
||||
{
|
||||
if (PerformingAction())
|
||||
{
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <AzToolsFramework/Manipulators/PlanarManipulator.h>
|
||||
#include <AzToolsFramework/Manipulators/SplineSelectionManipulator.h>
|
||||
#include <AzToolsFramework/Maths/TransformUtils.h>
|
||||
#include <AzToolsFramework/Viewport/ViewportSettings.h>
|
||||
#include <AzToolsFramework/ViewportSelection/EditorSelectionUtil.h>
|
||||
|
||||
AZ_CVAR(
|
||||
@@ -30,6 +31,13 @@ AZ_CVAR(
|
||||
nullptr,
|
||||
AZ::ConsoleFunctorFlags::Null,
|
||||
"Display additional debug drawing for manipulator bounds");
|
||||
AZ_CVAR(
|
||||
float,
|
||||
ed_planarManipulatorBoundScaleFactor,
|
||||
1.75f,
|
||||
nullptr,
|
||||
AZ::ConsoleFunctorFlags::Null,
|
||||
"The scale factor to apply to the planar manipulator bounds");
|
||||
|
||||
namespace AzToolsFramework
|
||||
{
|
||||
@@ -78,7 +86,8 @@ namespace AzToolsFramework
|
||||
{
|
||||
// check if we actually needed to flip the axis, if so, write to shouldCorrect
|
||||
// so we know and are able to draw it differently if we wish (e.g. hollow if flipped)
|
||||
const bool correcting = ShouldFlipCameraAxis(worldFromLocal, localPosition, axis, cameraState);
|
||||
const bool correcting =
|
||||
FlipManipulatorAxesTowardsView() && ShouldFlipCameraAxis(worldFromLocal, localPosition, axis, cameraState);
|
||||
|
||||
// the corrected axis, if no flip was required, output == input
|
||||
correctedAxis = correcting ? -axis : axis;
|
||||
@@ -325,7 +334,8 @@ namespace AzToolsFramework
|
||||
float ManipulatorView::ManipulatorViewScaleMultiplier(
|
||||
const AZ::Vector3& worldPosition, const AzFramework::CameraState& cameraState) const
|
||||
{
|
||||
return ScreenSizeFixed() ? CalculateScreenToWorldMultiplier(worldPosition, cameraState) : 1.0f;
|
||||
const float screenScale = ScreenSizeFixed() ? CalculateScreenToWorldMultiplier(worldPosition, cameraState) : 1.0f;
|
||||
return screenScale * ManipulatorViewBaseScale();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -342,47 +352,77 @@ namespace AzToolsFramework
|
||||
const AZ::Vector3 axis1 = m_axis1;
|
||||
const AZ::Vector3 axis2 = m_axis2;
|
||||
|
||||
CameraCorrectAxis(
|
||||
axis1, m_cameraCorrectedAxis1, managerState, mouseInteraction, manipulatorState.m_worldFromLocal,
|
||||
manipulatorState.m_localPosition, cameraState);
|
||||
CameraCorrectAxis(
|
||||
axis2, m_cameraCorrectedAxis2, managerState, mouseInteraction, manipulatorState.m_worldFromLocal,
|
||||
manipulatorState.m_localPosition, cameraState);
|
||||
// support partial application of CameraCorrectAxis to reduce redundant call site parameters
|
||||
auto cameraCorrectAxisPartialFn =
|
||||
[&manipulatorState, &managerState, &mouseInteraction, &cameraState](const AZ::Vector3& inAxis, AZ::Vector3& outAxis)
|
||||
{
|
||||
CameraCorrectAxis(
|
||||
inAxis, outAxis, managerState, mouseInteraction, manipulatorState.m_worldFromLocal, manipulatorState.m_localPosition,
|
||||
cameraState);
|
||||
};
|
||||
|
||||
const Picking::BoundShapeQuad quadBound = CalculateQuadBound(
|
||||
manipulatorState.m_localPosition, manipulatorState, m_cameraCorrectedAxis1, m_cameraCorrectedAxis2,
|
||||
m_size *
|
||||
ManipulatorViewScaleMultiplier(
|
||||
manipulatorState.m_worldFromLocal.TransformPoint(manipulatorState.m_localPosition), cameraState));
|
||||
cameraCorrectAxisPartialFn(axis1, m_cameraCorrectedAxis1);
|
||||
cameraCorrectAxisPartialFn(axis2, m_cameraCorrectedAxis2);
|
||||
cameraCorrectAxisPartialFn(axis1 * axis1.Dot(m_offset), m_cameraCorrectedOffsetAxis1);
|
||||
cameraCorrectAxisPartialFn(axis2 * axis2.Dot(m_offset), m_cameraCorrectedOffsetAxis2);
|
||||
|
||||
const AZ::Vector3 totalScale =
|
||||
manipulatorState.m_nonUniformScale * AZ::Vector3(manipulatorState.m_worldFromLocal.GetUniformScale());
|
||||
|
||||
const auto cameraCorrectedVisualOffset = (m_cameraCorrectedOffsetAxis1 + m_cameraCorrectedOffsetAxis2) * totalScale.GetReciprocal();
|
||||
const auto viewScale =
|
||||
ManipulatorViewScaleMultiplier(manipulatorState.m_worldFromLocal.TransformPoint(manipulatorState.m_localPosition), cameraState);
|
||||
const Picking::BoundShapeQuad quadBoundVisual = CalculateQuadBound(
|
||||
manipulatorState.m_localPosition + (cameraCorrectedVisualOffset * viewScale), manipulatorState, m_cameraCorrectedAxis1,
|
||||
m_cameraCorrectedAxis2, m_size * viewScale);
|
||||
|
||||
debugDisplay.SetLineWidth(defaultLineWidth(manipulatorState.m_mouseOver));
|
||||
|
||||
debugDisplay.SetColor(ViewColor(manipulatorState.m_mouseOver, m_axis1Color, m_mouseOverColor).GetAsVector4());
|
||||
debugDisplay.DrawLine(quadBound.m_corner4, quadBound.m_corner3);
|
||||
debugDisplay.DrawLine(quadBoundVisual.m_corner4, quadBoundVisual.m_corner3);
|
||||
debugDisplay.DrawLine(quadBoundVisual.m_corner1, quadBoundVisual.m_corner2);
|
||||
|
||||
debugDisplay.SetColor(ViewColor(manipulatorState.m_mouseOver, m_axis2Color, m_mouseOverColor).GetAsVector4());
|
||||
debugDisplay.DrawLine(quadBound.m_corner2, quadBound.m_corner3);
|
||||
debugDisplay.DrawLine(quadBoundVisual.m_corner2, quadBoundVisual.m_corner3);
|
||||
debugDisplay.DrawLine(quadBoundVisual.m_corner1, quadBoundVisual.m_corner4);
|
||||
|
||||
if (manipulatorState.m_mouseOver)
|
||||
{
|
||||
debugDisplay.SetColor(Vector3ToVector4(m_mouseOverColor.GetAsVector3(), 0.5f));
|
||||
|
||||
debugDisplay.CullOff();
|
||||
debugDisplay.DrawQuad(quadBound.m_corner1, quadBound.m_corner2, quadBound.m_corner3, quadBound.m_corner4);
|
||||
debugDisplay.DrawQuad(
|
||||
quadBoundVisual.m_corner1, quadBoundVisual.m_corner2, quadBoundVisual.m_corner3, quadBoundVisual.m_corner4);
|
||||
debugDisplay.CullOn();
|
||||
}
|
||||
|
||||
RefreshBoundInternal(managerId, manipulatorId, quadBound);
|
||||
// total size of bounds to use for mouse intersection
|
||||
const float hitSize = m_size * ed_planarManipulatorBoundScaleFactor;
|
||||
// size of edge bounds (the 'margin/border' outside the visual representation)
|
||||
const float edgeSize = (hitSize - m_size) * 0.5f;
|
||||
const AZ::Vector3 edgeOffset =
|
||||
((m_cameraCorrectedAxis1 * edgeSize + m_cameraCorrectedAxis2 * edgeSize) * totalScale.GetReciprocal());
|
||||
const auto cameraCorrectedHitOffset = cameraCorrectedVisualOffset - edgeOffset;
|
||||
const Picking::BoundShapeQuad quadBoundHit = CalculateQuadBound(
|
||||
manipulatorState.m_localPosition + (cameraCorrectedHitOffset * viewScale), manipulatorState, m_cameraCorrectedAxis1,
|
||||
m_cameraCorrectedAxis2, hitSize * viewScale);
|
||||
|
||||
if (ed_manipulatorDisplayBoundDebug)
|
||||
{
|
||||
debugDisplay.DrawQuad(quadBoundHit.m_corner1, quadBoundHit.m_corner2, quadBoundHit.m_corner3, quadBoundHit.m_corner4);
|
||||
}
|
||||
|
||||
RefreshBoundInternal(managerId, manipulatorId, quadBoundHit);
|
||||
}
|
||||
|
||||
void ManipulatorViewQuadBillboard::Draw(
|
||||
const ManipulatorManagerId managerId,
|
||||
const ManipulatorManagerState& /*managerState*/,
|
||||
[[maybe_unused]] const ManipulatorManagerState& managerState,
|
||||
const ManipulatorId manipulatorId,
|
||||
const ManipulatorState& manipulatorState,
|
||||
AzFramework::DebugDisplayRequests& debugDisplay,
|
||||
const AzFramework::CameraState& cameraState,
|
||||
const ViewportInteraction::MouseInteraction& /*mouseInteraction*/)
|
||||
[[maybe_unused]] const ViewportInteraction::MouseInteraction& mouseInteraction)
|
||||
{
|
||||
const Picking::BoundShapeQuad quadBound = CalculateQuadBoundBillboard(
|
||||
manipulatorState.m_localPosition, manipulatorState.m_worldFromLocal,
|
||||
@@ -442,7 +482,7 @@ namespace AzToolsFramework
|
||||
|
||||
void ManipulatorViewLineSelect::Draw(
|
||||
const ManipulatorManagerId managerId,
|
||||
const ManipulatorManagerState& /*managerState*/,
|
||||
[[maybe_unused]] const ManipulatorManagerState& managerState,
|
||||
const ManipulatorId manipulatorId,
|
||||
const ManipulatorState& manipulatorState,
|
||||
AzFramework::DebugDisplayRequests& debugDisplay,
|
||||
@@ -570,7 +610,7 @@ namespace AzToolsFramework
|
||||
|
||||
void ManipulatorViewSphere::Draw(
|
||||
const ManipulatorManagerId managerId,
|
||||
const ManipulatorManagerState& /*managerState*/,
|
||||
[[maybe_unused]] const ManipulatorManagerState& managerState,
|
||||
const ManipulatorId manipulatorId,
|
||||
const ManipulatorState& manipulatorState,
|
||||
AzFramework::DebugDisplayRequests& debugDisplay,
|
||||
@@ -599,12 +639,12 @@ namespace AzToolsFramework
|
||||
|
||||
void ManipulatorViewCircle::Draw(
|
||||
const ManipulatorManagerId managerId,
|
||||
const ManipulatorManagerState& /*managerState*/,
|
||||
[[maybe_unused]] const ManipulatorManagerState& managerState,
|
||||
const ManipulatorId manipulatorId,
|
||||
const ManipulatorState& manipulatorState,
|
||||
AzFramework::DebugDisplayRequests& debugDisplay,
|
||||
const AzFramework::CameraState& cameraState,
|
||||
const ViewportInteraction::MouseInteraction& /*mouseInteraction*/)
|
||||
[[maybe_unused]] const ViewportInteraction::MouseInteraction& mouseInteraction)
|
||||
{
|
||||
const float viewScale =
|
||||
ManipulatorViewScaleMultiplier(manipulatorState.m_worldFromLocal.TransformPoint(manipulatorState.m_localPosition), cameraState);
|
||||
@@ -665,7 +705,7 @@ namespace AzToolsFramework
|
||||
|
||||
void ManipulatorViewSplineSelect::Draw(
|
||||
const ManipulatorManagerId managerId,
|
||||
const ManipulatorManagerState& /*managerState*/,
|
||||
[[maybe_unused]] const ManipulatorManagerState& managerState,
|
||||
const ManipulatorId manipulatorId,
|
||||
const ManipulatorState& manipulatorState,
|
||||
AzFramework::DebugDisplayRequests& debugDisplay,
|
||||
@@ -698,12 +738,17 @@ namespace AzToolsFramework
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
AZStd::unique_ptr<ManipulatorViewQuad> CreateManipulatorViewQuad(
|
||||
const PlanarManipulator& planarManipulator, const AZ::Color& axis1Color, const AZ::Color& axis2Color, const float size)
|
||||
const PlanarManipulator& planarManipulator,
|
||||
const AZ::Color& axis1Color,
|
||||
const AZ::Color& axis2Color,
|
||||
const AZ::Vector3& offset,
|
||||
const float size)
|
||||
{
|
||||
AZStd::unique_ptr<ManipulatorViewQuad> viewQuad = AZStd::make_unique<ManipulatorViewQuad>();
|
||||
viewQuad->m_axis1 = planarManipulator.GetAxis1();
|
||||
viewQuad->m_axis2 = planarManipulator.GetAxis2();
|
||||
viewQuad->m_size = size;
|
||||
viewQuad->m_offset = offset;
|
||||
viewQuad->m_axis1Color = axis1Color;
|
||||
viewQuad->m_axis2Color = axis2Color;
|
||||
return viewQuad;
|
||||
|
||||
@@ -54,7 +54,7 @@ namespace AzToolsFramework
|
||||
AZ_RTTI(ManipulatorView, "{7529E3E9-39B3-4D15-899A-FA13770113B2}")
|
||||
|
||||
ManipulatorView();
|
||||
ManipulatorView(bool screenSizeFixed);
|
||||
explicit ManipulatorView(bool screenSizeFixed);
|
||||
virtual ~ManipulatorView();
|
||||
ManipulatorView(ManipulatorView&&) = default;
|
||||
ManipulatorView& operator=(ManipulatorView&&) = default;
|
||||
@@ -117,13 +117,16 @@ namespace AzToolsFramework
|
||||
|
||||
AZ::Vector3 m_axis1 = AZ::Vector3(1.0f, 0.0f, 0.0f);
|
||||
AZ::Vector3 m_axis2 = AZ::Vector3(0.0f, 1.0f, 0.0f);
|
||||
AZ::Vector3 m_offset = AZ::Vector3::CreateZero();
|
||||
AZ::Color m_axis1Color = AZ::Color(1.0f, 0.0f, 0.0f, 1.0f);
|
||||
AZ::Color m_axis2Color = AZ::Color(1.0f, 0.0f, 0.0f, 1.0f);
|
||||
float m_size = 0.06f; //!< size to render and do mouse ray intersection tests against.
|
||||
|
||||
private:
|
||||
AZ::Vector3 m_cameraCorrectedAxis1;
|
||||
AZ::Vector3 m_cameraCorrectedAxis2;
|
||||
AZ::Vector3 m_cameraCorrectedAxis1; //!< First axis of quad (should be orthogonal to second axis).
|
||||
AZ::Vector3 m_cameraCorrectedAxis2; //!< Second axis of quad (should be orthogonal to first axis).
|
||||
AZ::Vector3 m_cameraCorrectedOffsetAxis1; //!< Offset along first axis (parallel with first axis).
|
||||
AZ::Vector3 m_cameraCorrectedOffsetAxis2; //!< Offset along second axis (parallel with second axis).
|
||||
};
|
||||
|
||||
//! A screen aligned quad, centered at the position of the manipulator, display filled.
|
||||
@@ -379,7 +382,11 @@ namespace AzToolsFramework
|
||||
// Helpers to create various manipulator views.
|
||||
|
||||
AZStd::unique_ptr<ManipulatorViewQuad> CreateManipulatorViewQuad(
|
||||
const PlanarManipulator& planarManipulator, const AZ::Color& axis1Color, const AZ::Color& axis2Color, float size);
|
||||
const PlanarManipulator& planarManipulator,
|
||||
const AZ::Color& axis1Color,
|
||||
const AZ::Color& axis2Color,
|
||||
const AZ::Vector3& offset,
|
||||
float size);
|
||||
|
||||
AZStd::unique_ptr<ManipulatorViewQuadBillboard> CreateManipulatorViewQuadBillboard(const AZ::Color& color, float size);
|
||||
|
||||
|
||||
+1
-1
@@ -132,7 +132,7 @@ namespace AzToolsFramework
|
||||
const AzFramework::CameraState& cameraState,
|
||||
const ViewportInteraction::MouseInteraction& mouseInteraction)
|
||||
{
|
||||
if (cl_manipulatorDrawDebug)
|
||||
if (ed_manipulatorDrawDebug)
|
||||
{
|
||||
const AZ::Transform combined = TransformUniformScale(GetSpace()) * GetLocalTransform();
|
||||
for (const auto& fixed : m_fixedAxes)
|
||||
|
||||
@@ -171,7 +171,7 @@ namespace AzToolsFramework
|
||||
const AzFramework::CameraState& cameraState,
|
||||
const ViewportInteraction::MouseInteraction& mouseInteraction)
|
||||
{
|
||||
if (cl_manipulatorDrawDebug)
|
||||
if (ed_manipulatorDrawDebug)
|
||||
{
|
||||
if (PerformingAction())
|
||||
{
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "ScaleManipulators.h"
|
||||
|
||||
#include <AzToolsFramework/Maths/TransformUtils.h>
|
||||
#include <AzToolsFramework/Viewport/ViewportSettings.h>
|
||||
|
||||
namespace AzToolsFramework
|
||||
{
|
||||
@@ -120,25 +121,25 @@ namespace AzToolsFramework
|
||||
void ScaleManipulators::ConfigureView(
|
||||
const float axisLength, const AZ::Color& axis1Color, const AZ::Color& axis2Color, const AZ::Color& axis3Color)
|
||||
{
|
||||
const float boxSize = 0.1f;
|
||||
const float boxHalfExtent = ScaleManipulatorBoxHalfExtent();
|
||||
const AZ::Color colors[] = { axis1Color, axis2Color, axis3Color };
|
||||
|
||||
for (size_t manipulatorIndex = 0; manipulatorIndex < m_axisScaleManipulators.size(); ++manipulatorIndex)
|
||||
{
|
||||
const auto lineLength = axisLength - boxSize;
|
||||
const auto lineLength = axisLength - (2.0f * boxHalfExtent);
|
||||
|
||||
ManipulatorViews views;
|
||||
views.emplace_back(
|
||||
CreateManipulatorViewLine(*m_axisScaleManipulators[manipulatorIndex], colors[manipulatorIndex], axisLength, m_lineBoundWidth));
|
||||
views.emplace_back(CreateManipulatorViewLine(
|
||||
*m_axisScaleManipulators[manipulatorIndex], colors[manipulatorIndex], axisLength, m_lineBoundWidth));
|
||||
views.emplace_back(CreateManipulatorViewBox(
|
||||
AZ::Transform::CreateIdentity(), colors[manipulatorIndex],
|
||||
m_axisScaleManipulators[manipulatorIndex]->GetAxis() * lineLength, AZ::Vector3(boxSize)));
|
||||
m_axisScaleManipulators[manipulatorIndex]->GetAxis() * (lineLength + boxHalfExtent), AZ::Vector3(boxHalfExtent)));
|
||||
m_axisScaleManipulators[manipulatorIndex]->SetViews(AZStd::move(views));
|
||||
}
|
||||
|
||||
ManipulatorViews views;
|
||||
views.emplace_back(CreateManipulatorViewBox(
|
||||
AZ::Transform::CreateIdentity(), AZ::Color::CreateOne(), AZ::Vector3::CreateZero(), AZ::Vector3(boxSize)));
|
||||
AZ::Transform::CreateIdentity(), AZ::Color::CreateOne(), AZ::Vector3::CreateZero(), AZ::Vector3(boxHalfExtent)));
|
||||
m_uniformScaleManipulator->SetViews(AZStd::move(views));
|
||||
}
|
||||
|
||||
|
||||
+23
-20
@@ -10,13 +10,10 @@
|
||||
|
||||
#include <AzCore/Math/VectorConversions.h>
|
||||
#include <AzToolsFramework/Manipulators/ManipulatorView.h>
|
||||
#include <AzToolsFramework/Viewport/ViewportSettings.h>
|
||||
|
||||
namespace AzToolsFramework
|
||||
{
|
||||
static const float SurfaceManipulatorTransparency = 0.75f;
|
||||
static const float LinearManipulatorAxisLength = 2.0f;
|
||||
static const float SurfaceManipulatorRadius = 0.1f;
|
||||
|
||||
static const AZ::Color LinearManipulatorXAxisColor = AZ::Color(1.0f, 0.0f, 0.0f, 1.0f);
|
||||
static const AZ::Color LinearManipulatorYAxisColor = AZ::Color(0.0f, 1.0f, 0.0f, 1.0f);
|
||||
static const AZ::Color LinearManipulatorZAxisColor = AZ::Color(0.0f, 0.0f, 1.0f, 1.0f);
|
||||
@@ -240,18 +237,16 @@ namespace AzToolsFramework
|
||||
const AZ::Color& axis2Color,
|
||||
const AZ::Color& axis3Color /*= AZ::Color(0.0f, 0.0f, 1.0f, 0.5f)*/)
|
||||
{
|
||||
const float coneLength = 0.28f;
|
||||
const float coneRadius = 0.07f;
|
||||
|
||||
const AZ::Color axesColor[] = { axis1Color, axis2Color, axis3Color };
|
||||
|
||||
const auto configureLinearView = [lineBoundWidth = m_lineBoundWidth, coneLength, axisLength,
|
||||
coneRadius](LinearManipulator* linearManipulator, const AZ::Color& color)
|
||||
const auto configureLinearView =
|
||||
[lineBoundWidth = m_lineBoundWidth, coneLength = LinearManipulatorConeLength(), axisLength,
|
||||
coneRadius = LinearManipulatorConeRadius()](LinearManipulator* linearManipulator, const AZ::Color& color)
|
||||
{
|
||||
const auto lineLength = axisLength - coneLength;
|
||||
|
||||
ManipulatorViews views;
|
||||
views.emplace_back(CreateManipulatorViewLine(*linearManipulator, color, lineLength, lineBoundWidth));
|
||||
views.emplace_back(CreateManipulatorViewLine(*linearManipulator, color, axisLength, lineBoundWidth));
|
||||
views.emplace_back(
|
||||
CreateManipulatorViewCone(*linearManipulator, color, linearManipulator->GetAxis() * lineLength, coneLength, coneRadius));
|
||||
linearManipulator->SetViews(AZStd::move(views));
|
||||
@@ -264,17 +259,23 @@ namespace AzToolsFramework
|
||||
}
|
||||
|
||||
void TranslationManipulators::ConfigurePlanarView(
|
||||
const float planeSize,
|
||||
const AZ::Color& plane1Color,
|
||||
const AZ::Color& plane2Color /*= AZ::Color(0.0f, 1.0f, 0.0f, 0.5f)*/,
|
||||
const AZ::Color& plane3Color /*= AZ::Color(0.0f, 0.0f, 1.0f, 0.5f)*/)
|
||||
{
|
||||
const float planeSize = 0.6f;
|
||||
const AZ::Color planesColor[] = { plane1Color, plane2Color, plane3Color };
|
||||
|
||||
const float linearAxisLength = LinearManipulatorAxisLength();
|
||||
const float linearConeLength = LinearManipulatorConeLength();
|
||||
for (size_t manipulatorIndex = 0; manipulatorIndex < m_planarManipulators.size(); ++manipulatorIndex)
|
||||
{
|
||||
const auto& planarManipulator = *m_planarManipulators[manipulatorIndex];
|
||||
const AZStd::shared_ptr<ManipulatorViewQuad> manipulatorView = CreateManipulatorViewQuad(
|
||||
*m_planarManipulators[manipulatorIndex], planesColor[manipulatorIndex], planesColor[(manipulatorIndex + 1) % 3], planeSize);
|
||||
*m_planarManipulators[manipulatorIndex], planesColor[manipulatorIndex], planesColor[(manipulatorIndex + 1) % 3],
|
||||
(planarManipulator.GetAxis1() + planarManipulator.GetAxis2()) *
|
||||
(((linearAxisLength - linearConeLength) * 0.5f) - (planeSize * 0.5f)),
|
||||
planeSize);
|
||||
|
||||
m_planarManipulators[manipulatorIndex]->SetViews(ManipulatorViews{ manipulatorView });
|
||||
}
|
||||
@@ -286,12 +287,11 @@ namespace AzToolsFramework
|
||||
{
|
||||
m_surfaceManipulator->SetView(CreateManipulatorViewSphere(
|
||||
color, radius,
|
||||
[](const ViewportInteraction::MouseInteraction& /*mouseInteraction*/, bool mouseOver,
|
||||
[]([[maybe_unused]] const ViewportInteraction::MouseInteraction& mouseInteraction, bool mouseOver,
|
||||
const AZ::Color& defaultColor) -> AZ::Color
|
||||
{
|
||||
const AZ::Color color[2] = {
|
||||
defaultColor,
|
||||
Vector3ToVector4(BaseManipulator::s_defaultMouseOverColor.GetAsVector3(), SurfaceManipulatorTransparency)
|
||||
defaultColor, Vector3ToVector4(BaseManipulator::s_defaultMouseOverColor.GetAsVector3(), SurfaceManipulatorOpacity())
|
||||
};
|
||||
|
||||
return color[mouseOver];
|
||||
@@ -325,16 +325,19 @@ namespace AzToolsFramework
|
||||
void ConfigureTranslationManipulatorAppearance3d(TranslationManipulators* translationManipulators)
|
||||
{
|
||||
translationManipulators->SetAxes(AZ::Vector3::CreateAxisX(), AZ::Vector3::CreateAxisY(), AZ::Vector3::CreateAxisZ());
|
||||
translationManipulators->ConfigurePlanarView(LinearManipulatorXAxisColor, LinearManipulatorYAxisColor, LinearManipulatorZAxisColor);
|
||||
translationManipulators->ConfigurePlanarView(
|
||||
PlanarManipulatorAxisLength(), LinearManipulatorXAxisColor, LinearManipulatorYAxisColor, LinearManipulatorZAxisColor);
|
||||
translationManipulators->ConfigureLinearView(
|
||||
LinearManipulatorAxisLength, LinearManipulatorXAxisColor, LinearManipulatorYAxisColor, LinearManipulatorZAxisColor);
|
||||
translationManipulators->ConfigureSurfaceView(SurfaceManipulatorRadius, SurfaceManipulatorColor);
|
||||
LinearManipulatorAxisLength(), LinearManipulatorXAxisColor, LinearManipulatorYAxisColor, LinearManipulatorZAxisColor);
|
||||
translationManipulators->ConfigureSurfaceView(SurfaceManipulatorRadius(), SurfaceManipulatorColor);
|
||||
}
|
||||
|
||||
void ConfigureTranslationManipulatorAppearance2d(TranslationManipulators* translationManipulators)
|
||||
{
|
||||
translationManipulators->SetAxes(AZ::Vector3::CreateAxisX(), AZ::Vector3::CreateAxisY());
|
||||
translationManipulators->ConfigurePlanarView(LinearManipulatorXAxisColor);
|
||||
translationManipulators->ConfigureLinearView(LinearManipulatorAxisLength, LinearManipulatorXAxisColor, LinearManipulatorYAxisColor);
|
||||
translationManipulators->ConfigurePlanarView(
|
||||
PlanarManipulatorAxisLength(), LinearManipulatorXAxisColor, LinearManipulatorYAxisColor);
|
||||
translationManipulators->ConfigureLinearView(
|
||||
LinearManipulatorAxisLength(), LinearManipulatorXAxisColor, LinearManipulatorYAxisColor);
|
||||
}
|
||||
} // namespace AzToolsFramework
|
||||
|
||||
+1
@@ -53,6 +53,7 @@ namespace AzToolsFramework
|
||||
void SetAxes(const AZ::Vector3& axis1, const AZ::Vector3& axis2, const AZ::Vector3& axis3 = AZ::Vector3::CreateAxisZ());
|
||||
|
||||
void ConfigurePlanarView(
|
||||
float planeSize,
|
||||
const AZ::Color& plane1Color,
|
||||
const AZ::Color& plane2Color = AZ::Color(0.0f, 1.0f, 0.0f, 0.5f),
|
||||
const AZ::Color& plane3Color = AZ::Color(0.0f, 0.0f, 1.0f, 0.5f));
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include <AzToolsFramework/Viewport/ViewportSettings.h>
|
||||
|
||||
namespace AzToolsFramework
|
||||
{
|
||||
constexpr AZStd::string_view FlipManipulatorAxesTowardsViewSetting = "/Amazon/Preferences/Editor/Manipulator/FlipManipulatorAxesTowardsView";
|
||||
constexpr AZStd::string_view LinearManipulatorAxisLengthSetting = "/Amazon/Preferences/Editor/Manipulator/LinearManipulatorAxisLength";
|
||||
constexpr AZStd::string_view PlanarManipulatorAxisLengthSetting = "/Amazon/Preferences/Editor/Manipulator/PlanarManipulatorAxisLength";
|
||||
constexpr AZStd::string_view SurfaceManipulatorRadiusSetting = "/Amazon/Preferences/Editor/Manipulator/SurfaceManipulatorRadius";
|
||||
constexpr AZStd::string_view SurfaceManipulatorOpacitySetting = "/Amazon/Preferences/Editor/Manipulator/SurfaceManipulatorOpacity";
|
||||
constexpr AZStd::string_view LinearManipulatorConeLengthSetting = "/Amazon/Preferences/Editor/Manipulator/LinearManipulatorConeLength";
|
||||
constexpr AZStd::string_view LinearManipulatorConeRadiusSetting = "/Amazon/Preferences/Editor/Manipulator/LinearManipulatorConeRadius";
|
||||
constexpr AZStd::string_view ScaleManipulatorBoxHalfExtentSetting = "/Amazon/Preferences/Editor/Manipulator/ScaleManipulatorBoxHalfExtent";
|
||||
constexpr AZStd::string_view RotationManipulatorRadiusSetting = "/Amazon/Preferences/Editor/Manipulator/RotationManipulatorRadius";
|
||||
constexpr AZStd::string_view ManipulatorViewBaseScaleSetting = "/Amazon/Preferences/Editor/Manipulator/ViewBaseScale";
|
||||
|
||||
bool FlipManipulatorAxesTowardsView()
|
||||
{
|
||||
return GetRegistry(FlipManipulatorAxesTowardsViewSetting, true);
|
||||
}
|
||||
|
||||
void SetFlipManipulatorAxesTowardsView(const bool enabled)
|
||||
{
|
||||
SetRegistry(FlipManipulatorAxesTowardsViewSetting, enabled);
|
||||
}
|
||||
|
||||
float LinearManipulatorAxisLength()
|
||||
{
|
||||
return aznumeric_cast<float>(GetRegistry(LinearManipulatorAxisLengthSetting, 2.0));
|
||||
}
|
||||
|
||||
void SetLinearManipulatorAxisLength(const float length)
|
||||
{
|
||||
SetRegistry(LinearManipulatorAxisLengthSetting, length);
|
||||
}
|
||||
|
||||
float PlanarManipulatorAxisLength()
|
||||
{
|
||||
return aznumeric_cast<float>(GetRegistry(PlanarManipulatorAxisLengthSetting, 0.6));
|
||||
}
|
||||
|
||||
void SetPlanarManipulatorAxisLength(const float length)
|
||||
{
|
||||
SetRegistry(PlanarManipulatorAxisLengthSetting, length);
|
||||
}
|
||||
|
||||
float SurfaceManipulatorRadius()
|
||||
{
|
||||
return aznumeric_cast<float>(GetRegistry(SurfaceManipulatorRadiusSetting, 0.1));
|
||||
}
|
||||
|
||||
void SetSurfaceManipulatorRadius(const float radius)
|
||||
{
|
||||
SetRegistry(SurfaceManipulatorRadiusSetting, radius);
|
||||
}
|
||||
|
||||
float SurfaceManipulatorOpacity()
|
||||
{
|
||||
return aznumeric_cast<float>(GetRegistry(SurfaceManipulatorOpacitySetting, 0.75));
|
||||
}
|
||||
|
||||
void SetSurfaceManipulatorOpacity(const float opacity)
|
||||
{
|
||||
SetRegistry(SurfaceManipulatorOpacitySetting, opacity);
|
||||
}
|
||||
|
||||
float LinearManipulatorConeLength()
|
||||
{
|
||||
return aznumeric_cast<float>(GetRegistry(LinearManipulatorConeLengthSetting, 0.28));
|
||||
}
|
||||
|
||||
void SetLinearManipulatorConeLength(const float length)
|
||||
{
|
||||
SetRegistry(LinearManipulatorConeLengthSetting, length);
|
||||
}
|
||||
|
||||
float LinearManipulatorConeRadius()
|
||||
{
|
||||
return aznumeric_cast<float>(GetRegistry(LinearManipulatorConeRadiusSetting, 0.1));
|
||||
}
|
||||
|
||||
void SetLinearManipulatorConeRadius(const float radius)
|
||||
{
|
||||
SetRegistry(LinearManipulatorConeRadiusSetting, radius);
|
||||
}
|
||||
|
||||
float ScaleManipulatorBoxHalfExtent()
|
||||
{
|
||||
return aznumeric_cast<float>(GetRegistry(ScaleManipulatorBoxHalfExtentSetting, 0.1));
|
||||
}
|
||||
|
||||
void SetScaleManipulatorBoxHalfExtent(const float size)
|
||||
{
|
||||
SetRegistry(ScaleManipulatorBoxHalfExtentSetting, size);
|
||||
}
|
||||
|
||||
float RotationManipulatorRadius()
|
||||
{
|
||||
return aznumeric_cast<float>(GetRegistry(RotationManipulatorRadiusSetting, 2.0));
|
||||
}
|
||||
|
||||
void SetRotationManipulatorRadius(const float radius)
|
||||
{
|
||||
SetRegistry(RotationManipulatorRadiusSetting, radius);
|
||||
}
|
||||
|
||||
float ManipulatorViewBaseScale()
|
||||
{
|
||||
return aznumeric_cast<float>(GetRegistry(ManipulatorViewBaseScaleSetting, 1.0));
|
||||
}
|
||||
|
||||
void SetManipulatorViewBaseScale(const float scale)
|
||||
{
|
||||
SetRegistry(ManipulatorViewBaseScaleSetting, scale);
|
||||
}
|
||||
} // namespace AzToolsFramework
|
||||
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <AzCore/Settings/SettingsRegistry.h>
|
||||
|
||||
namespace AzToolsFramework
|
||||
{
|
||||
template<typename T>
|
||||
void SetRegistry(const AZStd::string_view setting, T&& value)
|
||||
{
|
||||
if (auto* registry = AZ::SettingsRegistry::Get())
|
||||
{
|
||||
registry->Set(setting, AZStd::forward<T>(value));
|
||||
}
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
AZStd::remove_cvref_t<T> GetRegistry(const AZStd::string_view setting, T&& defaultValue)
|
||||
{
|
||||
AZStd::remove_cvref_t<T> value = AZStd::forward<T>(defaultValue);
|
||||
if (const auto* registry = AZ::SettingsRegistry::Get())
|
||||
{
|
||||
T potentialValue;
|
||||
if (registry->Get(potentialValue, setting))
|
||||
{
|
||||
value = AZStd::move(potentialValue);
|
||||
}
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
bool FlipManipulatorAxesTowardsView();
|
||||
void SetFlipManipulatorAxesTowardsView(bool enabled);
|
||||
|
||||
float LinearManipulatorAxisLength();
|
||||
void SetLinearManipulatorAxisLength(float length);
|
||||
|
||||
float PlanarManipulatorAxisLength();
|
||||
void SetPlanarManipulatorAxisLength(float length);
|
||||
|
||||
float SurfaceManipulatorRadius();
|
||||
void SetSurfaceManipulatorRadius(float radius);
|
||||
|
||||
float SurfaceManipulatorOpacity();
|
||||
void SetSurfaceManipulatorOpacity(float opacity);
|
||||
|
||||
float LinearManipulatorConeLength();
|
||||
void SetLinearManipulatorConeLength(float length);
|
||||
|
||||
float LinearManipulatorConeRadius();
|
||||
void SetLinearManipulatorConeRadius(float radius);
|
||||
|
||||
float ScaleManipulatorBoxHalfExtent();
|
||||
void SetScaleManipulatorBoxHalfExtent(float halfExtent);
|
||||
|
||||
float RotationManipulatorRadius();
|
||||
void SetRotationManipulatorRadius(float radius);
|
||||
|
||||
float ManipulatorViewBaseScale();
|
||||
void SetManipulatorViewBaseScale(float scale);
|
||||
} // namespace AzToolsFramework
|
||||
+4
-2
@@ -33,6 +33,7 @@
|
||||
#include <AzToolsFramework/ToolsComponents/EditorVisibilityBus.h>
|
||||
#include <AzToolsFramework/ToolsComponents/TransformComponent.h>
|
||||
#include <AzToolsFramework/Viewport/ActionBus.h>
|
||||
#include <AzToolsFramework/Viewport/ViewportSettings.h>
|
||||
#include <AzToolsFramework/ViewportSelection/EditorSelectionUtil.h>
|
||||
#include <AzToolsFramework/ViewportSelection/EditorVisibleEntityDataCache.h>
|
||||
#include <Entity/EditorEntityContextBus.h>
|
||||
@@ -1376,7 +1377,7 @@ namespace AzToolsFramework
|
||||
// view
|
||||
rotationManipulators->SetLocalAxes(AZ::Vector3::CreateAxisX(), AZ::Vector3::CreateAxisY(), AZ::Vector3::CreateAxisZ());
|
||||
rotationManipulators->ConfigureView(
|
||||
2.0f, AzFramework::ViewportColors::XAxisColor, AzFramework::ViewportColors::YAxisColor,
|
||||
RotationManipulatorRadius(), AzFramework::ViewportColors::XAxisColor, AzFramework::ViewportColors::YAxisColor,
|
||||
AzFramework::ViewportColors::ZAxisColor);
|
||||
|
||||
struct SharedRotationState
|
||||
@@ -1535,7 +1536,8 @@ namespace AzToolsFramework
|
||||
RecalculateAverageManipulatorTransform(m_entityIdManipulators.m_lookups, m_pivotOverrideFrame, m_pivotMode, m_referenceFrame));
|
||||
|
||||
scaleManipulators->SetAxes(AZ::Vector3::CreateAxisX(), AZ::Vector3::CreateAxisY(), AZ::Vector3::CreateAxisZ());
|
||||
scaleManipulators->ConfigureView(2.0f, AZ::Color::CreateOne(), AZ::Color::CreateOne(), AZ::Color::CreateOne());
|
||||
scaleManipulators->ConfigureView(
|
||||
LinearManipulatorAxisLength(), AZ::Color::CreateOne(), AZ::Color::CreateOne(), AZ::Color::CreateOne());
|
||||
|
||||
struct SharedScaleState
|
||||
{
|
||||
|
||||
@@ -506,6 +506,8 @@ set(FILES
|
||||
Viewport/ViewportMessages.cpp
|
||||
Viewport/ViewportTypes.h
|
||||
Viewport/ViewportTypes.cpp
|
||||
Viewport/ViewportSettings.h
|
||||
Viewport/ViewportSettings.cpp
|
||||
ViewportUi/Button.h
|
||||
ViewportUi/Button.cpp
|
||||
ViewportUi/ButtonGroup.h
|
||||
|
||||
Reference in New Issue
Block a user