UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
EPA.h File Reference
#include "Chaos/Simplex.h"
#include <queue>
#include "ChaosCheck.h"
#include "ChaosLog.h"
#include "Templates/Function.h"

Go to the source code of this file.

Classes

struct  Chaos::TEPAEntry< T >
 
struct  Chaos::FEPAFloodEntry
 

Namespaces

namespace  Chaos
 

Macros

#define DEBUG_EPA   0
 

Typedefs

template<typename T >
using Chaos::TEPAWorkingArray = TArray< T, TInlineAllocator< 32 > >
 

Enumerations

enum class  Chaos::EEPAResult {
  Chaos::Ok , Chaos::MaxIterations , Chaos::Degenerate , Chaos::BadInitialSimplex ,
  Chaos::NoValidContact
}
 

Functions

template<typename T >
FORCEINLINE const TVec3< T > Chaos::MinkowskiVert (const TVec3< T > *VertsABuffer, const TVec3< T > *VertsBBuffer, const int32 Idx)
 
template<typename T >
bool Chaos::InitializeEPA (TArray< TVec3< T > > &VertsA, TArray< TVec3< T > > &VertsB, TFunctionRef< TVector< T, 3 >(const TVec3< T > &V)> SupportA, TFunctionRef< TVector< T, 3 >(const TVec3< T > &V)> SupportB, TEPAWorkingArray< TEPAEntry< T > > &OutEntries, TVec3< T > &OutTouchNormal)
 
template<typename T , typename SupportALambda , typename SupportBLambda >
bool Chaos::InitializeEPA (TArray< TVec3< T > > &VertsA, TArray< TVec3< T > > &VertsB, const SupportALambda &SupportA, const SupportBLambda &SupportB, TEPAWorkingArray< TEPAEntry< T > > &OutEntries, TVec3< T > &OutTouchNormal)
 
template<typename T >
void Chaos::EPAComputeVisibilityBorder (TEPAWorkingArray< TEPAEntry< T > > &Entries, int32 EntryIdx, const TVec3< T > &W, TEPAWorkingArray< FEPAFloodEntry > &OutBorderEdges, TEPAWorkingArray< FEPAFloodEntry > &ToVisitStack)
 
template<typename T >
void Chaos::ComputeEPAResults (const TVec3< T > *VertsA, const TVec3< T > *VertsB, const TEPAEntry< T > &Entry, T &OutPenetration, TVec3< T > &OutDir, TVec3< T > &OutA, TVec3< T > &OutB)
 
const bool Chaos::IsEPASuccess (EEPAResult EPAResult)
 
template<typename T , typename TSupportA , typename TSupportB >
EEPAResult Chaos::EPA (TArray< TVec3< T > > &VertsABuffer, TArray< TVec3< T > > &VertsBBuffer, const TSupportA &SupportA, const TSupportB &SupportB, T &OutPenetration, TVec3< T > &OutDir, TVec3< T > &WitnessA, TVec3< T > &WitnessB, const FReal Eps=1.e-2f)
 
template<typename T >
EEPAResult Chaos::EPA (TArray< TVec3< T > > &VertsABuffer, TArray< TVec3< T > > &VertsBBuffer, const TFunctionRef< TVector< T, 3 >(const TVec3< T > &V)> &SupportA, const TFunctionRef< TVector< T, 3 >(const TVec3< T > &V)> &SupportB, T &OutPenetration, TVec3< T > &OutDir, TVec3< T > &WitnessA, TVec3< T > &WitnessB, const FReal EpsRel=1.e-2f)
 

Variables

constexpr int32 Chaos::ArraySizeEPA = 16
 

Macro Definition Documentation

◆ DEBUG_EPA

#define DEBUG_EPA   0