29#ifndef GU_PCM_CONTACT_GEN_UTIL_H
30#define GU_PCM_CONTACT_GEN_UTIL_H
32#include "foundation/PxVecMath.h"
33#include "GuShapeConvex.h"
34#include "GuVecCapsule.h"
35#include "GuConvexSupportTable.h"
38#define PCM_WITNESS_POINT_LOWER_EPS 1e-2f
40#define PCM_WITNESS_POINT_UPPER_EPS 5e-2f
53 bool contains(aos::Vec3V* verts,
const PxU32 numVerts,
const aos::Vec3VArg p,
const aos::Vec3VArg min,
const aos::Vec3VArg max);
55 PX_FORCE_INLINE aos::FloatV signed2DTriArea(
const aos::Vec3VArg a,
const aos::Vec3VArg b,
const aos::Vec3VArg c)
58 const Vec3V ca = V3Sub(a, c);
59 const Vec3V cb = V3Sub(b, c);
61 const FloatV t0 = FMul(V3GetX(ca), V3GetY(cb));
62 const FloatV t1 = FMul(V3GetY(ca), V3GetX(cb));
67 PxI32 getPolygonIndex(
const Gu::PolygonalData& polyData, SupportLocal* map,
const aos::Vec3VArg normal, PxI32& polyIndex2);
69 PX_FORCE_INLINE PxI32 getPolygonIndex(
const Gu::PolygonalData& polyData, SupportLocal* map,
const aos::Vec3VArg normal)
74 return getPolygonIndex(polyData, map, normal, index2);
77 PxU32 getWitnessPolygonIndex(
const Gu::PolygonalData& polyData, SupportLocal* map,
const aos::Vec3VArg normal,
78 const aos::Vec3VArg closest,
const PxReal tolerance);
#define PX_FORCE_INLINE
Definition PxPreprocessor.h:335
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39