UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ChaosDebugDraw.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "Chaos/Declares.h"
8#include "Chaos/Vector.h"
9
10namespace Chaos
11{
12 namespace Private
13 {
14 class FCollisionConstraintAllocator;
15 }
16
17 class FAccelerationStructureHandle;
18 struct FCCDConstraint;
19 template <typename PayloadType, typename T, int d> class ISpatialAcceleration;
20 class FPBDSuspensionConstraints;
21 class FRigidClustering;
22 class FShapeOrShapesArray;
23
24 namespace DebugDraw
25 {
26#if CHAOS_DEBUG_DRAW
27
29 {
36 );
37
38 FColor DynamicColor;
43
45 };
46
48 {
55 );
56
57 //Note: add entries in order to avoid serialization issues (but before IsInstanced)
58 FColor SimpleTypeColor; // Sphere, Plane, Cube. Capsule, Cylinder, tapered shapes
63
65 };
66
68 {
69 public:
98 )
99 : ArrowSize(InArrowSize)
107 , LineThickness(InLineThickness)
108 , DrawScale(InDrawScale)
110 , FontScale(InFontScale)
112 , PointSize(InPointSize)
126 {
127 }
128
129 FRealSingle ArrowSize;
137 FRealSingle LineThickness;
138 FRealSingle DrawScale;
140 FRealSingle FontScale;
142 FRealSingle PointSize;
157 };
158
159 // A bitmask of features to show when drawing joints
161 {
162 public:
164 : bCoMConnector(false)
165 , bActorConnector(false)
166 , bStretch(false)
167 , bAxes(false)
168 , bLevel(false)
169 , bIndex(false)
170 , bColor(false)
171 , bIsland(false)
172 {}
173
174 static FChaosDebugDrawJointFeatures MakeEmpty()
175 {
177 }
178
180 {
182 Features.bActorConnector = true;
183 Features.bStretch = true;
184 return Features;
185 }
186
187 bool bCoMConnector;
188 bool bActorConnector;
189 bool bStretch;
190 bool bAxes;
191 bool bLevel;
192 bool bIndex;
193 bool bColor;
194 bool bIsland;
195 };
196
199
202
206 CHAOS_API void DrawParticleShapes(const FRigidTransform3& SpaceTransform, const FGeometryParticleHandle* Particle, const FRigidTransform3& ParticleTransform, const FColor& Color, const FChaosDebugDrawSettings* Settings = nullptr);
207 CHAOS_API void DrawParticleShapes(const FRigidTransform3& SpaceTransform, const FGeometryParticleHandle* Particle, const FColor& Color, const FChaosDebugDrawSettings* Settings = nullptr);
208 CHAOS_API void DrawParticleShapes(const FRigidTransform3& SpaceTransform, const FGeometryParticle* Particle, const FColor& Color, const FChaosDebugDrawSettings* Settings = nullptr);
209 CHAOS_API void DrawParticleBVH(const FRigidTransform3& SpaceTransform, const FGeometryParticleHandle* Particle, const FColor& Color, const FChaosDebugDrawSettings* Settings = nullptr);
216 CHAOS_API void DrawParticleCollisions(const FRigidTransform3& SpaceTransform, const FGeometryParticleHandle* Particle, const FPBDCollisionConstraints& Collisions, const FChaosDebugDrawSettings* Settings = nullptr);
218 CHAOS_API void DrawCollisions(const FRigidTransform3& SpaceTransform, const FPBDCollisionConstraints& Collisions, FRealSingle ColorScale, const FChaosDebugDrawSettings* Settings = nullptr);
224 CHAOS_API void DrawJointConstraints(const FRigidTransform3& SpaceTransform, const TArray<FPBDJointConstraintHandle*>& ConstraintHandles, FRealSingle ColorScale, const FChaosDebugDrawJointFeatures& FeatureMask = FChaosDebugDrawJointFeatures::MakeDefault(), const FChaosDebugDrawSettings* Settings = nullptr);
225 CHAOS_API void DrawJointConstraints(const FRigidTransform3& SpaceTransform, const FPBDJointConstraints& Constraints, FRealSingle ColorScale, const FChaosDebugDrawJointFeatures& FeatureMask = FChaosDebugDrawJointFeatures::MakeDefault(), const FChaosDebugDrawSettings* Settings = nullptr);
227 CHAOS_API void DrawShape(const FRigidTransform3& ShapeTransform, const FImplicitObject* Implicit, const FPerShapeData* Shape, const FColor& Color, const float Duration, const FChaosDebugDrawSettings* Settings = nullptr);
228 CHAOS_API void DrawSimulationSpace(const FTransform& SpaceTransform, const FSimulationSpace& SimSpace, const FChaosDebugDrawSettings* Settings = nullptr);
230 CHAOS_API void DrawConnectionGraph(const FRigidClustering& Clustering, const FChaosDebugDrawSettings* Settings = nullptr);
231 CHAOS_API void DrawCollidingShapes(const FRigidTransform3& SpaceTransform, const FPBDCollisionConstraints& Collisions, FRealSingle ColorScale, const FRealSingle Duration = 0.f, const FChaosDebugDrawSettings* Settings = nullptr);
235 CHAOS_API void DrawCCDAxisThreshold(const FVec3& X, const FVec3& AxisThreshold, const FVec3& DeltaX, const FQuat& R);
236 CHAOS_API void DrawCCDCollisionImpulse(const FRigidTransform3& SpaceTransform, const FCCDConstraint& CCDConstraint, const int32 ManifoldPointIndex, const FVec3& Impulse, const FChaosDebugDrawSettings* Settings = nullptr);
237
238
239 UE_DEPRECATED(5.4, "Pass in the ShapeInstance or call DrawParticleShapes")
240 inline void DrawShape(const FRigidTransform3& ShapeTransform, const FImplicitObject* Implicit, const FShapeOrShapesArray& Shapes, const FColor& Color, const FChaosDebugDrawSettings* Settings = nullptr)
241 {
242 DrawShape(ShapeTransform, Implicit, Shapes.IsSingleShape() ? Shapes.GetShape() : nullptr, Color, 0.0f, Settings);
243 }
244
245 UE_DEPRECATED(5.4, "Pass in the ShapeInstance or call DrawParticleShapes")
246 inline void DrawShape(const FRigidTransform3& ShapeTransform, const FImplicitObject* Implicit, const FShapeOrShapesArray& Shapes, const FColor& Color, const float Duration, const FChaosDebugDrawSettings* Settings = nullptr)
247 {
248 DrawShape(ShapeTransform, Implicit, Shapes.IsSingleShape() ? Shapes.GetShape() : nullptr, Color, Duration, Settings);
249 }
250
251 UE_DEPRECATED(5.5, "Now requires SpaceTransform as first parameter")
252 inline void DrawSimulationSpace(const FSimulationSpace& SimSpace, const FChaosDebugDrawSettings* Settings = nullptr)
253 {
254 }
255#endif
256 }
257}
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
Container class for all character ground constraints on the physics thread.
Definition CharacterGroundConstraintContainer.h:228
Definition ImplicitObject.h:111
A contact constraint.
Definition PBDCollisionConstraint.h:225
Definition PBDCollisionConstraints.h:49
Definition PBDJointConstraints.h:168
Definition PBDSuspensionConstraints.h:53
Definition ShapeInstance.h:36
Definition PBDRigidClustering.h:56
Definition GeometryParticles.h:50
bool IsSingleShape() const
Definition GeometryParticles.h:71
const FPerShapeData * GetShape() const
Definition GeometryParticles.h:76
Definition SimulationSpace.h:15
Definition ISpatialAcceleration.h:267
An allocator and container of collision constraints that supports reuse of constraints from the previ...
Definition CollisionConstraintAllocator.h:234
Definition IslandManager.h:453
Definition ParticleHandle.h:436
Definition ParticleHandle.h:2739
Definition ParticleIterator.h:639
Definition Constraints.Build.cs:6
Definition Array.h:670
Definition SkeletalMeshComponent.h:307
uint8 EImplicitObjectType
Definition ImplicitObjectType.h:41
@ X
Definition SimulationModuleBase.h:152
FRealDouble FReal
Definition Real.h:22
EObjectStateType
Definition ObjectState.h:10
float FRealSingle
Definition Real.h:14
Definition OverriddenPropertySet.cpp:45
Definition CCDUtilities.h:54
Definition Color.h:486
static CORE_API const FColor Green
Definition Color.h:753