UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CollisionOneShotManifolds.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Chaos/Convex.h"
7#include "Chaos/ImplicitFwd.h"
8#include "Chaos/Defines.h"
9#include "Chaos/Transform.h"
10
11namespace Chaos
12{
13 namespace Collisions
14 {
18
20 const FImplicitBox3& Box1,
21 const FRigidTransform3& Box1Transform, //world
22 const FImplicitBox3& Box2,
23 const FRigidTransform3& Box2Transform, //world
24 const FReal Dt,
25 FPBDCollisionConstraint& Constraint);
26
27 template <typename ConvexImplicitType1, typename ConvexImplicitType2>
33 const FReal Dt,
34 FPBDCollisionConstraint& Constraint);
35
36 template <typename ConvexType>
40 const ConvexType& Convex,
41 const FRigidTransform3& ConvexTransform,
42 const FReal CullDistance,
44
47 const FTriangle& Triangle,
48 const FReal CullDistance,
50
51 template <typename ConvexType>
53 const ConvexType& Convex,
54 const FTriangle& Triangle,
55 const FReal CullDistance,
57 }
58}
59
60
61#if 0
63
70#define SCOPE_CYCLE_COUNTER_MANIFOLD() SCOPE_CYCLE_COUNTER(STAT_Collisions_Manifold)\
71 PHYSICS_CSV_SCOPED_EXPENSIVE(PhysicsVerbose, NarrowPhase_Manifold)
72#define SCOPE_CYCLE_COUNTER_MANIFOLD_GJK() SCOPE_CYCLE_COUNTER(STAT_Collisions_ManifoldGJK)\
73 PHYSICS_CSV_SCOPED_EXPENSIVE(PhysicsVerbose, Manifold_GJK)
74#define SCOPE_CYCLE_COUNTER_MANIFOLD_ADDEDGEEDGE() SCOPE_CYCLE_COUNTER(STAT_Collisions_ManifoldEdgeEdge)\
75 PHYSICS_CSV_SCOPED_EXPENSIVE(PhysicsVerbose, Manifold_EdgeEdge)
76#define SCOPE_CYCLE_COUNTER_MANIFOLD_CLIP() SCOPE_CYCLE_COUNTER(STAT_Collisions_ManifoldClip)\
77 PHYSICS_CSV_SCOPED_EXPENSIVE(PhysicsVerbose, Manifold_Clip)
78#define SCOPE_CYCLE_COUNTER_MANIFOLD_REDUCE() SCOPE_CYCLE_COUNTER(STAT_Collisions_ManifoldReduce)\
79 PHYSICS_CSV_SCOPED_EXPENSIVE(PhysicsVerbose, Manifold_Reduce)
80#define SCOPE_CYCLE_COUNTER_MANIFOLD_ADDFACEVERTEX() SCOPE_CYCLE_COUNTER(STAT_Collisions_ManifoldFaceVertex)\
81 PHYSICS_CSV_SCOPED_EXPENSIVE(PhysicsVerbose, Manifold_FaceVertex)
82#elif 1
83#define SCOPE_CYCLE_COUNTER_MANIFOLD() PHYSICS_CSV_SCOPED_EXPENSIVE(PhysicsVerbose, NarrowPhase_Manifold)
84#define SCOPE_CYCLE_COUNTER_MANIFOLD_GJK() PHYSICS_CSV_SCOPED_EXPENSIVE(PhysicsVerbose, Manifold_GJK)
85#define SCOPE_CYCLE_COUNTER_MANIFOLD_ADDEDGEEDGE() PHYSICS_CSV_SCOPED_EXPENSIVE(PhysicsVerbose, Manifold_EdgeEdge)
86#define SCOPE_CYCLE_COUNTER_MANIFOLD_CLIP() PHYSICS_CSV_SCOPED_EXPENSIVE(PhysicsVerbose, Manifold_Clip)
87#define SCOPE_CYCLE_COUNTER_MANIFOLD_REDUCE() PHYSICS_CSV_SCOPED_EXPENSIVE(PhysicsVerbose, Manifold_Reduce)
88#define SCOPE_CYCLE_COUNTER_MANIFOLD_ADDFACEVERTEX() PHYSICS_CSV_SCOPED_EXPENSIVE(PhysicsVerbose, Manifold_FaceVertex)
89#else
90#define SCOPE_CYCLE_COUNTER_MANIFOLD()
91#define SCOPE_CYCLE_COUNTER_MANIFOLD_GJK()
92#define SCOPE_CYCLE_COUNTER_MANIFOLD_ADDEDGEEDGE()
93#define SCOPE_CYCLE_COUNTER_MANIFOLD_CLIP()
94#define SCOPE_CYCLE_COUNTER_MANIFOLD_REDUCE()
95#define SCOPE_CYCLE_COUNTER_MANIFOLD_ADDFACEVERTEX()
96#endif
97
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define DECLARE_CYCLE_STAT(CounterName, StatId, GroupId)
Definition Stats.h:669
#define DECLARE_STATS_GROUP(GroupDesc, GroupId, GroupCat)
Definition Stats.h:689
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32_t uint32
Definition binka_ue_file_header.h:6
uint32 ReduceManifoldContactPoints(FVec3 *Points, uint32 PointCount)
General Convexes.
Definition CollisionOneShotManifolds.cpp:268
uint32 BoxBoxClipVerticesAgainstPlane(const FVec3 *InputVertexBuffer, FVec3 *outputVertexBuffer, uint32 ClipPointCount, int32 ClippingAxis, FReal Distance)
Definition CollisionOneShotManifolds.cpp:183
void ConstructCapsuleTriangleOneShotManifold(const FImplicitCapsule3 &Capsule, const FTriangle &Triangle, const FReal CullDistance, FContactPointManifold &OutContactPoints)
Definition CollisionOneShotManifolds.cpp:1273
uint32 ClipVerticesAgainstPlane(const FVec3 *InputVertexBuffer, FVec3 *OutputVertexBuffer, const uint32 ClipPointCount, const uint32 MaxNumberOfOutputPoints, const FVec3 ClippingPlaneNormal, const FReal PlaneDistance)
Definition CollisionOneShotManifolds.cpp:361
void ConstructPlanarConvexTriangleOneShotManifold(const ConvexType &Convex, const FTriangle &Triangle, const FReal CullDistance, FContactPointManifold &OutContactPoints)
Definition CollisionOneShotManifolds.cpp:1288
void ConstructCapsuleConvexOneShotManifold(const FImplicitCapsule3 &Capsule, const FRigidTransform3 &CapsuleTransform, const ConvexType &Convex, const FRigidTransform3 &ConvexTransform, const FReal CullDistance, FContactPointManifold &OutContactPoints)
Definition CollisionOneShotManifolds.cpp:1078
void ConstructBoxBoxOneShotManifold(const FImplicitBox3 &Box1, const FRigidTransform3 &Box1Transform, const FImplicitBox3 &Box2, const FRigidTransform3 &Box2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint)
Definition CollisionOneShotManifolds.cpp:250
void ConstructConvexConvexOneShotManifold(const ConvexImplicitType1 &Convex1, const FRigidTransform3 &Convex1Transform, const ConvexImplicitType2 &Convex2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint)
Definition CollisionOneShotManifolds.cpp:820
Definition SkeletalMeshComponent.h:307
TRigidTransform< FReal, 3 > FRigidTransform3
Definition Core.h:22
TCArray< FContactPoint, 4 > FContactPointManifold
Definition CollisionResolutionTypes.h:32
FRealDouble FReal
Definition Real.h:22
TVector< FReal, 3 > FVec3
Definition Core.h:17
FCapsule FImplicitCapsule3
Definition ImplicitFwd.h:24
TBox< FReal, 3 > FImplicitBox3
Definition ImplicitFwd.h:23
Definition BlendSpaceHelpers.h:88