86 template<
typename TVisitor>
131 template<
typename TParticleFilter,
typename TShapeFilter,
typename TOverlapCollector>
167 FRigidTransform3::Identity,
214 template<
typename TShapeFilter,
typename THitCollector>
218 const FVec3& StartPos,
304 template<
typename TParticleFilter,
typename TShapeFilter,
typename THitCollector>
308 const FVec3& StartPos,
434 return FirstHit.
IsHit();
462 if ((
InHit.HitDistance > 0) || (FVec3::DotProduct(
InHit.HitNormal, Dir) < 0))
470 FSimSweepParticleHit& FirstHit;
471 FReal HitDistanceEqualTolerance;
496 FIgnoreCollisionManager* IgnoreCollisionManager,
498 const FVec3& StartPos,
502 FSimSweepParticleHit&
OutHit,
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_SMALL_NUMBER
Definition UnrealMathUtility.h:130
#define UE_KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:131
Definition CollisionConstraintFlags.h:33
Definition ImplicitObject.h:111
Definition ShapeInstance.h:36
Definition ISpatialAcceleration.h:267
virtual void Overlap(const FAABB3 &QueryBounds, ISpatialVisitor< TPayloadType, FReal > &Visitor) const
Definition ISpatialAcceleration.h:298
virtual void Sweep(const FVec3 &Start, const FVec3 &Dir, const FReal Length, const FVec3 QueryHalfExtents, ISpatialVisitor< TPayloadType, FReal > &Visitor) const
Definition ISpatialAcceleration.h:297
Definition ISpatialAcceleration.h:120
FRigidTransform3 ShapeWorldTransform
Definition SimSweep.h:80
const FPerShapeData * HitShape
Definition SimSweep.h:77
FSimOverlapParticleShape()
Definition SimSweep.h:69
const FGeometryParticleHandle * HitParticle
Definition SimSweep.h:74
Definition SimSweep.h:403
bool operator()(const FVec3 &Dir, const FReal Length, const FSimSweepParticleHit &InHit)
Definition SimSweep.h:421
FSimSweepCollectorFirstHit(const FReal InHitDistanceEqualTolerance, FSimSweepParticleHit &OutFirstHit)
Definition SimSweep.h:411
const FSimSweepParticleHit & GetFirstHit() const
Definition SimSweep.h:437
void Init()
Definition SimSweep.h:427
bool IsHit() const
Definition SimSweep.h:432
Definition SimSweep.h:365
FSimSweepParticleFilterBroadPhase(FIgnoreCollisionManager *InIgnoreCollisionManager)
Definition SimSweep.h:367
bool operator()(const FGeometryParticleHandle *SweptParticle, const FGeometryParticleHandle *OtherParticle)
Definition SimSweep.h:372
const FImplicitObject * HitGeometry
Definition SimSweep.h:42
FReal HitDistance
Definition SimSweep.h:54
const FPerShapeData * HitShape
Definition SimSweep.h:39
bool IsHit() const
Definition SimSweep.h:30
int32 HitFaceIndex
Definition SimSweep.h:60
FSimSweepParticleHit()
Definition SimSweep.h:20
FReal HitTOI
Definition SimSweep.h:57
FVec3 HitPosition
Definition SimSweep.h:45
FVec3 HitFaceNormal
Definition SimSweep.h:51
void Init()
Definition SimSweep.h:25
const FGeometryParticleHandle * HitParticle
Definition SimSweep.h:36
FVec3 HitNormal
Definition SimSweep.h:48
Definition SimSweep.h:386
bool operator()(const FPerShapeData *SweptShape, const FImplicitObject *SweptImplicit, const FPerShapeData *OtherShape, const FImplicitObject *OtherImplicit)
Definition SimSweep.h:388
TSpatialVisitorData< FAccelerationStructureHandle > FVisitorData
Definition SimSweep.h:90
virtual bool Overlap(const FVisitorData &Instance) override final
Definition SimSweep.h:97
TSimSweepSQVisitor(const TVisitor &InVisitor)
Definition SimSweep.h:92
virtual bool Sweep(const FVisitorData &Instance, FQueryFastData &CurData) override final
Definition SimSweep.h:102
virtual bool Raycast(const FVisitorData &Instance, FQueryFastData &CurData) override final
Definition SimSweep.h:107
Definition ParticleHandle.h:436
Definition UniquePtr.h:107
@ Unknown
Definition ImplicitObjectType.h:20
void SimSweepParticle(ISpatialAcceleration< FAccelerationStructureHandle, FReal, 3 > *SpatialAcceleration, const FGeometryParticleHandle *SweptParticle, const FVec3 &StartPos, const FRotation3 &Rot, const FVec3 &Dir, const FReal Length, TParticleFilter &ParticleFilter, TShapeFilter &ShapeFilter, THitCollector &HitCollector)
Definition SimSweep.h:305
void SimSweepParticlePair(const FGeometryParticleHandle *SweptParticle, const FGeometryParticleHandle *OtherParticle, const FVec3 &StartPos, const FRotation3 &Rot, const FVec3 &Dir, const FReal Length, TShapeFilter &ShapeFilter, THitCollector &HitCollector)
Definition SimSweep.h:215
void SimOverlapBounds(ISpatialAcceleration< FAccelerationStructureHandle, FReal, 3 > *SpatialAcceleration, const FAABB3 &QueryBounds, TParticleFilter &ParticleFilter, TShapeFilter &ShapeFilter, TOverlapCollector &OverlapCollector)
Definition SimSweep.h:132
bool SimOverlapBoundsAll(ISpatialAcceleration< FAccelerationStructureHandle, FReal, 3 > *SpatialAcceleration, const FAABB3 &QueryBounds, TArray< FSimOverlapParticleShape > &Overlaps)
Definition SimSweep.cpp:29
bool SimSweepParticleFirstHit(ISpatialAcceleration< FAccelerationStructureHandle, FReal, 3 > *SpatialAcceleration, FIgnoreCollisionManager *InIgnoreCollisionManager, const FGeometryParticleHandle *SweptParticle, const FVec3 &StartPos, const FRotation3 &Rot, const FVec3 &Dir, const FReal Length, FSimSweepParticleHit &OutHit, const FReal InHitDistanceEqualTolerance)
Definition SimSweep.cpp:9
Definition SkeletalMeshComponent.h:307
bool SweepQuery(const FImplicitObject &A, const FRigidTransform3 &ATM, const SweptGeometry &B, const FRigidTransform3 &BTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness, const bool bComputeMTD)
Definition GeometryQueries.h:252
TRigidTransform< FReal, 3 > FRigidTransform3
Definition Core.h:22
uint8 EImplicitObjectType
Definition ImplicitObjectType.h:41
FRealDouble FReal
Definition Real.h:22
TRotation< FReal, 3 > FRotation3
Definition Core.h:19
TVector< FReal, 3 > FVec3
Definition Core.h:17
TGeometryParticleHandle< FReal, 3 > FGeometryParticleHandle
Definition ParticleHandleFwd.h:24
bool ParticlePairBroadPhaseFilter(const FGeometryParticleHandle *Particle1, const FGeometryParticleHandle *Particle2, const FIgnoreCollisionManager *IgnoreCollisionManager)
Definition CollisionFilter.h:22
bool OverlapQuery(const FImplicitObject &A, const FRigidTransform3 &ATM, const QueryGeometry &B, const FRigidTransform3 &BTM, const FReal Thickness=0, FMTDInfo *OutMTD=nullptr)
Definition GeometryQueries.h:34
bool ShapePairNarrowPhaseFilter(EImplicitObjectType Implicit0Type, const FPerShapeData *Shape0, EImplicitObjectType Implicit1Type, const FPerShapeData *Shape1)
Definition CollisionFilter.h:179
FORCEINLINE EImplicitObjectType GetInnerType(EImplicitObjectType Type)
Definition ImplicitObjectType.h:58
TAABB< FReal, 3 > FAABB3
Definition ImplicitObject.h:34
Definition OverriddenPropertySet.cpp:45
Definition ISpatialAcceleration.h:14
Definition ISpatialAcceleration.h:99
static UE_FORCEINLINE_HINT bool IsNearlyEqual(float A, float B, float ErrorTolerance=UE_SMALL_NUMBER)
Definition UnrealMathUtility.h:388