HeightFieldShapeTest.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
  2. // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
  3. // SPDX-License-Identifier: MIT
  4. #pragma once
  5. #include <Tests/Test.h>
  6. #include <Jolt/Physics/Collision/Shape/HeightFieldShape.h>
  7. class HeightFieldShapeTest : public Test
  8. {
  9. public:
  10. JPH_DECLARE_RTTI_VIRTUAL(JPH_NO_EXPORT, HeightFieldShapeTest)
  11. // Initialize the test
  12. virtual void Initialize() override;
  13. // Update the test, called before the physics update
  14. virtual void PrePhysicsUpdate(const PreUpdateParams &inParams) override;
  15. // Override to specify the initial camera state (local to GetCameraPivot)
  16. virtual void GetInitialCamera(CameraState &ioState) const override;
  17. // Optional settings menu
  18. virtual bool HasSettingsMenu() const override { return true; }
  19. virtual void CreateSettingsMenu(DebugUI *inUI, UIElement *inSubMenu) override;
  20. // Original (uncompressed) terrain
  21. Array<float> mTerrain;
  22. PhysicsMaterialList mMaterials;
  23. Array<uint8> mMaterialIndices;
  24. uint mTerrainSize;
  25. Vec3 mTerrainOffset;
  26. Vec3 mTerrainScale;
  27. // Block size = 1 << sBlockSizeShift
  28. inline static int sBlockSizeShift = 2;
  29. // Bits per sample
  30. inline static int sBitsPerSample = 8;
  31. // Draw the terrain
  32. inline static bool sShowOriginalTerrain = false;
  33. RefConst<HeightFieldShape> mHeightField;
  34. RVec3 mHitPos = RVec3::sZero();
  35. };