UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::FTriangleMeshImplicitObject Class Referencefinal

#include <TriangleMeshImplicitObject.h>

+ Inheritance diagram for Chaos::FTriangleMeshImplicitObject:

Public Types

using ParticlesType = TParticles< FRealSingle, 3 >
 
using ParticleVecType = TVec3< FRealSingle >
 
- Public Types inherited from Chaos::FImplicitObject
using TType = FReal
 

Public Member Functions

template<typename IdxType >
 FTriangleMeshImplicitObject (ParticlesType &&Particles, TArray< TVec3< IdxType > > &&Elements, TArray< uint16 > &&InMaterialIndices, TUniquePtr< TArray< int32 > > &&InExternalFaceIndexMap=nullptr, TUniquePtr< TArray< int32 > > &&InExternalVertexIndexMap=nullptr, const bool bInCullsBackFaceRaycast=false)
 
 FTriangleMeshImplicitObject (const FTriangleMeshImplicitObject &Other)=delete
 
 FTriangleMeshImplicitObject (FTriangleMeshImplicitObject &&Other)=delete
 
virtual CHAOS_API ~FTriangleMeshImplicitObject ()
 
virtual FReal GetRadius () const override
 
virtual CHAOS_API FReal PhiWithNormal (const FVec3 &x, FVec3 &Normal) const override
 
virtual CHAOS_API bool Raycast (const FVec3 &StartPoint, const FVec3 &Dir, const FReal Length, const FReal Thickness, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex) const override
 
virtual CHAOS_API bool Overlap (const FVec3 &Point, const FReal Thickness) const override
 
CHAOS_API bool OverlapGeom (const FSphere &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr) const
 
CHAOS_API bool OverlapGeom (const TBox< FReal, 3 > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr) const
 
CHAOS_API bool OverlapGeom (const FCapsule &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr) const
 
CHAOS_API bool OverlapGeom (const FConvex &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr) const
 
CHAOS_API bool OverlapGeom (const TImplicitObjectScaled< FSphere > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool OverlapGeom (const TImplicitObjectScaled< TBox< FReal, 3 > > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool OverlapGeom (const TImplicitObjectScaled< FCapsule > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool OverlapGeom (const TImplicitObjectScaled< FConvex > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeom (const FSphere &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeom (const TBox< FReal, 3 > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeom (const FCapsule &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeom (const FConvex &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeom (const TImplicitObjectScaled< FSphere > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeom (const TImplicitObjectScaled< TBox< FReal, 3 > > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeom (const TImplicitObjectScaled< FCapsule > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeom (const TImplicitObjectScaled< FConvex > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeomCCD (const FSphere &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeomCCD (const TBox< FReal, 3 > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeomCCD (const FCapsule &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeomCCD (const FConvex &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeomCCD (const TImplicitObjectScaled< FSphere > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeomCCD (const TImplicitObjectScaled< TBox< FReal, 3 > > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeomCCD (const TImplicitObjectScaled< FCapsule > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool SweepGeomCCD (const TImplicitObjectScaled< FConvex > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool GJKContactPoint (const FSphere &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex) const
 
CHAOS_API bool GJKContactPoint (const TBox< FReal, 3 > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex) const
 
CHAOS_API bool GJKContactPoint (const FCapsule &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex) const
 
CHAOS_API bool GJKContactPoint (const FConvex &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex) const
 
CHAOS_API bool GJKContactPoint (const TImplicitObjectScaled< FSphere > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool GJKContactPoint (const TImplicitObjectScaled< TBox< FReal, 3 > > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool GJKContactPoint (const TImplicitObjectScaled< FCapsule > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API bool GJKContactPoint (const TImplicitObjectScaled< FConvex > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex, FVec3 TriMeshScale=FVec3(1.0f)) const
 
CHAOS_API int32 GetExternalFaceIndexFromInternal (int32 InternalFaceIndex) const
 
CHAOS_API bool GetCullsBackFaceRaycast () const
 
CHAOS_API void SetCullsBackFaceRaycast (const bool bInCullsBackFace)
 
virtual CHAOS_API int32 FindMostOpposingFace (const FVec3 &Position, const FVec3 &UnitDir, int32 HintFaceIndex, FReal SearchDistance) const override
 
virtual CHAOS_API int32 FindMostOpposingFaceScaled (const FVec3 &Position, const FVec3 &UnitDir, int32 HintFaceIndex, FReal SearchDist, const FVec3 &Scale) const override
 
virtual CHAOS_API FVec3 FindGeometryOpposingNormal (const FVec3 &DenormDir, int32 FaceIndex, const FVec3 &OriginalNormal) const override
 
virtual const FAABB3 BoundingBox () const override
 
const FAABB3f BoundingBoxf () const
 
virtual CHAOS_API Chaos::FImplicitObjectPtr CopyGeometry () const
 
virtual CHAOS_API Chaos::FImplicitObjectPtr DeepCopyGeometry () const
 
CHAOS_API TUniquePtr< FTriangleMeshImplicitObjectCopySlow () const
 
void SerializeImp (FChaosArchive &Ar)
 
virtual CHAOS_API void Serialize (FChaosArchive &Ar) override
 
virtual FString ToString () const
 
virtual CHAOS_API uint32 GetTypeHash () const override
 
CHAOS_API FVec3 GetFaceNormal (const int32 FaceIdx) const
 
virtual CHAOS_API uint16 GetMaterialIndex (uint32 HintIndex) const override
 
CHAOS_API const ParticlesTypeParticles () const
 
CHAOS_API const FTrimeshIndexBufferElements () const
 
CHAOS_API void UpdateVertices (const TArray< FVector > &Positions)
 
void GetTransformedTriangle (const int32 TriangleIndex, const FRigidTransform3 &Transform, FTriangle &OutTriangle, int32 &OutVertexIndex0, int32 &OutVertexIndex1, int32 &OutVertexIndex2) const
 Generate the triangle at the specified index with the specified transform (including scale)
 
void FindOverlappingTriangles (const FAABB3 &QueryBounds, TArray< int32 > &OutTriangleIndices) const
 Get a list of triangle indices that overlap the query bounds.
 
template<typename TriangleVisitor >
void VisitTriangles (const FAABB3 &QueryBounds, const FRigidTransform3 &QueryTransform, const TriangleVisitor &Visitor) const
 
void CollectTriangles (const FAABB3 &MeshQueryBounds, const FRigidTransform3 &MeshToObjectTransform, const FAABB3 &ObjectBounds, Private::FMeshContactGenerator &Collector) const
 
UE_INTERNAL CHAOS_API const FTrimeshBVHGetBVH () const
 
template<typename IdxType >
bool RaycastImp (const TArray< TVector< IdxType, 3 > > &Elements, const FVec3 &StartPoint, const FVec3 &Dir, const FReal Length, const FReal Thickness, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex) const
 
virtual FName GetTypeName () const
 
- Public Member Functions inherited from Chaos::FImplicitObject
CHAOS_API FImplicitObject (int32 Flags, EImplicitObjectType InType=ImplicitObjectType::Unknown)
 
 FImplicitObject (const FImplicitObject &)=delete
 
 FImplicitObject (FImplicitObject &&)=delete
 
virtual CHAOS_API ~FImplicitObject () override
 
template<typename TargetType >
bool IsA () const
 
template<typename TargetType >
const TargetType * AsA () const
 
template<typename TargetType >
TargetType * AsA ()
 
template<typename TargetType >
const TargetType * AsAChecked () const
 
template<typename TargetType >
TargetType * AsAChecked ()
 
template<class T_DERIVED >
T_DERIVEDGetObject ()
 
template<class T_DERIVED >
const T_DERIVEDGetObject () const
 
template<class T_DERIVED >
const T_DERIVEDGetObjectChecked () const
 
template<class T_DERIVED >
T_DERIVEDGetObjectChecked ()
 
virtual EImplicitObjectType GetNestedType () const
 
CHAOS_API EImplicitObjectType GetType () const
 
CHAOS_API EImplicitObjectType GetCollisionType () const
 
void SetCollisionType (EImplicitObjectType InCollisionType)
 
virtual FRealSingle GetRadiusf () const
 
virtual FReal GetMargin () const
 
virtual FRealSingle GetMarginf () const
 
virtual CHAOS_API bool IsValidGeometry () const
 
virtual CHAOS_API Chaos::FImplicitObjectPtr CopyGeometryWithScale (const FVec3 &Scale) const
 
virtual Chaos::FImplicitObjectPtr DeepCopyGeometryWithScale (const FVec3 &Scale) const
 
virtual FImplicitObjectDuplicate () const
 
virtual TUniquePtr< FImplicitObjectCopy () const
 
virtual TUniquePtr< FImplicitObjectCopyWithScale (const FVec3 &Scale) const
 
virtual TUniquePtr< FImplicitObjectDeepCopy () const
 
virtual TUniquePtr< FImplicitObjectDeepCopyWithScale (const FVec3 &Scale) const
 
CHAOS_API bool IsUnderlyingUnion () const
 
CHAOS_API bool IsUnderlyingMesh () const
 
CHAOS_API FReal SignedDistance (const FVec3 &x) const
 
CHAOS_API FVec3 Normal (const FVec3 &x) const
 
virtual FReal PhiWithNormalScaled (const FVec3 &Pos, const FVec3 &Scale, FVec3 &Normal) const
 
virtual FAABB3 CalculateTransformedBounds (const FRigidTransform3 &Transform) const
 
bool HasBoundingBox () const
 
bool IsConvex () const
 
void SetConvex (const bool Convex=true)
 
void SetDoCollide (const bool Collide)
 
bool GetDoCollide () const
 
CHAOS_API void Track (TSerializablePtr< FImplicitObject > This, const FString &DebugInfo)
 
virtual bool IsPerformanceWarning () const
 
virtual FString PerformanceWarningAndSimplifaction ()
 
CHAOS_API Pair< FVec3, boolFindDeepestIntersection (const FImplicitObject *Other, const FBVHParticles *Particles, const FMatrix33 &OtherToLocalTransform, const FReal Thickness) const
 
CHAOS_API Pair< FVec3, boolFindDeepestIntersection (const FImplicitObject *Other, const FParticles *Particles, const FMatrix33 &OtherToLocalTransform, const FReal Thickness) const
 
CHAOS_API Pair< FVec3, boolFindClosestIntersection (const FVec3 &StartPoint, const FVec3 &EndPoint, const FReal Thickness) const
 
virtual int32 FindClosestFaceAndVertices (const FVec3 &Position, TArray< FVec3 > &FaceVertices, FReal SearchDist=0.01f) const
 
virtual void AccumulateAllImplicitObjects (TArray< Pair< const FImplicitObject *, FRigidTransform3 > > &Out, const FRigidTransform3 &ParentTM) const
 
virtual void AccumulateAllSerializableImplicitObjects (TArray< Pair< TSerializablePtr< FImplicitObject >, FRigidTransform3 > > &Out, const FRigidTransform3 &ParentTM, TSerializablePtr< FImplicitObject > This) const
 
virtual CHAOS_API void FindAllIntersectingObjects (TArray< Pair< const FImplicitObject *, FRigidTransform3 > > &Out, const FAABB3 &LocalBounds) const
 
CHAOS_API void SerializeImp (FArchive &Ar)
 
virtual void Serialize (FArchive &Ar)
 
int32 CountObjectsInHierarchy () const
 
int32 CountLeafObjectsInHierarchy () const
 
void VisitOverlappingLeafObjects (const FAABB3 &LocalBounds, const FImplicitHierarchyVisitor &Visitor) const
 
void VisitLeafObjects (const FImplicitHierarchyVisitor &Visitor) const
 
void VisitObjects (const FImplicitHierarchyVisitorBool &Visitor) const
 
bool IsOverlappingBounds (const FAABB3 &LocalBounds) const
 
virtual int32 CountObjectsInHierarchyImpl () const
 
virtual int32 CountLeafObjectsInHierarchyImpl () const
 
virtual void VisitOverlappingLeafObjectsImpl (const FAABB3 &LocalBounds, const FRigidTransform3 &ObjectTransform, const int32 RootObjectIndex, int32 &ObjectIndex, int32 &LeafObjectIndex, const FImplicitHierarchyVisitor &VisitorFunc) const
 
virtual void VisitLeafObjectsImpl (const FRigidTransform3 &ObjectTransform, const int32 RootObjectIndex, int32 &ObjectIndex, int32 &LeafObjectIndex, const FImplicitHierarchyVisitor &VisitorFunc) const
 
virtual bool VisitObjectsImpl (const FRigidTransform3 &ObjectTransform, const int32 RootObjectIndex, int32 &ObjectIndex, int32 &LeafObjectIndex, const FImplicitHierarchyVisitorBool &VisitorFunc) const
 
virtual bool IsOverlappingBoundsImpl (const FAABB3 &LocalBounds) const
 
- Public Member Functions inherited from Chaos::FChaosRefCountedObject
 FChaosRefCountedObject ()
 
virtual ~FChaosRefCountedObject ()
 
 FChaosRefCountedObject (const FChaosRefCountedObject &Rhs)=delete
 
FChaosRefCountedObjectoperator= (const FChaosRefCountedObject &Rhs)=delete
 
uint32 AddRef () const
 
uint32 Release () const
 
uint32 GetRefCount () const
 
void MakePersistent () const
 

Static Public Member Functions

static constexpr EImplicitObjectType StaticType ()
 
static CHAOS_API const FName GetTypeName (const EImplicitObjectType InType)
 
- Static Public Member Functions inherited from Chaos::FImplicitObject
static CHAOS_API FImplicitObjectSerializationFactory (FChaosArchive &Ar, FImplicitObject *Obj)
 
static int32 GetOffsetOfType ()
 
static int32 GetOffsetOfMargin ()
 
static constexpr EImplicitObjectType StaticType ()
 
static CHAOS_API FArchiveSerializeLegacyHelper (FArchive &Ar, TUniquePtr< FImplicitObject > &Value)
 
static CHAOS_API const FName GetTypeName (const EImplicitObjectType InType)
 

Friends

template<typename InStorageType , typename InRealType >
struct FBvEntry
 
template<typename QueryGeomType >
struct FTriangleMeshOverlapVisitorNoMTD
 
template<typename Geom , typename IdxType >
struct FTriangleMeshSweepVisitor
 
template<typename Geom , typename IdxType >
struct FTriangleMeshSweepVisitorCCD
 
class FImplicitObject
 

Additional Inherited Members

- Static Public Attributes inherited from Chaos::FImplicitObject
static constexpr int D = 3
 
- Protected Member Functions inherited from Chaos::FImplicitObject
void SetMargin (FReal InMargin)
 
void SetMargin (FRealSingle InMargin)
 
- Static Protected Member Functions inherited from Chaos::FImplicitObject
static FVec3 ScaleNormalizedHelper (const FVec3 &Normal, const FVec3 &Scale)
 
static FVec3 GetOuterScaledNormal (const FVec3 &InnerNormal, const FVec3 &Scale)
 
static FVec3 GetInnerUnscaledNormal (const FVec3 &OuterNormal, const FVec3 &Scale)
 
- Protected Attributes inherited from Chaos::FImplicitObject
FRealSingle Margin
 
bool bIsConvex
 
bool bDoCollide
 
bool bHasBoundingBox
 
bool bIsTracked
 
EImplicitObjectType Type
 
EImplicitObjectType CollisionType
 

Member Typedef Documentation

◆ ParticlesType

◆ ParticleVecType

Constructor & Destructor Documentation

◆ FTriangleMeshImplicitObject() [1/3]

template<typename IdxType >
Chaos::FTriangleMeshImplicitObject::FTriangleMeshImplicitObject ( ParticlesType &&  Particles,
TArray< TVec3< IdxType > > &&  Elements,
TArray< uint16 > &&  InMaterialIndices,
TUniquePtr< TArray< int32 > > &&  InExternalFaceIndexMap = nullptr,
TUniquePtr< TArray< int32 > > &&  InExternalVertexIndexMap = nullptr,
const bool  bInCullsBackFaceRaycast = false 
)
inline

◆ FTriangleMeshImplicitObject() [2/3]

Chaos::FTriangleMeshImplicitObject::FTriangleMeshImplicitObject ( const FTriangleMeshImplicitObject Other)
delete

◆ FTriangleMeshImplicitObject() [3/3]

Chaos::FTriangleMeshImplicitObject::FTriangleMeshImplicitObject ( FTriangleMeshImplicitObject &&  Other)
delete

◆ ~FTriangleMeshImplicitObject()

Chaos::FTriangleMeshImplicitObject::~FTriangleMeshImplicitObject ( )
virtualdefault

Member Function Documentation

◆ BoundingBox()

virtual const FAABB3 Chaos::FTriangleMeshImplicitObject::BoundingBox ( ) const
inlineoverridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ BoundingBoxf()

const FAABB3f Chaos::FTriangleMeshImplicitObject::BoundingBoxf ( ) const
inline

◆ CollectTriangles()

void Chaos::FTriangleMeshImplicitObject::CollectTriangles ( const FAABB3 MeshQueryBounds,
const FRigidTransform3 MeshToObjectTransform,
const FAABB3 ObjectBounds,
Private::FMeshContactGenerator Collector 
) const

◆ CopyGeometry()

FImplicitObjectPtr Chaos::FTriangleMeshImplicitObject::CopyGeometry ( ) const
virtual

Reimplemented from Chaos::FImplicitObject.

◆ CopySlow()

CHAOS_API TUniquePtr< FTriangleMeshImplicitObject > Chaos::FTriangleMeshImplicitObject::CopySlow ( ) const

◆ DeepCopyGeometry()

FImplicitObjectPtr Chaos::FTriangleMeshImplicitObject::DeepCopyGeometry ( ) const
virtual

Reimplemented from Chaos::FImplicitObject.

◆ Elements()

const FTrimeshIndexBuffer & Chaos::FTriangleMeshImplicitObject::Elements ( ) const

◆ FindGeometryOpposingNormal()

FVec3 Chaos::FTriangleMeshImplicitObject::FindGeometryOpposingNormal ( const FVec3 DenormDir,
int32  FaceIndex,
const FVec3 OriginalNormal 
) const
overridevirtual

Given a normal and a face index, compute the most opposing normal associated with the underlying geometry features. For example a sphere swept against a box may not give a normal associated with one of the box faces. This function will return a normal associated with one of the faces.

Parameters
DenormDir- the direction we want to oppose
FaceIndex- the face index associated with the geometry (for example if we hit a specific face of a convex hull)
OriginalNormal- the original normal given by something like a sphere sweep
Returns
The most opposing normal associated with the underlying geometry's feature (like a face)

Reimplemented from Chaos::FImplicitObject.

◆ FindMostOpposingFace()

int32 Chaos::FTriangleMeshImplicitObject::FindMostOpposingFace ( const FVec3 Position,
const FVec3 UnitDir,
int32  HintFaceIndex,
FReal  SearchDist 
) const
overridevirtual

Returns the most opposing face.

Parameters
Position- local position to search around (for example an edge of a convex hull)
UnitDir- the direction we want to oppose (for example a ray moving into the edge of a convex hull would get the face with the most negative dot(FaceNormal, UnitDir)
HintFaceIndex- for certain geometry we can use this to accelerate the search.
Returns
Index of the most opposing face

Reimplemented from Chaos::FImplicitObject.

◆ FindMostOpposingFaceScaled()

int32 Chaos::FTriangleMeshImplicitObject::FindMostOpposingFaceScaled ( const FVec3 Position,
const FVec3 UnitDir,
int32  HintFaceIndex,
FReal  SearchDist,
const FVec3 Scale 
) const
overridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ FindOverlappingTriangles()

void Chaos::FTriangleMeshImplicitObject::FindOverlappingTriangles ( const FAABB3 QueryBounds,
TArray< int32 > &  OutTriangleIndices 
) const
inline

Get a list of triangle indices that overlap the query bounds.

Parameters
QueryBoundsquery bounds in trimesh space

◆ GetBVH()

const FTrimeshBVH & Chaos::FTriangleMeshImplicitObject::GetBVH ( ) const

◆ GetCullsBackFaceRaycast()

bool Chaos::FTriangleMeshImplicitObject::GetCullsBackFaceRaycast ( ) const

◆ GetExternalFaceIndexFromInternal()

int32 Chaos::FTriangleMeshImplicitObject::GetExternalFaceIndexFromInternal ( int32  InternalFaceIndex) const

◆ GetFaceNormal()

FVec3 Chaos::FTriangleMeshImplicitObject::GetFaceNormal ( const int32  FaceIdx) const

◆ GetMaterialIndex()

uint16 Chaos::FTriangleMeshImplicitObject::GetMaterialIndex ( uint32  HintIndex) const
overridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ GetRadius()

virtual FReal Chaos::FTriangleMeshImplicitObject::GetRadius ( ) const
inlineoverridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ GetTransformedTriangle()

void Chaos::FTriangleMeshImplicitObject::GetTransformedTriangle ( const int32  TriangleIndex,
const FRigidTransform3 Transform,
FTriangle OutTriangle,
int32 OutVertexIndex0,
int32 OutVertexIndex1,
int32 OutVertexIndex2 
) const
inline

Generate the triangle at the specified index with the specified transform (including scale)

Note
does not correct winding for negative scales

◆ GetTypeHash()

uint32 Chaos::FTriangleMeshImplicitObject::GetTypeHash ( ) const
overridevirtual

◆ GetTypeName() [1/2]

virtual FName Chaos::FImplicitObject::GetTypeName ( ) const
inlinevirtual

Reimplemented from Chaos::FImplicitObject.

◆ GetTypeName() [2/2]

const FName Chaos::FImplicitObject::GetTypeName ( const EImplicitObjectType  InType)
static

◆ GJKContactPoint() [1/8]

bool Chaos::FTriangleMeshImplicitObject::GJKContactPoint ( const FCapsule QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FVec3 Location,
FVec3 Normal,
FReal Penetration,
int32 FaceIndex 
) const

◆ GJKContactPoint() [2/8]

bool Chaos::FTriangleMeshImplicitObject::GJKContactPoint ( const FConvex QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FVec3 Location,
FVec3 Normal,
FReal Penetration,
int32 FaceIndex 
) const

◆ GJKContactPoint() [3/8]

bool Chaos::FTriangleMeshImplicitObject::GJKContactPoint ( const FSphere QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FVec3 Location,
FVec3 Normal,
FReal Penetration,
int32 FaceIndex 
) const

◆ GJKContactPoint() [4/8]

bool Chaos::FTriangleMeshImplicitObject::GJKContactPoint ( const TBox< FReal, 3 > &  QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FVec3 Location,
FVec3 Normal,
FReal Penetration,
int32 FaceIndex 
) const

◆ GJKContactPoint() [5/8]

bool Chaos::FTriangleMeshImplicitObject::GJKContactPoint ( const TImplicitObjectScaled< FCapsule > &  QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FVec3 Location,
FVec3 Normal,
FReal Penetration,
int32 FaceIndex,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ GJKContactPoint() [6/8]

bool Chaos::FTriangleMeshImplicitObject::GJKContactPoint ( const TImplicitObjectScaled< FConvex > &  QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FVec3 Location,
FVec3 Normal,
FReal Penetration,
int32 FaceIndex,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ GJKContactPoint() [7/8]

bool Chaos::FTriangleMeshImplicitObject::GJKContactPoint ( const TImplicitObjectScaled< FSphere > &  QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FVec3 Location,
FVec3 Normal,
FReal Penetration,
int32 FaceIndex,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ GJKContactPoint() [8/8]

bool Chaos::FTriangleMeshImplicitObject::GJKContactPoint ( const TImplicitObjectScaled< TBox< FReal, 3 > > &  QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FVec3 Location,
FVec3 Normal,
FReal Penetration,
int32 FaceIndex,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ Overlap()

bool Chaos::FTriangleMeshImplicitObject::Overlap ( const FVec3 Point,
const FReal  Thickness 
) const
overridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ OverlapGeom() [1/8]

bool Chaos::FTriangleMeshImplicitObject::OverlapGeom ( const FCapsule QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FMTDInfo OutMTD = nullptr 
) const

◆ OverlapGeom() [2/8]

bool Chaos::FTriangleMeshImplicitObject::OverlapGeom ( const FConvex QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FMTDInfo OutMTD = nullptr 
) const

◆ OverlapGeom() [3/8]

bool Chaos::FTriangleMeshImplicitObject::OverlapGeom ( const FSphere QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FMTDInfo OutMTD = nullptr 
) const

◆ OverlapGeom() [4/8]

bool Chaos::FTriangleMeshImplicitObject::OverlapGeom ( const TBox< FReal, 3 > &  QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FMTDInfo OutMTD = nullptr 
) const

◆ OverlapGeom() [5/8]

bool Chaos::FTriangleMeshImplicitObject::OverlapGeom ( const TImplicitObjectScaled< FCapsule > &  QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FMTDInfo OutMTD = nullptr,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ OverlapGeom() [6/8]

bool Chaos::FTriangleMeshImplicitObject::OverlapGeom ( const TImplicitObjectScaled< FConvex > &  QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FMTDInfo OutMTD = nullptr,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ OverlapGeom() [7/8]

bool Chaos::FTriangleMeshImplicitObject::OverlapGeom ( const TImplicitObjectScaled< FSphere > &  QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FMTDInfo OutMTD = nullptr,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ OverlapGeom() [8/8]

bool Chaos::FTriangleMeshImplicitObject::OverlapGeom ( const TImplicitObjectScaled< TBox< FReal, 3 > > &  QueryGeom,
const FRigidTransform3 QueryTM,
const FReal  Thickness,
FMTDInfo OutMTD = nullptr,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ Particles()

const FTriangleMeshImplicitObject::ParticlesType & Chaos::FTriangleMeshImplicitObject::Particles ( ) const

◆ PhiWithNormal()

FReal Chaos::FTriangleMeshImplicitObject::PhiWithNormal ( const FVec3 x,
FVec3 Normal 
) const
overridevirtual

◆ Raycast()

bool Chaos::FTriangleMeshImplicitObject::Raycast ( const FVec3 StartPoint,
const FVec3 Dir,
const FReal  Length,
const FReal  Thickness,
FReal OutTime,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex 
) const
overridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ RaycastImp()

template<typename IdxType >
bool Chaos::FTriangleMeshImplicitObject::RaycastImp ( const TArray< TVector< IdxType, 3 > > &  Elements,
const FVec3 StartPoint,
const FVec3 Dir,
const FReal  Length,
const FReal  Thickness,
FReal OutTime,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex 
) const

◆ Serialize()

void Chaos::FTriangleMeshImplicitObject::Serialize ( FChaosArchive Ar)
overridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ SerializeImp()

void Chaos::FTriangleMeshImplicitObject::SerializeImp ( FChaosArchive Ar)
inline

◆ SetCullsBackFaceRaycast()

void Chaos::FTriangleMeshImplicitObject::SetCullsBackFaceRaycast ( const bool  bInCullsBackFace)

◆ StaticType()

static constexpr EImplicitObjectType Chaos::FTriangleMeshImplicitObject::StaticType ( )
inlinestaticconstexpr

◆ SweepGeom() [1/8]

bool Chaos::FTriangleMeshImplicitObject::SweepGeom ( const FCapsule QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
FReal OutTime,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FReal  Thickness = 0,
const bool  bComputeMTD = false,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ SweepGeom() [2/8]

bool Chaos::FTriangleMeshImplicitObject::SweepGeom ( const FConvex QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
FReal OutTime,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FReal  Thickness = 0,
const bool  bComputeMTD = false,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ SweepGeom() [3/8]

CHAOS_API bool Chaos::FTriangleMeshImplicitObject::SweepGeom ( const FSphere QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
FReal OutTime,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FReal  Thickness = 0,
const bool  bComputeMTD = false,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ SweepGeom() [4/8]

bool Chaos::FTriangleMeshImplicitObject::SweepGeom ( const TBox< FReal, 3 > &  QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
FReal OutTime,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FReal  Thickness = 0,
const bool  bComputeMTD = false,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ SweepGeom() [5/8]

bool Chaos::FTriangleMeshImplicitObject::SweepGeom ( const TImplicitObjectScaled< FCapsule > &  QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
FReal OutTime,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FReal  Thickness = 0,
const bool  bComputeMTD = false,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ SweepGeom() [6/8]

bool Chaos::FTriangleMeshImplicitObject::SweepGeom ( const TImplicitObjectScaled< FConvex > &  QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
FReal OutTime,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FReal  Thickness = 0,
const bool  bComputeMTD = false,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ SweepGeom() [7/8]

bool Chaos::FTriangleMeshImplicitObject::SweepGeom ( const TImplicitObjectScaled< FSphere > &  QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
FReal OutTime,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FReal  Thickness = 0,
const bool  bComputeMTD = false,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ SweepGeom() [8/8]

bool Chaos::FTriangleMeshImplicitObject::SweepGeom ( const TImplicitObjectScaled< TBox< FReal, 3 > > &  QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
FReal OutTime,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FReal  Thickness = 0,
const bool  bComputeMTD = false,
FVec3  TriMeshScale = FVec3(1.0f) 
) const

◆ SweepGeomCCD() [1/8]

bool Chaos::FTriangleMeshImplicitObject::SweepGeomCCD ( const FCapsule QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
const FReal  IgnorePenetration,
const FReal  TargetPenetration,
FReal OutTOI,
FReal OutPhi,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FVec3 TriMeshScale = FVec3(1.0f) 
) const

◆ SweepGeomCCD() [2/8]

bool Chaos::FTriangleMeshImplicitObject::SweepGeomCCD ( const FConvex QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
const FReal  IgnorePenetration,
const FReal  TargetPenetration,
FReal OutTOI,
FReal OutPhi,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FVec3 TriMeshScale = FVec3(1.0f) 
) const

◆ SweepGeomCCD() [3/8]

bool Chaos::FTriangleMeshImplicitObject::SweepGeomCCD ( const FSphere QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
const FReal  IgnorePenetration,
const FReal  TargetPenetration,
FReal OutTOI,
FReal OutPhi,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FVec3 TriMeshScale = FVec3(1.0f) 
) const

◆ SweepGeomCCD() [4/8]

bool Chaos::FTriangleMeshImplicitObject::SweepGeomCCD ( const TBox< FReal, 3 > &  QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
const FReal  IgnorePenetration,
const FReal  TargetPenetration,
FReal OutTOI,
FReal OutPhi,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FVec3 TriMeshScale = FVec3(1.0f) 
) const

◆ SweepGeomCCD() [5/8]

bool Chaos::FTriangleMeshImplicitObject::SweepGeomCCD ( const TImplicitObjectScaled< FCapsule > &  QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
const FReal  IgnorePenetration,
const FReal  TargetPenetration,
FReal OutTOI,
FReal OutPhi,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FVec3 TriMeshScale = FVec3(1.0f) 
) const

◆ SweepGeomCCD() [6/8]

bool Chaos::FTriangleMeshImplicitObject::SweepGeomCCD ( const TImplicitObjectScaled< FConvex > &  QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
const FReal  IgnorePenetration,
const FReal  TargetPenetration,
FReal OutTOI,
FReal OutPhi,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FVec3 TriMeshScale = FVec3(1.0f) 
) const

◆ SweepGeomCCD() [7/8]

bool Chaos::FTriangleMeshImplicitObject::SweepGeomCCD ( const TImplicitObjectScaled< FSphere > &  QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
const FReal  IgnorePenetration,
const FReal  TargetPenetration,
FReal OutTOI,
FReal OutPhi,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FVec3 TriMeshScale = FVec3(1.0f) 
) const

◆ SweepGeomCCD() [8/8]

bool Chaos::FTriangleMeshImplicitObject::SweepGeomCCD ( const TImplicitObjectScaled< TBox< FReal, 3 > > &  QueryGeom,
const FRigidTransform3 StartTM,
const FVec3 Dir,
const FReal  Length,
const FReal  IgnorePenetration,
const FReal  TargetPenetration,
FReal OutTOI,
FReal OutPhi,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex,
FVec3 OutFaceNormal,
const FVec3 TriMeshScale = FVec3(1.0f) 
) const

◆ ToString()

virtual FString Chaos::FTriangleMeshImplicitObject::ToString ( ) const
inlinevirtual

Reimplemented from Chaos::FImplicitObject.

◆ UpdateVertices()

void Chaos::FTriangleMeshImplicitObject::UpdateVertices ( const TArray< FVector > &  Positions)

◆ VisitTriangles()

void Chaos::FTriangleMeshImplicitObject::VisitTriangles ( const FAABB3 QueryBounds,
const FRigidTransform3 QueryTransform,
const TriangleVisitor Visitor 
) const
inline
Parameters
QueryBoundsBounding box in which we want to produce triangles, in unscaled TriMesh space
QueryTransformTransforms from TriMesh space to desired space (e.g., could be trimesh world transform including scale to get world-space triangles)
CullDistanceThe distance at which we can ignore triangles
Visitorvoid(const FTriangle& Triangle, const int32 TriangleIndex, const int32 VertexIndex0, const int32 VertexIndex1, const int32 OutVertexIndex2)

Friends And Related Symbol Documentation

◆ FBvEntry

friend struct FBvEntry
friend

◆ FImplicitObject

friend class FImplicitObject
friend

◆ FTriangleMeshOverlapVisitorNoMTD

◆ FTriangleMeshSweepVisitor

◆ FTriangleMeshSweepVisitorCCD


The documentation for this class was generated from the following files: