GridComponent.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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 <AzCore/Component/Component.h>
  10. #include <AzCore/Math/Vector2.h>
  11. #include <GraphCanvas/Components/GridBus.h>
  12. #include <GraphCanvas/Components/SceneBus.h>
  13. namespace GraphCanvas
  14. {
  15. //! A component that gives a visual coordinates and a size.
  16. class GridComponent
  17. : public AZ::Component
  18. , public GridRequestBus::Handler
  19. , public SceneMemberRequestBus::Handler
  20. {
  21. public:
  22. AZ_COMPONENT(GridComponent, "{A9EFFA4B-1002-4837-B3EA-C596A14B2172}");
  23. static void Reflect(AZ::ReflectContext*);
  24. static AZ::Entity* CreateDefaultEntity();
  25. GridComponent();
  26. ~GridComponent() = default;
  27. // AZ::Component
  28. static void GetProvidedServices(AZ::ComponentDescriptor::DependencyArrayType& provided)
  29. {
  30. provided.push_back(AZ_CRC("GraphCanvas_GridService", 0x58f7e1d8));
  31. provided.push_back(AZ_CRC("GraphCanvas_SceneMemberService", 0xe9759a2d));
  32. }
  33. static void GetDependentServices(AZ::ComponentDescriptor::DependencyArrayType& /*dependent*/)
  34. {
  35. }
  36. static void GetRequiredServices(AZ::ComponentDescriptor::DependencyArrayType& /*required*/)
  37. {
  38. }
  39. void Activate() override;
  40. void Deactivate() override;
  41. ////
  42. // GridRequestBus
  43. void SetMajorPitch(const AZ::Vector2& pitch) override;
  44. AZ::Vector2 GetMajorPitch() const override;
  45. void SetMinorPitch(const AZ::Vector2& position) override;
  46. AZ::Vector2 GetMinorPitch() const override;
  47. void SetMinimumVisualPitch(int minimum) override;
  48. int GetMinimumVisualPitch() const override;
  49. ////
  50. // SceneMemberRequestBus
  51. void SetScene(const AZ::EntityId& sceneId) override;
  52. void ClearScene(const AZ::EntityId& oldSceneId) override;
  53. void SignalMemberSetupComplete() override;
  54. AZ::EntityId GetScene() const override;
  55. ////
  56. protected:
  57. AZ::EntityId m_scene;
  58. AZ::Vector2 m_majorPitch;
  59. AZ::Vector2 m_minorPitch;
  60. int m_minimumVisualPitch;
  61. };
  62. }