UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::TImplicitObjectScaled< TConcrete, bInstanced > Class Template Reference

#include <ImplicitObjectScaled.h>

+ Inheritance diagram for Chaos::TImplicitObjectScaled< TConcrete, bInstanced >:

Public Types

using T = typename TConcrete::TType
 
using TType = T
 
using ObjectType = TRefCountPtr< TConcrete >
 
using ObjectTypeDeprecated = std::conditional_t< bInstanced, TSerializablePtr< TConcrete >, TUniquePtr< TConcrete > >
 
- Public Types inherited from Chaos::FImplicitObject
using TType = FReal
 

Public Member Functions

 TImplicitObjectScaled (ObjectTypeDeprecated Object, const TSharedPtr< TConcrete, ESPMode::ThreadSafe > &SharedPtrForRefCount, const FVec3 &Scale, FReal InMargin=0)
 
 TImplicitObjectScaled (TSharedPtr< TConcrete, ESPMode::ThreadSafe > Object, const FVec3 &Scale, FReal InMargin=0)
 
 TImplicitObjectScaled (ObjectTypeDeprecated Object, TUniquePtr< Chaos::FImplicitObject > &&ObjectOwner, const TSharedPtr< TConcrete, ESPMode::ThreadSafe > &SharedPtrForRefCount, const FVec3 &Scale, FReal InMargin=0)
 
 TImplicitObjectScaled (ObjectType Object, const FVec3 &Scale, FReal InMargin=0)
 
 TImplicitObjectScaled (TConcrete *Object, const FVec3 &Scale, FReal InMargin=0)
 
 TImplicitObjectScaled (const TImplicitObjectScaled< TConcrete, bInstanced > &Other)=delete
 
 TImplicitObjectScaled (TImplicitObjectScaled< TConcrete, bInstanced > &&Other)
 
 ~TImplicitObjectScaled ()
 
virtual TSerializablePtr< FImplicitObjectGetInnerObject () const override
 
const TConcreteGetUnscaledObject () const
 
virtual EImplicitObjectType GetNestedType () const override
 
virtual FReal GetRadius () const override
 
virtual FRealSingle GetRadiusf () const override
 
virtual FReal PhiWithNormal (const FVec3 &X, FVec3 &Normal) const override
 
virtual bool Raycast (const FVec3 &StartPoint, const FVec3 &Dir, const FReal Length, const FReal Thickness, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex) const override
 
template<typename QueryGeomType >
bool LowLevelSweepGeom (const QueryGeomType &B, const TRigidTransform< T, d > &BToATM, const TVector< T, d > &LocalDir, const T Length, T &OutTime, TVector< T, d > &LocalPosition, TVector< T, d > &LocalNormal, int32 &OutFaceIndex, TVector< T, d > &OutFaceNormal, T Thickness=0, bool bComputeMTD=false) const
 
template<typename QueryGeomType >
bool LowLevelSweepGeomCCD (const QueryGeomType &B, const TRigidTransform< T, d > &BToATM, const TVector< T, d > &LocalDir, const T Length, const FReal IgnorePenetration, const FReal TargetPenetration, T &OutTOI, T &OutPhi, TVector< T, d > &LocalPosition, TVector< T, d > &LocalNormal, int32 &OutFaceIndex, TVector< T, d > &OutFaceNormal) const
 
template<typename QueryGeomType >
bool GJKContactPoint (const QueryGeomType &A, const FRigidTransform3 &AToBTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex) const
 
template<typename QueryGeomType >
bool LowLevelOverlapGeom (const QueryGeomType &B, const TRigidTransform< T, d > &BToATM, T Thickness=0, FMTDInfo *OutMTD=nullptr) const
 
int32 GetMostOpposingPlane (const FVec3 &Normal) const
 
FVec3 GetClosestEdge (int32 PlaneIndex, const FVec3 &Position, FVec3 &OutEdgePos0, FVec3 &OutEdgePos1) const
 
FVec3 GetClosestEdgePosition (int32 PlaneIndex, const FVec3 &Position) const
 
bool GetClosestEdgeVertices (int32 PlaneIndex, const FVec3 &Position, int32 &OutVertexIndex0, int32 &OutVertexIndex1) const
 
int32 FindVertexPlanes (int32 VertexIndex, int32 *OutVertexPlanes, int32 MaxVertexPlanes) const
 
int32 GetVertexPlanes3 (int32 VertexIndex, int32 &PlaneIndex0, int32 &PlaneIndex1, int32 &PlaneIndex2) const
 
int32 NumPlaneVertices (int32 PlaneIndex) const
 
int32 GetPlaneVertex (int32 PlaneIndex, int32 PlaneVertexIndex) const
 
int32 GetEdgeVertex (int32 EdgeIndex, int32 EdgeVertexIndex) const
 
int32 GetEdgePlane (int32 EdgeIndex, int32 EdgePlaneIndex) const
 
int32 NumPlanes () const
 
int32 NumEdges () const
 
int32 NumVertices () const
 
const TPlaneConcrete< FReal, 3 > GetPlane (int32 FaceIndex) const
 
void GetPlaneNX (const int32 FaceIndex, FVec3 &OutN, FVec3 &OutX) const
 
const FVec3 GetVertex (int32 VertexIndex) const
 
virtual int32 FindMostOpposingFace (const FVec3 &Position, const FVec3 &UnitDir, int32 HintFaceIndex, FReal SearchDist) const override
 
virtual FVec3 FindGeometryOpposingNormal (const FVec3 &DenormDir, int32 HintFaceIndex, const FVec3 &OriginalNormal) const override
 
virtual bool Overlap (const FVec3 &Point, const FReal Thickness) const override
 
virtual Pair< FVec3, boolFindClosestIntersectionImp (const FVec3 &StartPoint, const FVec3 &EndPoint, const FReal Thickness) const override
 
virtual int32 FindClosestFaceAndVertices (const FVec3 &Position, TArray< FVec3 > &FaceVertices, FReal SearchDist=FReal(0.01)) const override
 
FORCEINLINE_DEBUGGABLE FVec3 Support (const FVec3 &Direction, const FReal Thickness, int32 &VertexIndex) const
 
FORCEINLINE_DEBUGGABLE FVec3 SupportCore (const FVec3 &Direction, const FReal InMargin, FReal *OutSupportDelta, int32 &VertexIndex) const
 
FORCEINLINE_DEBUGGABLE VectorRegister4Float SupportCoreSimd (const VectorRegister4Float &Direction, const FReal InMargin) const
 
void SetScale (const FVec3 &Scale)
 
void SetScale (const FVec3f &Scale)
 
const FReal GetVolume () const
 
const FVec3 GetCenterOfMass () const
 
FRotation3 GetRotationOfMass () const
 
const FMatrix33 GetInertiaTensor (const FReal Mass) const
 
const ObjectType Object () const
 
TSharedPtr< TConcrete, ESPMode::ThreadSafeGetSharedObject () const
 
virtual void Serialize (FChaosArchive &Ar) override
 
virtual uint32 GetTypeHash () const override
 
virtual uint16 GetMaterialIndex (uint32 HintIndex) const override
 
virtual Chaos::FImplicitObjectPtr CopyGeometry () const override
 
virtual Chaos::FImplicitObjectPtr CopyGeometryWithScale (const FVec3 &Scale) const override
 
virtual FString ToString () const override
 
virtual FName GetTypeName () const
 
- Public Member Functions inherited from Chaos::FImplicitObjectScaled
 FImplicitObjectScaled (int32 Flags, EImplicitObjectType InType)
 
FORCEINLINE FReal GetWindingOrder () const
 
const FVec3 GetScale () const
 
const FVec3 GetInvScale () const
 
virtual const FAABB3 BoundingBox () const override
 
- 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 ()
 
CHAOS_API EImplicitObjectType GetType () const
 
CHAOS_API EImplicitObjectType GetCollisionType () const
 
void SetCollisionType (EImplicitObjectType InCollisionType)
 
virtual FReal GetMargin () const
 
virtual FRealSingle GetMarginf () const
 
virtual CHAOS_API bool IsValidGeometry () const
 
virtual Chaos::FImplicitObjectPtr DeepCopyGeometry () 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 FindMostOpposingFaceScaled (const FVec3 &Position, const FVec3 &UnitDir, int32 HintFaceIndex, FReal SearchDist, const FVec3 &Scale) 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 const TImplicitObjectScaled< TConcrete > & AsScaledChecked (const FImplicitObject &Obj)
 
static TImplicitObjectScaled< TConcrete > & AsScaledChecked (FImplicitObject &Obj)
 
static const TImplicitObjectScaled< TConcrete > * AsScaled (const FImplicitObject &Obj)
 
static TImplicitObjectScaled< TConcrete > * AsScaled (FImplicitObject &Obj)
 
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)
 

Static Public Attributes

static constexpr int d = TConcrete::D
 
static constexpr int D = d
 
- Static Public Attributes inherited from Chaos::FImplicitObject
static constexpr int D = 3
 

Additional Inherited Members

- 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::FImplicitObjectScaled
FVec3f MScale
 
FVec3f MInvScale
 
FRealSingle OuterMargin
 
FAABB3 MLocalBoundingBox
 
- Protected Attributes inherited from Chaos::FImplicitObject
FRealSingle Margin
 
bool bIsConvex
 
bool bDoCollide
 
bool bHasBoundingBox
 
bool bIsTracked
 
EImplicitObjectType Type
 
EImplicitObjectType CollisionType
 

Member Typedef Documentation

◆ ObjectType

template<typename TConcrete , bool bInstanced = true>
using Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::ObjectType = TRefCountPtr<TConcrete>

◆ ObjectTypeDeprecated

template<typename TConcrete , bool bInstanced = true>
using Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::ObjectTypeDeprecated = std::conditional_t<bInstanced, TSerializablePtr<TConcrete>, TUniquePtr<TConcrete> >

◆ T

template<typename TConcrete , bool bInstanced = true>
using Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::T = typename TConcrete::TType

◆ TType

template<typename TConcrete , bool bInstanced = true>
using Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::TType = T

Constructor & Destructor Documentation

◆ TImplicitObjectScaled() [1/7]

template<typename TConcrete , bool bInstanced = true>
Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::TImplicitObjectScaled ( ObjectTypeDeprecated  Object,
const TSharedPtr< TConcrete, ESPMode::ThreadSafe > &  SharedPtrForRefCount,
const FVec3 Scale,
FReal  InMargin = 0 
)
inline

◆ TImplicitObjectScaled() [2/7]

template<typename TConcrete , bool bInstanced = true>
Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::TImplicitObjectScaled ( TSharedPtr< TConcrete, ESPMode::ThreadSafe Object,
const FVec3 Scale,
FReal  InMargin = 0 
)
inline

◆ TImplicitObjectScaled() [3/7]

template<typename TConcrete , bool bInstanced = true>
Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::TImplicitObjectScaled ( ObjectTypeDeprecated  Object,
TUniquePtr< Chaos::FImplicitObject > &&  ObjectOwner,
const TSharedPtr< TConcrete, ESPMode::ThreadSafe > &  SharedPtrForRefCount,
const FVec3 Scale,
FReal  InMargin = 0 
)
inline

◆ TImplicitObjectScaled() [4/7]

template<typename TConcrete , bool bInstanced = true>
Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::TImplicitObjectScaled ( ObjectType  Object,
const FVec3 Scale,
FReal  InMargin = 0 
)
inline

◆ TImplicitObjectScaled() [5/7]

template<typename TConcrete , bool bInstanced = true>
Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::TImplicitObjectScaled ( TConcrete Object,
const FVec3 Scale,
FReal  InMargin = 0 
)
inline

◆ TImplicitObjectScaled() [6/7]

template<typename TConcrete , bool bInstanced = true>
Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::TImplicitObjectScaled ( const TImplicitObjectScaled< TConcrete, bInstanced > &  Other)
delete

◆ TImplicitObjectScaled() [7/7]

template<typename TConcrete , bool bInstanced = true>
Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::TImplicitObjectScaled ( TImplicitObjectScaled< TConcrete, bInstanced > &&  Other)
inline

◆ ~TImplicitObjectScaled()

template<typename TConcrete , bool bInstanced = true>
Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::~TImplicitObjectScaled ( )
inline

Member Function Documentation

◆ AsScaled() [1/2]

template<typename TConcrete , bool bInstanced = true>
static const TImplicitObjectScaled< TConcrete > * Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::AsScaled ( const FImplicitObject Obj)
inlinestatic

◆ AsScaled() [2/2]

template<typename TConcrete , bool bInstanced = true>
static TImplicitObjectScaled< TConcrete > * Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::AsScaled ( FImplicitObject Obj)
inlinestatic

◆ AsScaledChecked() [1/2]

template<typename TConcrete , bool bInstanced = true>
static const TImplicitObjectScaled< TConcrete > & Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::AsScaledChecked ( const FImplicitObject Obj)
inlinestatic

◆ AsScaledChecked() [2/2]

template<typename TConcrete , bool bInstanced = true>
static TImplicitObjectScaled< TConcrete > & Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::AsScaledChecked ( FImplicitObject Obj)
inlinestatic

◆ CopyGeometry()

template<typename TConcrete , bool bInstanced = true>
virtual Chaos::FImplicitObjectPtr Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::CopyGeometry ( ) const
inlineoverridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ CopyGeometryWithScale()

template<typename TConcrete , bool bInstanced = true>
virtual Chaos::FImplicitObjectPtr Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::CopyGeometryWithScale ( const FVec3 Scale) const
inlineoverridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ FindClosestFaceAndVertices()

template<typename TConcrete , bool bInstanced = true>
virtual int32 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::FindClosestFaceAndVertices ( const FVec3 Position,
TArray< FVec3 > &  FaceVertices,
FReal  SearchDist = FReal(0.01) 
) const
inlineoverridevirtual

Finds the first intersecting face at given position

Parameters
Position- local position to search around (for example a point on the surface of a convex hull)
FaceIndices- Vertices that lie on the face plane.
SearchDistance- distance to surface [def:0.01]

Reimplemented from Chaos::FImplicitObject.

◆ FindClosestIntersectionImp()

template<typename TConcrete , bool bInstanced = true>
virtual Pair< FVec3, bool > Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::FindClosestIntersectionImp ( const FVec3 StartPoint,
const FVec3 EndPoint,
const FReal  Thickness 
) const
inlineoverridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ FindGeometryOpposingNormal()

template<typename TConcrete , bool bInstanced = true>
virtual FVec3 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::FindGeometryOpposingNormal ( const FVec3 DenormDir,
int32  FaceIndex,
const FVec3 OriginalNormal 
) const
inlineoverridevirtual

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()

template<typename TConcrete , bool bInstanced = true>
virtual int32 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::FindMostOpposingFace ( const FVec3 Position,
const FVec3 UnitDir,
int32  HintFaceIndex,
FReal  SearchDist 
) const
inlineoverridevirtual

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.

◆ FindVertexPlanes()

template<typename TConcrete , bool bInstanced = true>
int32 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::FindVertexPlanes ( int32  VertexIndex,
int32 OutVertexPlanes,
int32  MaxVertexPlanes 
) const
inline

◆ GetCenterOfMass()

template<typename TConcrete , bool bInstanced = true>
const FVec3 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetCenterOfMass ( ) const
inline

◆ GetClosestEdge()

template<typename TConcrete , bool bInstanced = true>
FVec3 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetClosestEdge ( int32  PlaneIndex,
const FVec3 Position,
FVec3 OutEdgePos0,
FVec3 OutEdgePos1 
) const
inline

◆ GetClosestEdgePosition()

template<typename TConcrete , bool bInstanced = true>
FVec3 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetClosestEdgePosition ( int32  PlaneIndex,
const FVec3 Position 
) const
inline

◆ GetClosestEdgeVertices()

template<typename TConcrete , bool bInstanced = true>
bool Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetClosestEdgeVertices ( int32  PlaneIndex,
const FVec3 Position,
int32 OutVertexIndex0,
int32 OutVertexIndex1 
) const
inline

◆ GetEdgePlane()

template<typename TConcrete , bool bInstanced = true>
int32 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetEdgePlane ( int32  EdgeIndex,
int32  EdgePlaneIndex 
) const
inline

◆ GetEdgeVertex()

template<typename TConcrete , bool bInstanced = true>
int32 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetEdgeVertex ( int32  EdgeIndex,
int32  EdgeVertexIndex 
) const
inline

◆ GetInertiaTensor()

template<typename TConcrete , bool bInstanced = true>
const FMatrix33 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetInertiaTensor ( const FReal  Mass) const
inline

◆ GetInnerObject()

template<typename TConcrete , bool bInstanced = true>
virtual TSerializablePtr< FImplicitObject > Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetInnerObject ( ) const
inlineoverridevirtual

Reimplemented from Chaos::FImplicitObjectScaled.

◆ GetMaterialIndex()

template<typename TConcrete , bool bInstanced = true>
virtual uint16 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetMaterialIndex ( uint32  HintIndex) const
inlineoverridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ GetMostOpposingPlane()

template<typename TConcrete , bool bInstanced = true>
int32 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetMostOpposingPlane ( const FVec3 Normal) const
inline

◆ GetNestedType()

template<typename TConcrete , bool bInstanced = true>
virtual EImplicitObjectType Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetNestedType ( ) const
inlineoverridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ GetPlane()

template<typename TConcrete , bool bInstanced = true>
const TPlaneConcrete< FReal, 3 > Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetPlane ( int32  FaceIndex) const
inline

◆ GetPlaneNX()

template<typename TConcrete , bool bInstanced = true>
void Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetPlaneNX ( const int32  FaceIndex,
FVec3 OutN,
FVec3 OutX 
) const
inline

◆ GetPlaneVertex()

template<typename TConcrete , bool bInstanced = true>
int32 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetPlaneVertex ( int32  PlaneIndex,
int32  PlaneVertexIndex 
) const
inline

◆ GetRadius()

template<typename TConcrete , bool bInstanced = true>
virtual FReal Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetRadius ( ) const
inlineoverridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ GetRadiusf()

template<typename TConcrete , bool bInstanced = true>
virtual FRealSingle Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetRadiusf ( ) const
inlineoverridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ GetRotationOfMass()

template<typename TConcrete , bool bInstanced = true>
FRotation3 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetRotationOfMass ( ) const
inline

◆ GetSharedObject()

template<typename TConcrete , bool bInstanced = true>
TSharedPtr< TConcrete, ESPMode::ThreadSafe > Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetSharedObject ( ) const
inline

◆ GetTypeHash()

template<typename TConcrete , bool bInstanced = true>
virtual uint32 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetTypeHash ( ) const
inlineoverridevirtual

◆ GetTypeName() [1/2]

template<typename TConcrete , bool bInstanced = true>
virtual FName Chaos::FImplicitObject::GetTypeName ( ) const
inlinevirtual

Reimplemented from Chaos::FImplicitObject.

◆ GetTypeName() [2/2]

template<typename TConcrete , bool bInstanced = true>
const FName Chaos::FImplicitObject::GetTypeName ( const EImplicitObjectType  InType)
static

◆ GetUnscaledObject()

template<typename TConcrete , bool bInstanced = true>
const TConcrete * Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetUnscaledObject ( ) const
inline

◆ GetVertex()

template<typename TConcrete , bool bInstanced = true>
const FVec3 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetVertex ( int32  VertexIndex) const
inline

◆ GetVertexPlanes3()

template<typename TConcrete , bool bInstanced = true>
int32 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetVertexPlanes3 ( int32  VertexIndex,
int32 PlaneIndex0,
int32 PlaneIndex1,
int32 PlaneIndex2 
) const
inline

◆ GetVolume()

template<typename TConcrete , bool bInstanced = true>
const FReal Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GetVolume ( ) const
inline

◆ GJKContactPoint()

template<typename TConcrete , bool bInstanced = true>
template<typename QueryGeomType >
bool Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::GJKContactPoint ( const QueryGeomType A,
const FRigidTransform3 AToBTM,
const FReal  Thickness,
FVec3 Location,
FVec3 Normal,
FReal Penetration,
int32 FaceIndex 
) const
inline

◆ LowLevelOverlapGeom()

template<typename TConcrete , bool bInstanced = true>
template<typename QueryGeomType >
bool Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::LowLevelOverlapGeom ( const QueryGeomType B,
const TRigidTransform< T, d > &  BToATM,
T  Thickness = 0,
FMTDInfo OutMTD = nullptr 
) const
inline

This is a low level function and assumes the internal object has a OverlapGeom function. Should not be called directly. See GeometryQueries.h : OverlapQuery

◆ LowLevelSweepGeom()

template<typename TConcrete , bool bInstanced = true>
template<typename QueryGeomType >
bool Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::LowLevelSweepGeom ( const QueryGeomType B,
const TRigidTransform< T, d > &  BToATM,
const TVector< T, d > &  LocalDir,
const T  Length,
T OutTime,
TVector< T, d > &  LocalPosition,
TVector< T, d > &  LocalNormal,
int32 OutFaceIndex,
TVector< T, d > &  OutFaceNormal,
T  Thickness = 0,
bool  bComputeMTD = false 
) const
inline

This is a low level function and assumes the internal object has a SweepGeom function. Should not be called directly. See GeometryQueries.h : SweepQuery

◆ LowLevelSweepGeomCCD()

template<typename TConcrete , bool bInstanced = true>
template<typename QueryGeomType >
bool Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::LowLevelSweepGeomCCD ( const QueryGeomType B,
const TRigidTransform< T, d > &  BToATM,
const TVector< T, d > &  LocalDir,
const T  Length,
const FReal  IgnorePenetration,
const FReal  TargetPenetration,
T OutTOI,
T OutPhi,
TVector< T, d > &  LocalPosition,
TVector< T, d > &  LocalNormal,
int32 OutFaceIndex,
TVector< T, d > &  OutFaceNormal 
) const
inline

This is a low level function and assumes the internal object has a SweepGeom function. Should not be called directly. See GeometryQueries.h : SweepQuery

◆ NumEdges()

template<typename TConcrete , bool bInstanced = true>
int32 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::NumEdges ( ) const
inline

◆ NumPlanes()

template<typename TConcrete , bool bInstanced = true>
int32 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::NumPlanes ( ) const
inline

◆ NumPlaneVertices()

template<typename TConcrete , bool bInstanced = true>
int32 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::NumPlaneVertices ( int32  PlaneIndex) const
inline

◆ NumVertices()

template<typename TConcrete , bool bInstanced = true>
int32 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::NumVertices ( ) const
inline

◆ Object()

template<typename TConcrete , bool bInstanced = true>
const ObjectType Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::Object ( ) const
inline

◆ Overlap()

template<typename TConcrete , bool bInstanced = true>
virtual bool Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::Overlap ( const FVec3 Point,
const FReal  Thickness 
) const
inlineoverridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ PhiWithNormal()

template<typename TConcrete , bool bInstanced = true>
virtual FReal Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::PhiWithNormal ( const FVec3 X,
FVec3 Normal 
) const
inlineoverridevirtual

◆ Raycast()

template<typename TConcrete , bool bInstanced = true>
virtual bool Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::Raycast ( const FVec3 StartPoint,
const FVec3 Dir,
const FReal  Length,
const FReal  Thickness,
FReal OutTime,
FVec3 OutPosition,
FVec3 OutNormal,
int32 OutFaceIndex 
) const
inlineoverridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ Serialize()

template<typename TConcrete , bool bInstanced = true>
virtual void Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::Serialize ( FChaosArchive Ar)
inlineoverridevirtual

Reimplemented from Chaos::FImplicitObject.

◆ SetScale() [1/2]

template<typename TConcrete , bool bInstanced = true>
void Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::SetScale ( const FVec3 Scale)
inline

◆ SetScale() [2/2]

template<typename TConcrete , bool bInstanced = true>
void Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::SetScale ( const FVec3f Scale)
inline

◆ StaticType()

template<typename TConcrete , bool bInstanced = true>
static constexpr EImplicitObjectType Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::StaticType ( )
inlinestaticconstexpr

◆ Support()

template<typename TConcrete , bool bInstanced = true>
FORCEINLINE_DEBUGGABLE FVec3 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::Support ( const FVec3 Direction,
const FReal  Thickness,
int32 VertexIndex 
) const
inline

◆ SupportCore()

template<typename TConcrete , bool bInstanced = true>
FORCEINLINE_DEBUGGABLE FVec3 Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::SupportCore ( const FVec3 Direction,
const FReal  InMargin,
FReal OutSupportDelta,
int32 VertexIndex 
) const
inline

◆ SupportCoreSimd()

template<typename TConcrete , bool bInstanced = true>
FORCEINLINE_DEBUGGABLE VectorRegister4Float Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::SupportCoreSimd ( const VectorRegister4Float Direction,
const FReal  InMargin 
) const
inline

◆ ToString()

template<typename TConcrete , bool bInstanced = true>
virtual FString Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::ToString ( ) const
inlineoverridevirtual

Reimplemented from Chaos::FImplicitObject.

Member Data Documentation

◆ d

template<typename TConcrete , bool bInstanced = true>
constexpr int Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::d = TConcrete::D
staticconstexpr

◆ D

template<typename TConcrete , bool bInstanced = true>
constexpr int Chaos::TImplicitObjectScaled< TConcrete, bInstanced >::D = d
staticconstexpr

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