Collision.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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 <PxPhysicsAPI.h>
  10. #include <AzCore/base.h>
  11. namespace AzPhysics
  12. {
  13. class CollisionGroup;
  14. class CollisionLayer;
  15. }
  16. namespace PhysX
  17. {
  18. namespace Collision
  19. {
  20. physx::PxFilterFlags DefaultFilterShader(
  21. physx::PxFilterObjectAttributes attributes0, physx::PxFilterData filterData0,
  22. physx::PxFilterObjectAttributes attributes1, physx::PxFilterData filterData1,
  23. physx::PxPairFlags& pairFlags, const void* constantBlock, physx::PxU32 constantBlockSize);
  24. physx::PxFilterFlags DefaultFilterShaderCCD(
  25. physx::PxFilterObjectAttributes attributes0, physx::PxFilterData filterData0,
  26. physx::PxFilterObjectAttributes attributes1, physx::PxFilterData filterData1,
  27. physx::PxPairFlags& pairFlags, const void* constantBlock, physx::PxU32 constantBlockSize);
  28. AZ::u64 Combine(AZ::u32 word0, AZ::u32 word1);
  29. physx::PxFilterData CreateFilterData(const AzPhysics::CollisionLayer& layer, const AzPhysics::CollisionGroup& group);
  30. void SetLayer(const AzPhysics::CollisionLayer& layer, physx::PxFilterData& filterData);
  31. void SetGroup(const AzPhysics::CollisionGroup& group, physx::PxFilterData& filterData);
  32. bool ShouldCollide(const physx::PxFilterData& filterData0, const physx::PxFilterData& filterData1);
  33. }
  34. }