UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ParticleHandleFwd.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "Chaos/Real.h"
6#include <type_traits>
7
8// Use to define out code blocks that need to be adapted to use Particle Handles in a searchable way (better than #if 0)
9#define CHAOS_PARTICLEHANDLE_TODO 0
10
11namespace Chaos
12{
13 // TGeometryParticle
14
15 template <typename T, int d>
16 class TGeometryParticle;
17
18 template <typename T, int d, bool bProcessing>
19 class TGeometryParticleHandleImp;
20
21 template <typename T, int d>
23
25
26 template <typename T, int d>
28
30
31 // TKinematicGeometryParticle
32
33 template <typename T, int d>
35
36 template <typename T, int d, bool bProcessing>
38
39 template <typename T, int d>
41
43
44 template <typename T, int d>
46
48
49 // TPBDRigidParticle
50
51 template <typename T, int d>
53
54 template <typename T, int d, bool bProcessing>
56
57 template <typename T, int d>
59
61
62 template <typename T, int d>
64
66
67 // TPBDRigidClusteredParticleHandle
68
69 template <typename T, int d, bool bProcessing>
71
72 template <typename T, int d>
74
76
77 template <typename T, int d>
79
81
82 // TPBDGeometryCollectionParticleHandle
83
85
86 template <typename T, int d, bool bPersistent>
88
89 template <typename T, int d>
91
93
94 template <typename T, int d>
96
97 // Generic Particle Handle (syntactic sugar wrapping any particle handle type and providing unified API)
98
100
102
103 // TParticleIterator
104
105 template <typename TSOA>
106 class TParticleIterator;
107
108 template <typename TSOA>
110
111 // Game Thread particles
112
116
117 // Thread-templated particles
118
119 template<EThreadContext Id>
120 using TThreadParticle = std::conditional_t<Id == EThreadContext::External, FGeometryParticle, FGeometryParticleHandle>;
121
122 template<EThreadContext Id>
123 using TThreadKinematicParticle = std::conditional_t<Id == EThreadContext::External, FKinematicGeometryParticle, FKinematicGeometryParticleHandle>;
124
125 template<EThreadContext Id>
126 using TThreadRigidParticle = std::conditional_t<Id == EThreadContext::External, FPBDRigidParticle, FPBDRigidParticleHandle>;
127}
Definition ParticleHandle.h:2628
Definition ParticleHandle.h:2590
Definition ParticleHandle.h:3796
Definition ParticleIterator.h:359
Definition ParticleHandle.h:436
Definition ParticleHandle.h:2739
Definition ParticleHandle.h:907
Definition ParticleHandle.h:3293
Definition ParticleHandle.h:1641
Definition ParticleHandle.h:1500
Definition ParticleHandle.h:987
Definition ParticleHandle.h:3386
Definition ParticleIterator.h:530
Definition SkeletalMeshComponent.h:307
std::conditional_t< Id==EThreadContext::External, FKinematicGeometryParticle, FKinematicGeometryParticleHandle > TThreadKinematicParticle
Definition ParticleHandleFwd.h:123
std::conditional_t< Id==EThreadContext::External, FGeometryParticle, FGeometryParticleHandle > TThreadParticle
Definition ParticleHandleFwd.h:120
std::conditional_t< Id==EThreadContext::External, FPBDRigidParticle, FPBDRigidParticleHandle > TThreadRigidParticle
Definition ParticleHandleFwd.h:126