UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ChaosVDQueryDataWrappers.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
6
7#include "ChaosVDQueryDataWrappers.generated.h"
8
9UENUM()
17
18UENUM()
20{
21 Single,
22 Multi,
23 Test,
25};
26
27USTRUCT()
29{
31
33
34 template <typename TOther>
35 void CopyFrom(const TOther& Other)
36 {
37 const int32 ArrayNum = UE_ARRAY_COUNT(Other.CollisionResponse.EnumArray);
38 for (int32 ChannelIndex = 0; ChannelIndex < ArrayNum; ++ChannelIndex)
39 {
40 FlagsPerChannel.Add(Other.CollisionResponse.EnumArray[ChannelIndex]);
41 }
42
43 bHasValidData = true;
44 }
45
47};
48
50{
51 Data.Serialize(Ar);
52 return Ar;
53}
54
55template<>
57{
58 enum
59 {
61 };
62};
63
64USTRUCT()
66{
68
70
71 template <typename TOther>
72 void CopyFrom(const TOther& Other)
73 {
74 ObjectTypesToQuery = Other.ObjectTypesToQuery;
75 IgnoreMask = Other.IgnoreMask;
76 bHasValidData = true;
77 }
78
79 UPROPERTY(VisibleAnywhere, Category=QueryData)
80 uint8 ObjectTypesToQuery = 0;
81
82 UPROPERTY(VisibleAnywhere, Category=QueryData)
83 uint8 IgnoreMask = 0;
84};
85
87{
88 Data.Serialize(Ar);
89 return Ar;
90}
91
92template<>
93struct TStructOpsTypeTraits<FChaosVDCollisionObjectQueryParams> : public TStructOpsTypeTraitsBase2<FChaosVDCollisionObjectQueryParams>
94{
95 enum
96 {
98 };
99};
100
101UENUM()
103{
104 None = 0,
106 TraceComplex = 1 << 0,
108 FindInitialOverlaps = 1 << 1,
110 ReturnFaceIndex = 1 << 2,
112 ReturnPhysicalMaterial = 1 << 3,
114 IgnoreBlocks = 1 << 4,
116 IgnoreTouches = 1 << 5,
118 SkipNarrowPhase = 1 << 6,
120 TraceIntoSubComponents = 1 << 7,
123};
124
126
127USTRUCT()
129{
131
133
134 template <typename TOther>
135 void CopyFrom(const TOther& Other)
136 {
137 TraceTag = Other.TraceTag;
138 OwnerTag = Other.OwnerTag;
139 bTraceComplex = Other.bTraceComplex;
140 bFindInitialOverlaps = Other.bFindInitialOverlaps;
141 bReturnFaceIndex = Other.bReturnFaceIndex;
142 bReturnPhysicalMaterial = Other.bReturnPhysicalMaterial;
143 bIgnoreBlocks = Other.bIgnoreBlocks;
144 bIgnoreTouches = Other.bIgnoreTouches;
145 bSkipNarrowPhase = Other.bSkipNarrowPhase;
146 bTraceIntoSubComponents = Other.bTraceIntoSubComponents;
147 bReplaceHitWithSubComponents = Other.bReplaceHitWithSubComponents;
148 IgnoreMask = Other.IgnoreMask;
149
150 bHasValidData = true;
151 }
152
154 UPROPERTY(VisibleAnywhere, Category=QueryData)
155 FName TraceTag;
156
158 UPROPERTY(VisibleAnywhere, Category=QueryData)
159 FName OwnerTag;
160
162 UPROPERTY(VisibleAnywhere, Category=QueryData)
164
166 UPROPERTY(VisibleAnywhere, Category=QueryData)
167 uint16 bFindInitialOverlaps : 1= false;
168
170 UPROPERTY(VisibleAnywhere, Category=QueryData)
171 uint16 bReturnFaceIndex : 1 = false;
172
174 UPROPERTY(VisibleAnywhere, Category=QueryData)
175 uint16 bReturnPhysicalMaterial : 1 = false;
176
178 UPROPERTY(VisibleAnywhere, Category=QueryData)
179 uint16 bIgnoreBlocks : 1 = false;
180
182 UPROPERTY(VisibleAnywhere, Category=QueryData)
183 uint16 bIgnoreTouches : 1 = false;
184
186 UPROPERTY(VisibleAnywhere, Category=QueryData)
187 uint16 bSkipNarrowPhase : 1 = false;
188
190 UPROPERTY(VisibleAnywhere, Category=QueryData)
191 uint16 bTraceIntoSubComponents : 1 = false;
192
194 UPROPERTY(VisibleAnywhere, Category=QueryData)
195 uint16 bReplaceHitWithSubComponents : 1 = false;
196
198 UPROPERTY(VisibleAnywhere, Category=QueryData)
199 uint8 IgnoreMask = 0;
200
201 TArray<uint32> IgnoredComponentsIDs;
202
203 TArray<uint32> IgnoredActorsIDs;
204
205 UPROPERTY(VisibleAnywhere, Category=QueryData)
206 TArray<FName> IgnoredActorsNames;
207
208 UPROPERTY(VisibleAnywhere, Category=QueryData)
209 TArray<FName> IgnoredComponentsNames;
210};
211
213{
214 Data.Serialize(Ar);
215 return Ar;
216}
217
218template<>
220{
221 enum
222 {
224 };
225};
226
227UENUM()
229{
230 None = 0,
231 Parallel0 = 1 << 0,
232 Parallel1 = 1 << 1,
233 Parallel2 = 1 << 2
234};
235
236USTRUCT()
238{
240
242
243 UPROPERTY(VisibleAnywhere, Category=QueryFastData)
244 FVector Dir = FVector::ZeroVector;
245
246 UPROPERTY(VisibleAnywhere, Category=QueryFastData)
247 FVector InvDir = FVector::ZeroVector;
248
249 UPROPERTY(VisibleAnywhere, Category=QueryFastData)
250 double CurrentLength = 0.0;
251
252 UPROPERTY(VisibleAnywhere, Category=QueryFastData)
253 double InvCurrentLength = 0.0;
254
255 UPROPERTY(VisibleAnywhere, Category=QueryFastData)
256 uint8 bParallel0 : 1 = false;
257
258 UPROPERTY(VisibleAnywhere, Category=QueryFastData)
259 uint8 bParallel1 : 1 = false;
260
261 UPROPERTY(VisibleAnywhere, Category=QueryFastData)
262 uint8 bParallel2 : 1 = false;
263};
264
266{
267 Data.Serialize(Ar);
268 return Ar;
269}
270
271template<>
273{
274 enum
275 {
277 };
278};
279
281UENUM(meta = (Bitflags, UseEnumValuesAsMaskValuesInEditor = "true"))
283{
284 None = 0,
285 Position = 1 << 0,
286 Normal = 1 << 1,
287 Distance = 1 << 2,
288 UV = 1 << 3,
289 MTD = 1 << 9,
290 FaceIndex = 1 << 10
291};
292
294
295USTRUCT()
297{
299
301
302 UPROPERTY(VisibleAnywhere, Category=QueryData)
304
305 UPROPERTY(VisibleAnywhere, Category=QueryData)
306 int32 FaceIdx = INDEX_NONE;
307
308 UPROPERTY(VisibleAnywhere, Category=QueryData, meta = (Bitmask, BitmaskEnum = "/Script/ChaosVDRuntime.EChaosVDSQHitFlags"))
310
311 UPROPERTY(VisibleAnywhere, Category=QueryData)
313
314 UPROPERTY(VisibleAnywhere, Category=QueryData)
315 FVector WorldNormal = FVector::ZeroVector;
316
318 UPROPERTY(VisibleAnywhere, Category=QueryData)
319 FVector FaceNormal = FVector::ZeroVector;
320};
321
323{
324 Data.Serialize(Ar);
325 return Ar;
326}
327
328template<>
330{
331 enum
332 {
334 };
335};
336
337UENUM()
339{
340 None = 0,
341 Touch = 1,
342 Block = 2
343};
344
345UENUM()
347{
348 None = 0,
349 NoHit = 1,
350 PreFilter = 2,
351 PostFilter = 3,
354};
355
356UENUM()
363
364USTRUCT()
366{
368
370
372
373 int32 OwningQueryID = INDEX_NONE;
374
375 UPROPERTY(VisibleAnywhere, Category="SQ Visit Data")
377
378 UPROPERTY(VisibleAnywhere, Category="SQ Visit Data")
379 uint32 ShapeIndex = 0;
380
381 UPROPERTY(VisibleAnywhere, Category="SQ Visit Data")
382 int32 ParticleIndex = INDEX_NONE;
383
384 UPROPERTY(VisibleAnywhere, Category="SQ Visit Data")
385 FTransform ParticleTransform;
386
387 UPROPERTY(VisibleAnywhere, Category="SQ Visit Data")
389
390 UPROPERTY(VisibleAnywhere, Category="SQ Visit Data")
392
393 UPROPERTY(VisibleAnywhere, Category="SQ Visit Data")
395
396 UPROPERTY(VisibleAnywhere, Category="SQ Visit Data")
398
402 int32 SolverID_Editor = INDEX_NONE;
403};
404
406{
407 Data.Serialize(Ar);
408 return Ar;
409}
410
411template<>
413{
414 enum
415 {
417 };
418};
419
420USTRUCT()
422{
424
426
428
429 UPROPERTY(VisibleAnywhere, Category="CVD QueryData")
431
432 UPROPERTY(VisibleAnywhere, Category="CVD QueryData")
433 int32 ParentQueryID = INDEX_NONE;
434
435 UPROPERTY(VisibleAnywhere, Category="CVD QueryData")
436 int32 WorldSolverID = INDEX_NONE;
437
438 UPROPERTY(VisibleAnywhere, Category=RecordedQueryData)
439 bool bIsRetryQuery = false;
440
441 uint32 InputGeometryKey = 0;
442
443 UPROPERTY(VisibleAnywhere, Category=RecordedQueryData)
444 FQuat GeometryOrientation = FQuat::Identity;
445
446 UPROPERTY(VisibleAnywhere, Category=RecordedQueryData)
448
449 UPROPERTY(VisibleAnywhere, Category=RecordedQueryData)
451
452 UPROPERTY(VisibleAnywhere, Category=RecordedQueryData)
453 FVector StartLocation = FVector::ZeroVector;
454
455 UPROPERTY(VisibleAnywhere, Category=RecordedQueryData)
456 FVector EndLocation = FVector::ZeroVector;
457
458 UPROPERTY(VisibleAnywhere, Category=RecordedQueryData)
459 int32 CollisionChannel = INDEX_NONE;
460
461 UPROPERTY(VisibleAnywhere, Category=RecordedQueryData)
462 FChaosVDCollisionQueryParams CollisionQueryParams;
463
464 UPROPERTY(VisibleAnywhere, Category=RecordedQueryData)
465 FChaosVDCollisionResponseParams CollisionResponseParams;
466
467 UPROPERTY(VisibleAnywhere, Category=RecordedQueryData)
468 FChaosVDCollisionObjectQueryParams CollisionObjectQueryParams;
469
471
472 UPROPERTY(VisibleAnywhere, Category=QueryData)
474
475 TArray<int32> SubQueriesIDs;
476
477 int32 CurrentVisitIndex = 0;
478};
479
481{
482 Data.Serialize(Ar);
483 return Ar;
484}
485
486template<>
488{
489 enum
490 {
492 };
493};
494
495USTRUCT()
497{
499
500 TMap<int32, TMap<int32, TSharedPtr<FChaosVDQueryDataWrapper>>> RecordedSceneQueriesBySolverID;
501
502 TMap<int32, TSharedPtr<FChaosVDQueryDataWrapper>> RecordedSceneQueriesByQueryID;
503};
EChaosVDCollisionQueryHitType
Definition ChaosVDQueryDataWrappers.h:339
EChaosVDSQHitFlags
Definition ChaosVDQueryDataWrappers.h:283
EChaosVDSceneQueryMode
Definition ChaosVDQueryDataWrappers.h:20
EChaosVDQueryFastDataParallelFlags
Definition ChaosVDQueryDataWrappers.h:229
EChaosVDSceneQueryVisitorType
Definition ChaosVDQueryDataWrappers.h:358
FArchive & operator<<(FArchive &Ar, FChaosVDCollisionResponseParams &Data)
Definition ChaosVDQueryDataWrappers.h:49
EChaosVDSQVisitRejectReason
Definition ChaosVDQueryDataWrappers.h:347
EChaosVDSceneQueryType
Definition ChaosVDQueryDataWrappers.h:11
EChaosVDCollisionQueryParamsFlags
Definition ChaosVDQueryDataWrappers.h:103
@ INDEX_NONE
Definition CoreMiscDefines.h:150
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
const bool bTraceComplex
Definition PhysicsInterfaceUtils.h:19
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
decltype(auto) Visit(Func &&Callable, Variants &&... Args)
Definition TVariant.h:271
#define UE_ARRAY_COUNT(array)
Definition UnrealTemplate.h:212
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition NameTypes.h:617
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
@ false
Definition radaudio_common.h:23
Definition ChaosVDQueryDataWrappers.h:66
void CopyFrom(const TOther &Other)
Definition ChaosVDQueryDataWrappers.h:72
Definition ChaosVDQueryDataWrappers.h:129
void CopyFrom(const TOther &Other)
Definition ChaosVDQueryDataWrappers.h:135
Definition ChaosVDQueryDataWrappers.h:29
void CopyFrom(const TOther &Other)
Definition ChaosVDQueryDataWrappers.h:35
TArray< uint8, TInlineAllocator< 32 > > FlagsPerChannel
Definition ChaosVDQueryDataWrappers.h:46
Definition ChaosVDQueryDataWrappers.h:422
Definition ChaosVDQueryDataWrappers.h:238
Definition ChaosVDQueryDataWrappers.h:297
Definition ChaosVDQueryDataWrappers.h:366
Definition ChaosVDQueryDataWrappers.h:497
Definition ChaosVDParticleDataWrapper.h:76
Definition StructOpsTypeTraits.h:11
@ WithSerializer
Definition StructOpsTypeTraits.h:23
Definition StructOpsTypeTraits.h:46