UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ConvexElem.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
9
10#include "ConvexElem.generated.h"
11
15struct FKBoxElem;
16
17namespace physx
18{
19 class PxConvexMesh;
20}
21
22namespace Chaos
23{
24 class FImplicitObject;
25
26 class FConvex;
27}
28
30USTRUCT()
32{
34
35
36 UPROPERTY()
37 TArray<FVector> VertexData;
38
39 UPROPERTY()
40 TArray<int32> IndexData;
41
43 UPROPERTY()
44 FBox ElemBox;
45
48 UPROPERTY()
50
51 Chaos::FConvexPtr ChaosConvex;
52
53public:
54
56 {
58 UpdateConvexDataOnlyIfMissing = 0,
59
61 AlwaysUpdateConvexData
62 };
63
67
68 ENGINE_API const FKConvexElem& operator=(const FKConvexElem& Other);
69
70 ENGINE_API void DrawElemWire(class FPrimitiveDrawInterface* PDI, const FTransform& ElemTM, const float Scale, const FColor Color) const override;
71 ENGINE_API void DrawElemSolid(class FPrimitiveDrawInterface* PDI, const FTransform& ElemTM, const float Scale, const FMaterialRenderProxy* MaterialRenderProxy) const override;
72
73 ENGINE_API void AddCachedSolidConvexGeom(TArray<FDynamicMeshVertex>& VertexBuffer, TArray<uint32>& IndexBuffer, const FColor VertexColor) const;
74
76 ENGINE_API void Reset();
77
79 ENGINE_API void UpdateElemBox();
80
82 ENGINE_API FBox CalcAABB(const FTransform& BoneTM, const FVector& Scale3D) const;
83
85 ENGINE_API void GetPlanes(TArray<FPlane>& Planes) const;
86
89
91 ENGINE_API void ConvexFromBoxElem(const FKBoxElem& InBox);
92
94 ENGINE_API void BakeTransformToVerts();
95
97 UE_DEPRECATED(5.1, "Changed to GetScaledVolume. Note that Volume calculation now includes non-uniform scale so values may have changed")
98 FVector::FReal GetVolume(const FVector& Scale) const;
99
101 FVector::FReal GetScaledVolume(const FVector& Scale3D) const;
102
103 const auto& GetChaosConvexMesh() const
104 {
105 return ChaosConvex;
106 }
107
115 UE_DEPRECATED(5.4, "Use SetConvexMeshObject instead")
117
118 ENGINE_API void SetConvexMeshObject(Chaos::FConvexPtr&& InChaosConvex, EConvexDataUpdateMethod ConvexDataUpdateMethod = EConvexDataUpdateMethod::AlwaysUpdateConvexData);
119
120 ENGINE_API void ResetChaosConvexMesh();
121
122 ENGINE_API void ComputeChaosConvexIndices(bool bForceCompute = false);
123
124 ENGINE_API TArray<int32> GetChaosConvexIndices() const;
125
127 virtual FTransform GetTransform() const override final
128 {
129 return Transform;
130 };
131
137 {
138 ensure(InTransform.IsValid());
140 }
141
143
144 ENGINE_API void ScaleElem(FVector DeltaSize, float MinSize);
145
154 ENGINE_API float GetClosestPointAndNormal(const FVector& WorldPosition, const FTransform& BodyToWorldTM, FVector& ClosestWorldPosition, FVector& Normal) const;
155
162 ENGINE_API float GetShortestDistanceToPoint(const FVector& WorldPosition, const FTransform& BodyToWorldTM) const;
163
165
166private:
168 void CloneElem(const FKConvexElem& Other);
169};
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
@ Normal
Definition AndroidInputInterface.h:116
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
#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
FArchive & operator<<(FArchive &Ar, FEnvQueryDebugProfileData::FStep &Data)
Definition EnvQueryTypes.cpp:489
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
ESPMode
Definition SharedPointerFwd.h:12
#define UE_SMALL_NUMBER
Definition UnrealMathUtility.h:130
Definition Archive.h:1208
Definition MaterialRenderProxy.h:102
Definition PrimitiveDrawInterface.h:19
Definition Array.h:670
Definition SharedPointer.h:692
Definition SkeletalMeshComponent.h:307
Type
Definition ShapeElem.h:17
Definition ShapeComponent.h:16
Definition Color.h:486
Definition DynamicMeshBuilder.h:26
Definition BoxElem.h:16
Definition ConvexElem.h:32
void SetTransform(const FTransform &InTransform)
Definition ConvexElem.h:136
virtual FTransform GetTransform() const override final
Definition ConvexElem.h:127
EConvexDataUpdateMethod
Definition ConvexElem.h:56
static ENGINE_API EAggCollisionShape::Type StaticShapeType
Definition ConvexElem.h:164
Definition ShapeElem.h:35