Files
o3de/Gems/PhysX/Code/Include/PhysX/Utils.h
T
2021-06-23 10:55:22 -07:00

53 lines
1.4 KiB
C++

/*
* Copyright (c) Contributors to the Open 3D Engine Project
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#pragma once
#include <PxActor.h>
#include <PxMaterial.h>
#include <PxShape.h>
#include <PhysX/UserDataTypes.h>
#include <AzFramework/Physics/Shape.h>
#include <AzFramework/Physics/Common/PhysicsSceneQueries.h>
namespace AzPhysics
{
class CollisionLayer;
class CollisionGroup;
class Scene;
}
namespace Physics
{
class Material;
class Shape;
}
namespace PhysX
{
class Shape;
namespace Utils
{
ActorData* GetUserData(const physx::PxActor* actor);
Physics::Material* GetUserData(const physx::PxMaterial* material);
Physics::Shape* GetUserData(const physx::PxShape* shape);
AzPhysics::Scene* GetUserData(physx::PxScene* scene);
namespace Collision
{
AZ::u64 Combine(AZ::u32 word0, AZ::u32 word1);
void SetLayer(const AzPhysics::CollisionLayer& layer, physx::PxFilterData& filterData);
void SetGroup(const AzPhysics::CollisionGroup& group, physx::PxFilterData& filterData);
void SetCollisionLayerAndGroup(physx::PxShape* shape, const AzPhysics::CollisionLayer& layer, const AzPhysics::CollisionGroup& group);
bool ShouldCollide(const physx::PxFilterData& filterData0, const physx::PxFilterData& filterData1);
}
}
}
#include <PhysX/Utils.inl>