UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ChaosVDSQVisitorHelpers.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4#if WITH_CHAOS_VISUAL_DEBUGGER
5
10
12#ifndef CVD_TRACE_SCOPED_SCENE_QUERY_VISIT_HELPER
13 #define CVD_TRACE_SCOPED_SCENE_QUERY_VISIT_HELPER(Type, ParticleTransform, ParticleIndex, ShapeIndex, CurData) \
14 CVD_SCOPED_DATA_CHANNEL_OVERRIDE(CVDDC_SceneQueries) \
15 FChaosVDQueryVisitStep CVDSQVisitStepData; \
16 CVD_TRACE_SCOPED_SCENE_QUERY_VISIT(CVDSQVisitStepData); \
17 Chaos::VisualDebugger::TraceHelpers::FillCVDQueryVisitData(CVDSQVisitStepData, Type, ParticleTransform, ParticleIndex, ShapeIndex, CurData);
18#endif
19
23#ifndef CVD_FILL_HIT_DATA_HELPER
24 #define CVD_FILL_HIT_DATA_HELPER(Hit, HitType) \
25 Chaos::VisualDebugger::TraceHelpers::FillCVDHitDataHelper(Hit, HitType, CVDSQVisitStepData);
26#endif
27
29#ifndef CVD_SET_SQ_SHAPE_REJECT_REASON
30 #define CVD_SET_SQ_SHAPE_REJECT_REASON(Reason) \
31 CVDSQVisitStepData.RejectReason = Reason;
32#endif
33
34namespace Chaos::VisualDebugger::TraceHelpers
35{
36 template <class THitType>
38 inline void FillCVDQueryVisitData(FChaosVDQueryVisitStep& InOutVisitData, EChaosVDSceneQueryVisitorType Type, const FTransform& ParticleTransform, int32 ParticleIndex, int32 ShapeIndex, const Chaos::FQueryFastData* CurData)
39 {
40 if (!FChaosVisualDebuggerTrace::IsTracing())
41 {
42 return;
43 }
44
45 InOutVisitData.Type = Type;
46 InOutVisitData.ParticleTransform = ParticleTransform;
47 InOutVisitData.ParticleIndex = ParticleIndex;
48 InOutVisitData.ShapeIndex = ShapeIndex;
49
50 if (CurData)
51 {
52 InOutVisitData.QueryFastData.Dir = CurData->Dir;
53 InOutVisitData.QueryFastData.InvDir = CurData->InvDir;
54 InOutVisitData.QueryFastData.CurrentLength = CurData->CurrentLength;
55 InOutVisitData.QueryFastData.InvCurrentLength = CurData->InvCurrentLength;
56 InOutVisitData.QueryFastData.bParallel0 = CurData->bParallel[0];
57 InOutVisitData.QueryFastData.bParallel1 = CurData->bParallel[1];
58 InOutVisitData.QueryFastData.bParallel2 = CurData->bParallel[2];
59 InOutVisitData.QueryFastData.MarkAsValid();
60 }
61
62 InOutVisitData.MarkAsValid();
63 }
64
65 template <class THitType>
67 {
68 if (!FChaosVisualDebuggerTrace::IsTracing())
69 {
70 return;
71 }
72
73 if constexpr (std::is_base_of_v<ChaosInterface::FLocationHit, THitType> || std::is_base_of_v<ChaosInterface::FPTLocationHit, THitType>)
74 {
75 InOutVisitData.HitData.Distance = Hit.Distance;
76 InOutVisitData.HitData.WorldPosition = Hit.WorldPosition;
77 InOutVisitData.HitData.WorldNormal = Hit.WorldNormal;
78 InOutVisitData.HitData.Flags = static_cast<uint16>(Hit.Flags.HitFlags);
79 InOutVisitData.HitData.FaceIdx = Hit.FaceIndex;
80 }
81
82 if constexpr (std::is_base_of_v<ChaosInterface::FQueryHit, THitType> || std::is_base_of_v<ChaosInterface::FPTQueryHit, THitType>)
83 {
84 InOutVisitData.HitData.FaceNormal = Hit.FaceNormal;
85 }
86
87 InOutVisitData.HitType = static_cast<EChaosVDCollisionQueryHitType>(HitType);
88
89 InOutVisitData.HitData.MarkAsValid();
90 }
91}
92
93#else
94 #ifndef CVD_TRACE_SCOPED_SCENE_QUERY_VISIT_HELPER
95 #define CVD_TRACE_SCOPED_SCENE_QUERY_VISIT_HELPER(Type, ParticleTransform, ParticleIndex, ShapeIndex, CurData)
96 #endif
97 #ifndef CVD_FILL_HIT_DATA_HELPER
98 #define CVD_FILL_HIT_DATA_HELPER(Hit, HitType)
99 #endif
100 #ifndef CVD_SET_SQ_SHAPE_REJECT_REASON
101 #define CVD_SET_SQ_SHAPE_REJECT_REASON(RejectReason)
102 #endif
103#endif
EChaosVDCollisionQueryHitType
Definition ChaosVDQueryDataWrappers.h:339
EChaosVDSceneQueryVisitorType
Definition ChaosVDQueryDataWrappers.h:358
ECollisionQueryHitType
Definition CollisionQueryFilterCallbackCore.h:13
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
uint16_t uint16
Definition binka_ue_file_header.h:7
Type
Definition PawnAction_Move.h:11
Definition ISpatialAcceleration.h:14
Definition ChaosVDQueryDataWrappers.h:366