UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SpatialAccelerationCollisionDetector.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
10
11namespace Chaos
12{
14 {
15 public:
21
23 {
24 return BroadPhase;
25 }
26
28 {
29 if (!GetCollisionContainer().GetCollisionsEnabled())
30 {
31 return;
32 }
33
35
36 // Run the broadphase and generate a midphase object for every overlapping particle pair
37 BroadPhase.ProduceOverlaps(Dt, &GetCollisionContainer().GetConstraintAllocator(), GetCollisionContainer().GetDetectorSettings(), ResimCache);
38 }
39
41 {
42 if (!GetCollisionContainer().GetCollisionsEnabled())
43 {
44 return;
45 }
46
47 // Run collision detection on the output of the broadphase
48 {
51 BroadPhase.ProduceCollisions(Dt);
52 BroadPhase.GatherConstraints(GetCollisionContainer().GetIsDeterministic());
53 }
55
56 // If we have a resim cache restore and save contacts
57 if (ResimCache)
58 {
59 // Ensure we have at least one allocator
61
63 Context.SetSettings(GetCollisionContainer().GetDetectorSettings());
64 Context.SetAllocator(GetCollisionContainer().GetConstraintAllocator().GetContextAllocator(0));
65
67
68 ResimCache->SaveConstraints(GetCollisionContainer().GetConstraints());
69 }
70 }
71
81
82 private:
84 };
85}
#define CHAOS_SCOPED_TIMER(x)
Definition ChaosPerfTest.h:64
#define SCOPE_CYCLE_COUNTER(Stat)
Definition Stats.h:650
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define CSV_SCOPED_TIMING_STAT(Category, StatName)
Definition CsvProfiler.h:150
Definition CollisionContext.h:83
void SetSettings(const FCollisionDetectorSettings &InSettings)
Definition CollisionContext.h:100
Definition CollisionDetector.h:14
FPBDCollisionConstraints & GetCollisionContainer()
Definition CollisionDetector.h:35
Definition EvolutionResimCache.h:14
Definition PBDCollisionConstraints.h:49
CHAOS_API void EndDetectCollisions()
Called after collision detection to finalize the contacts.
Definition PBDCollisionConstraints.cpp:570
Private::FCollisionConstraintAllocator & GetConstraintAllocator()
Definition PBDCollisionConstraints.h:307
CHAOS_API void BeginDetectCollisions()
Called before collision detection to reset contacts.
Definition PBDCollisionConstraints.cpp:563
Definition SpatialAccelerationBroadPhase.h:335
void ProduceCollisions(FReal Dt)
Definition SpatialAccelerationBroadPhase.h:438
void GatherConstraints(bool bIsDeterministic)
Definition SpatialAccelerationBroadPhase.h:470
void ProduceOverlaps(FReal Dt, Private::FCollisionConstraintAllocator *Allocator, const FCollisionDetectorSettings &Settings, IResimCacheBase *ResimCache)
Definition SpatialAccelerationBroadPhase.h:355
Definition SpatialAccelerationCollisionDetector.h:14
virtual void DetectCollisions(const FReal Dt, FEvolutionResimCache *ResimCache) override
Definition SpatialAccelerationCollisionDetector.h:72
FSpatialAccelerationCollisionDetector(FSpatialAccelerationBroadPhase &InBroadPhase, FPBDCollisionConstraints &InCollisionContainer)
Definition SpatialAccelerationCollisionDetector.h:16
FSpatialAccelerationBroadPhase & GetBroadPhase()
Definition SpatialAccelerationCollisionDetector.h:22
void RunBroadPhase(const FReal Dt, FEvolutionResimCache *ResimCache)
Definition SpatialAccelerationCollisionDetector.h:27
void RunNarrowPhase(const FReal Dt, FEvolutionResimCache *ResimCache)
Definition SpatialAccelerationCollisionDetector.h:40
void AddResimConstraints(const TArray< FPBDCollisionConstraint > &InConstraints, const FCollisionContext Context)
Add a set of pre-built constraints and build required internal mapping data This is used by the resim...
Definition CollisionConstraintAllocator.h:429
void SetMaxContexts(const int32 MaxContexts)
Definition CollisionConstraintAllocator.h:262
Definition SkeletalMeshComponent.h:307
FRealDouble FReal
Definition Real.h:22