MockTerrainDataRequestBus.h 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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 <gmock/gmock.h>
  10. #include <AzCore/Component/ComponentApplication.h>
  11. #include <AzFramework/Physics/HeightfieldProviderBus.h>
  12. #include <AzFramework/Terrain/TerrainDataRequestBus.h>
  13. #include <TerrainSystem/TerrainSystemBus.h>
  14. namespace UnitTest
  15. {
  16. class MockTerrainDataNotificationListener : public AzFramework::Terrain::TerrainDataNotificationBus::Handler
  17. {
  18. public:
  19. MockTerrainDataNotificationListener()
  20. {
  21. AzFramework::Terrain::TerrainDataNotificationBus::Handler::BusConnect();
  22. }
  23. ~MockTerrainDataNotificationListener()
  24. {
  25. AzFramework::Terrain::TerrainDataNotificationBus::Handler::BusDisconnect();
  26. }
  27. MOCK_METHOD0(OnTerrainDataCreateBegin, void());
  28. MOCK_METHOD0(OnTerrainDataCreateEnd, void());
  29. MOCK_METHOD0(OnTerrainDataDestroyBegin, void());
  30. MOCK_METHOD0(OnTerrainDataDestroyEnd, void());
  31. MOCK_METHOD2(OnTerrainDataChanged, void(const AZ::Aabb& dirtyRegion, TerrainDataChangedMask dataChangedMask));
  32. };
  33. class MockTerrainDataRequests : public AzFramework::Terrain::TerrainDataRequestBus::Handler
  34. {
  35. public:
  36. MockTerrainDataRequests()
  37. {
  38. AzFramework::Terrain::TerrainDataRequestBus::Handler::BusConnect();
  39. }
  40. ~MockTerrainDataRequests()
  41. {
  42. AzFramework::Terrain::TerrainDataRequestBus::Handler::BusDisconnect();
  43. }
  44. MOCK_CONST_METHOD0(GetTerrainHeightQueryResolution, float());
  45. MOCK_METHOD1(SetTerrainHeightQueryResolution, void(float));
  46. MOCK_CONST_METHOD0(GetTerrainSurfaceDataQueryResolution, float());
  47. MOCK_METHOD1(SetTerrainSurfaceDataQueryResolution, void(float));
  48. MOCK_CONST_METHOD0(GetTerrainAabb, AZ::Aabb());
  49. MOCK_CONST_METHOD0(GetTerrainHeightBounds, AzFramework::Terrain::FloatRange());
  50. MOCK_METHOD1(SetTerrainHeightBounds, void(const AzFramework::Terrain::FloatRange&));
  51. MOCK_CONST_METHOD1(TerrainAreaExistsInBounds, bool(const AZ::Aabb&));
  52. MOCK_CONST_METHOD3(GetHeight, float(const AZ::Vector3&, Sampler, bool*));
  53. MOCK_CONST_METHOD3(GetHeightFromVector2, float(const AZ::Vector2&, Sampler, bool*));
  54. MOCK_CONST_METHOD4(GetHeightFromFloats, float(float, float, Sampler, bool*));
  55. MOCK_CONST_METHOD2(GetIsHole, bool(const AZ::Vector3&, Sampler));
  56. MOCK_CONST_METHOD2(GetIsHoleFromVector2, bool(const AZ::Vector2&, Sampler));
  57. MOCK_CONST_METHOD3(GetIsHoleFromFloats, bool(float, float, Sampler));
  58. MOCK_CONST_METHOD3(GetNormal, AZ::Vector3(const AZ::Vector3&, Sampler, bool*));
  59. MOCK_CONST_METHOD3(GetNormalFromVector2, AZ::Vector3(const AZ::Vector2&, Sampler, bool*));
  60. MOCK_CONST_METHOD4(GetNormalFromFloats, AZ::Vector3(float, float, Sampler, bool*));
  61. MOCK_CONST_METHOD3(GetMaxSurfaceWeight, AzFramework::SurfaceData::SurfaceTagWeight(const AZ::Vector3&, Sampler, bool*));
  62. MOCK_CONST_METHOD3(GetMaxSurfaceWeightFromVector2, AzFramework::SurfaceData::SurfaceTagWeight(const AZ::Vector2&, Sampler, bool*));
  63. MOCK_CONST_METHOD4(GetMaxSurfaceWeightFromFloats, AzFramework::SurfaceData::SurfaceTagWeight(float, float, Sampler, bool*));
  64. MOCK_CONST_METHOD4(GetSurfaceWeights, void(const AZ::Vector3&, AzFramework::SurfaceData::SurfaceTagWeightList&, Sampler, bool*));
  65. MOCK_CONST_METHOD4(
  66. GetSurfaceWeightsFromVector2, void(const AZ::Vector2&, AzFramework::SurfaceData::SurfaceTagWeightList&, Sampler, bool*));
  67. MOCK_CONST_METHOD5(
  68. GetSurfaceWeightsFromFloats, void(float, float, AzFramework::SurfaceData::SurfaceTagWeightList&, Sampler, bool*));
  69. MOCK_CONST_METHOD3(GetMaxSurfaceName, const char*(const AZ::Vector3&, Sampler, bool*));
  70. MOCK_CONST_METHOD4(GetSurfacePoint, void(const AZ::Vector3&, AzFramework::SurfaceData::SurfacePoint&, Sampler, bool*));
  71. MOCK_CONST_METHOD4(
  72. GetSurfacePointFromVector2, void(const AZ::Vector2&, AzFramework::SurfaceData::SurfacePoint&, Sampler, bool*));
  73. MOCK_CONST_METHOD5(
  74. GetSurfacePointFromFloats, void(float, float, AzFramework::SurfaceData::SurfacePoint&, Sampler, bool*));
  75. MOCK_CONST_METHOD4(
  76. QueryList, void(const AZStd::span<const AZ::Vector3>&, TerrainDataMask, AzFramework::Terrain::SurfacePointListFillCallback, Sampler));
  77. MOCK_CONST_METHOD4(
  78. QueryListOfVector2, void(const AZStd::span<const AZ::Vector2>&, TerrainDataMask, AzFramework::Terrain::SurfacePointListFillCallback, Sampler));
  79. MOCK_CONST_METHOD3(
  80. GetNumSamplesFromRegion, AZStd::pair<size_t, size_t>(const AZ::Aabb&, const AZ::Vector2&, Sampler));
  81. MOCK_CONST_METHOD4(
  82. QueryRegion,
  83. void(
  84. const AzFramework::Terrain::TerrainQueryRegion&,
  85. TerrainDataMask,
  86. AzFramework::Terrain::SurfacePointRegionFillCallback,
  87. Sampler));
  88. MOCK_CONST_METHOD0(
  89. GetTerrainRaycastEntityContextId, AzFramework::EntityContextId());
  90. MOCK_CONST_METHOD1(
  91. GetClosestIntersection, AzFramework::RenderGeometry::RayResult(const AzFramework::RenderGeometry::RayRequest&));
  92. MOCK_CONST_METHOD5(
  93. QueryListAsync,
  94. AZStd::shared_ptr<AzFramework::Terrain::TerrainJobContext>(
  95. const AZStd::span<const AZ::Vector3>&,
  96. TerrainDataMask,
  97. AzFramework::Terrain::SurfacePointListFillCallback,
  98. Sampler,
  99. AZStd::shared_ptr<AzFramework::Terrain::QueryAsyncParams>));
  100. MOCK_CONST_METHOD5(
  101. QueryListOfVector2Async,
  102. AZStd::shared_ptr<AzFramework::Terrain::TerrainJobContext>(
  103. const AZStd::span<const AZ::Vector2>&,
  104. TerrainDataMask,
  105. AzFramework::Terrain::SurfacePointListFillCallback,
  106. Sampler,
  107. AZStd::shared_ptr<AzFramework::Terrain::QueryAsyncParams>));
  108. MOCK_CONST_METHOD5(
  109. QueryRegionAsync,
  110. AZStd::shared_ptr<AzFramework::Terrain::TerrainJobContext>(
  111. const AzFramework::Terrain::TerrainQueryRegion&,
  112. TerrainDataMask,
  113. AzFramework::Terrain::SurfacePointRegionFillCallback,
  114. Sampler,
  115. AZStd::shared_ptr<AzFramework::Terrain::QueryAsyncParams>));
  116. };
  117. } // namespace UnitTest