14 template <
typename ConvexType>
17 PMin = std::numeric_limits<FReal>::max();
18 PMax = std::numeric_limits<FReal>::lowest();
19 for (
int32 VertexIndex = 0; VertexIndex <
Convex.NumVertices(); ++VertexIndex)
26 MinVertexIndex = VertexIndex;
31 MaxVertexIndex = VertexIndex;
35 (*VertexDs)[VertexIndex] =
D;
54 PMin = Ds[MinVertexIndex];
55 PMax = Ds[MaxVertexIndex];
82 template<
typename ConvexType>
100 int32 VertexPlanes[16];
190 const FReal BarycentricTolerance =
FReal(1.e-6);
191 int32 VertexIndex0, VertexIndex1;
223 template<
typename RealType>
233 return ((
CBA *
DBA) < -Tolerance) && ((
ADC *
BDC) < -Tolerance) && ((
CBA *
BDC) > Tolerance);
255 const FReal Tolerance = 1.e-2f;
256 return ((
ADC *
BDC) < -Tolerance) && ((
CBA *
BDC) > Tolerance);
263 template <
typename ConvexType>
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_ARRAY_COUNT(array)
Definition UnrealTemplate.h:212
Definition ConvexFeature.h:20
Definition ArrayView.h:139
Definition BodyInstance.h:90
bool GetConvexFeature(const ConvexType &Convex, const FVec3 &Position, const FVec3 &Normal, Private::FConvexFeature &OutFeature)
Definition ConvexContactPointUtilities.h:83
bool IsOnMinkowskiSumConvexConvex(const TVec3< RealType > &A, const TVec3< RealType > &B, const TVec3< RealType > &C, const TVec3< RealType > &D, const RealType Tolerance=1.e-2f)
Definition ConvexContactPointUtilities.h:224
void ProjectOntoAxis(const ConvexType &Convex, const FVec3 &AxisN, const FVec3 &AxisX, FReal &PMin, FReal &PMax, int32 &MinVertexIndex, int32 &MaxVertexIndex, TArrayView< FReal > *VertexDs)
Definition ConvexContactPointUtilities.h:15
bool GetTriangleFeature(const FTriangle &Triangle, const FVec3 &TriangleNormal, const FVec3 &Position, const FVec3 &Normal, Private::FConvexFeature &OutFeature)
Definition ConvexContactPointUtilities.h:174
bool IsOnMinkowskiSumConvexTriangle(const FVec3 &A, const FVec3 &B, const FVec3 &BA, const FVec3 &C, const FVec3 &DC)
Definition ConvexContactPointUtilities.h:249
Definition SkeletalMeshComponent.h:307
FRealDouble FReal
Definition Real.h:22
void ProjectOntoAxis(const ConvexType &Convex, const FVec3 &AxisN, const FVec3 &AxisX, FReal &PMin, FReal &PMax, int32 &MinVertexIndex, int32 &MaxVertexIndex, TArrayView< FReal > *VertexDs)
Definition ConvexContactPointUtilities.h:265
bool GetTriangleEdgeVerticesAtPosition(const FVec3 &Position, const FVec3 VertexA, const FVec3 VertexB, const FVec3 VertexC, int32 &OutEdgeVertexIndexA, int32 &OutEdgeVertexIndexB, const FReal BaryCentricTolerance=UE_KINDA_SMALL_NUMBER)
Definition ContactTriangles.h:16
static UE_FORCEINLINE_HINT bool IsNearlyEqual(float A, float B, float ErrorTolerance=UE_SMALL_NUMBER)
Definition UnrealMathUtility.h:388
static constexpr UE_FORCEINLINE_HINT int32 Min3Index(const T A, const T B, const T C)
Definition UnrealMathUtility.h:571
static constexpr UE_FORCEINLINE_HINT int32 Max3Index(const T A, const T B, const T C)
Definition UnrealMathUtility.h:564