UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ContactPointsMiscShapes.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "Chaos/Core.h"
6#include "Chaos/ImplicitFwd.h"
8
9namespace Chaos
10{
11 class FHeightField;
12
29 bool ComputeSweptContactTOIAndPhiAtTargetPenetration(const FReal DirDotNormal, const FReal SweepLength, const FReal HitDistance, const FReal IgnorePenetration, const FReal TargetPenetration, FReal& OutTOI, FReal& OutPhi);
30 bool ComputeSweptContactTOIAndPhiAtTargetPenetration(const FVec3& ContactNormal, const FVec3& Dir, const FReal SweepLength, const FReal HitDistance, const FReal IgnorePenetration, const FReal TargetPenetration, FReal& OutTOI, FReal& OutPhi);
31 void LegacyComputeSweptContactTOIAndPhiAtTargetPenetration(const FReal DirDotNormal, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal& InOutTOI, FReal& InOutPhi);
32
33
34 template <typename GeometryB>
35 FContactPoint GJKImplicitSweptContactPoint(const FImplicitObject& A, const FRigidTransform3& AStartTransform, const GeometryB& B, const FRigidTransform3& BTransform, const FVec3& Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal& TOI);
36
37
38 template <typename GeometryA, typename GeometryB>
39 FContactPoint GJKImplicitContactPoint(const FImplicitObject& A, const FRigidTransform3& ATransform, const GeometryB& B, const FRigidTransform3& BTransform, const FReal CullDistance);
40
42 FContactPoint SpherePlaneContactPoint(const FSphere& Sphere, const FRigidTransform3& SphereTransform, const TPlane<FReal, 3>& Plane, const FRigidTransform3& PlaneTransform);
45
46 template <typename TriMeshType>
48
49 template<typename TriMeshType>
50 FContactPoint SphereTriangleMeshSweptContactPoint(const FSphere& A, const FRigidTransform3& ATransform, const TriMeshType& B, const FRigidTransform3& BStartTransform, const FVec3& Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal& TOI);
51
52 FContactPoint BoxHeightFieldContactPoint(const FImplicitBox3& A, const FRigidTransform3& ATransform, const FHeightField& B, const FRigidTransform3& BTransform, const FReal CullDistance);
53
54 template <typename TriMeshType>
56
57 FContactPoint SphereHeightFieldContactPoint(const FSphere& A, const FRigidTransform3& ATransform, const FHeightField& B, const FRigidTransform3& BTransform, const FReal CullDistance);
58 FContactPoint CapsuleHeightFieldContactPoint(const FCapsule& A, const FRigidTransform3& ATransform, const FHeightField& B, const FRigidTransform3& BTransform, const FReal CullDistance);
59 template <typename TriMeshType>
61 template <typename TriMeshType>
62 FContactPoint CapsuleTriangleMeshSweptContactPoint(const FCapsule& A, const FRigidTransform3& ATransform, const TriMeshType& B, const FRigidTransform3& BStartTransform, const FVec3& Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal& TOI);
63
64 FContactPoint ConvexHeightFieldContactPoint(const FImplicitObject& A, const FRigidTransform3& ATransform, const FHeightField& B, const FRigidTransform3& BTransform, const FReal CullDistance);
65 FContactPoint ConvexTriangleMeshContactPoint(const FImplicitObject& A, const FRigidTransform3& ATransform, const FImplicitObject& B, const FRigidTransform3& BTransform, const FReal CullDistance);
66 template <typename TriMeshType>
67 FContactPoint ConvexTriangleMeshSweptContactPoint(const FImplicitObject& A, const FRigidTransform3& ATransform, const TriMeshType& B, const FRigidTransform3& BStartTransform, const FVec3& Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal& TOI);
68
69 FContactPoint CapsuleCapsuleContactPoint(const FCapsule& A, const FRigidTransform3& ATransform, const FCapsule& B, const FRigidTransform3& BTransform);
71
72
73}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition SkeletalMeshComponent.h:307
FContactPoint CapsuleTriangleMeshContactPoint(const FCapsule &A, const FRigidTransform3 &ATransform, const TriMeshType &B, const FRigidTransform3 &BTransform, const FReal CullDistance)
Definition ContactPointsMiscShapes.cpp:417
FContactPoint GJKImplicitContactPoint(const FImplicitObject &A, const FRigidTransform3 &ATransform, const GeometryB &B, const FRigidTransform3 &BTransform, const FReal CullDistance)
Definition ContactPointsMiscShapes.cpp:190
FContactPoint SphereCapsuleContactPoint(const FSphere &A, const FRigidTransform3 &ATransform, const FCapsule &B, const FRigidTransform3 &BTransform)
Definition ContactPointsMiscShapes.cpp:344
TRigidTransform< FReal, 3 > FRigidTransform3
Definition Core.h:22
FContactPoint BoxTriangleMeshContactPoint(const FImplicitBox3 &A, const FRigidTransform3 &ATransform, const TriMeshType &B, const FRigidTransform3 &BTransform, const FReal CullDistance)
Definition ContactPointsMiscShapes.cpp:400
FRealDouble FReal
Definition Real.h:22
FContactPoint CapsuleTriangleMeshSweptContactPoint(const FCapsule &A, const FRigidTransform3 &ATransform, const TriMeshType &B, const FRigidTransform3 &BStartTransform, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &TOI)
Definition ContactPointsMiscShapes.cpp:424
FContactPoint SphereBoxContactPoint(const FSphere &Sphere, const FRigidTransform3 &SphereTransform, const FImplicitBox3 &Box, const FRigidTransform3 &BoxTransform)
Definition ContactPointsMiscShapes.cpp:322
bool ComputeSweptContactTOIAndPhiAtTargetPenetration(const FReal DirDotNormal, const FReal SweepLength, const FReal HitDistance, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi)
Given a sweep result, calculate the sweep time at which the penetration depth will be TargetPenetrati...
Definition ContactPointsMiscShapes.cpp:144
FContactPoint CapsuleCapsuleContactPoint(const FCapsule &A, const FRigidTransform3 &ATransform, const FCapsule &B, const FRigidTransform3 &BTransform)
Definition ContactPointsMiscShapes.cpp:476
FContactPoint CapsuleHeightFieldContactPoint(const FCapsule &A, const FRigidTransform3 &ATransform, const FHeightField &B, const FRigidTransform3 &BTransform, const FReal CullDistance)
Definition ContactPointsMiscShapes.cpp:410
FContactPoint BoxHeightFieldContactPoint(const FImplicitBox3 &A, const FRigidTransform3 &ATransform, const FHeightField &B, const FRigidTransform3 &BTransform, const FReal CullDistance)
Definition ContactPointsMiscShapes.cpp:394
FContactPoint GJKImplicitSweptContactPoint(const FImplicitObject &A, const FRigidTransform3 &AStartTransform, const GeometryB &B, const FRigidTransform3 &BTransform, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI)
Definition ContactPointsMiscShapes.cpp:28
FContactPoint SphereHeightFieldContactPoint(const FSphere &A, const FRigidTransform3 &ATransform, const FHeightField &B, const FRigidTransform3 &BTransform, const FReal CullDistance)
Definition ContactPointsMiscShapes.cpp:405
float FRealSingle
Definition Real.h:14
TVector< FReal, 3 > FVec3
Definition Core.h:17
TContactPoint< FReal > FContactPoint
Definition GJKContactPointSwept.h:11
FContactPoint ConvexHeightFieldContactPoint(const FImplicitObject &A, const FRigidTransform3 &ATransform, const FHeightField &B, const FRigidTransform3 &BTransform, const FReal CullDistance)
Definition ContactPointsMiscShapes.cpp:440
FContactPoint SphereSphereContactPoint(const FSphere &Sphere1, const FRigidTransform3 &Sphere1Transform, const FSphere &Sphere2, const FRigidTransform3 &Sphere2Transform, const FRealSingle CullDistance)
Definition ContactPointsMiscShapes.cpp:272
FContactPoint CapsuleBoxContactPoint(const FCapsule &A, const FRigidTransform3 &ATransform, const FImplicitBox3 &B, const FRigidTransform3 &BTransform, const FVec3 &InitialDir)
Definition ContactPointsMiscShapes.cpp:508
void LegacyComputeSweptContactTOIAndPhiAtTargetPenetration(const FReal DirDotNormal, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &InOutTOI, FReal &InOutPhi)
Definition ContactPointsMiscShapes.cpp:174
FContactPoint SpherePlaneContactPoint(const FSphere &Sphere, const FRigidTransform3 &SphereTransform, const TPlane< FReal, 3 > &Plane, const FRigidTransform3 &PlaneTransform)
Definition ContactPointsMiscShapes.cpp:300
FContactPoint ConvexTriangleMeshContactPoint(const FImplicitObject &A, const FRigidTransform3 &ATransform, const FImplicitObject &B, const FRigidTransform3 &BTransform, const FReal CullDistance)
Definition ContactPointsMiscShapes.cpp:446
TBox< FReal, 3 > FImplicitBox3
Definition ImplicitFwd.h:23
FContactPoint SphereTriangleMeshContactPoint(const FSphere &A, const FRigidTransform3 &ATransform, const TriMeshType &B, const FRigidTransform3 &BTransform, const FReal CullDistance)
Definition ContactPointsMiscShapes.cpp:373
FContactPoint SphereTriangleMeshSweptContactPoint(const FSphere &A, const FRigidTransform3 &ATransform, const TriMeshType &B, const FRigidTransform3 &BStartTransform, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &TOI)
Definition ContactPointsMiscShapes.cpp:379
FContactPoint ConvexTriangleMeshSweptContactPoint(const FImplicitObject &A, const FRigidTransform3 &ATransform, const TriMeshType &B, const FRigidTransform3 &BStartTransform, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &TOI)
Definition ContactPointsMiscShapes.cpp:460