ViewportElement.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #pragma once
  9. #include "ViewportInteraction.h"
  10. class ViewportElement
  11. {
  12. public:
  13. // Used to determine what the cursor is hovering over
  14. static bool PickElementEdges(const AZ::Entity* element,
  15. const AZ::Vector2& point,
  16. float distance,
  17. ViewportHelpers::ElementEdges& outEdges);
  18. static bool PickAnchors(const AZ::Entity* element,
  19. const AZ::Vector2& point,
  20. const AZ::Vector2& iconSize,
  21. ViewportHelpers::SelectedAnchors& outAnchors);
  22. static bool PickAxisGizmo(const AZ::Entity* element,
  23. ViewportInteraction::CoordinateSystem coordinateSystem,
  24. ViewportInteraction::InteractionMode interactionMode,
  25. const AZ::Vector2& point,
  26. const AZ::Vector2& iconSize,
  27. ViewportHelpers::GizmoParts& outGizmoParts);
  28. static bool PickCircleGizmo(const AZ::Entity* element,
  29. const AZ::Vector2& point,
  30. const AZ::Vector2& iconSize,
  31. ViewportHelpers::GizmoParts& outGizmoParts);
  32. static bool PickPivot(const AZ::Entity* element,
  33. const AZ::Vector2& point,
  34. const AZ::Vector2& iconSize);
  35. static void ResizeDirectly(HierarchyWidget* hierarchy,
  36. const AZ::EntityId& canvasId,
  37. const ViewportHelpers::ElementEdges& grabbedEdges,
  38. AZ::Entity* element,
  39. const AZ::Vector3& mouseTranslation);
  40. static void ResizeByGizmo(HierarchyWidget* hierarchy,
  41. const AZ::EntityId& canvasId,
  42. const ViewportHelpers::GizmoParts& grabbedGizmoParts,
  43. const AZ::EntityId& activeElementId,
  44. AZ::Entity* element,
  45. const AZ::Vector3& mouseTranslation);
  46. static void Rotate(HierarchyWidget* hierarchy,
  47. const AZ::EntityId& canvasId,
  48. const AZ::Vector2& lastMouseDragPos,
  49. const AZ::EntityId& activeElementId,
  50. AZ::Entity* element,
  51. const AZ::Vector2& mousePosition);
  52. static void MoveAnchors(const ViewportHelpers::SelectedAnchors& grabbedAnchors,
  53. const UiTransform2dInterface::Anchors& startAnchors,
  54. const AZ::Vector2& startMouseDragPos,
  55. AZ::Entity* element,
  56. const AZ::Vector2& mousePosition,
  57. bool adjustOffsets);
  58. static void MovePivot(const AZ::Vector2& lastMouseDragPos,
  59. AZ::Entity* element,
  60. const AZ::Vector2& mousePosition);
  61. };