UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CollectionRenderingFacade.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
5#include "Containers/Array.h"
6#include "Math/MathFwd.h"
10#include "Chaos/Triangle.h"
11
13{
14
22 {
23 public:
32
35
37 bool IsConst() const { return Collection==nullptr; }
38
40 CHAOS_API bool IsValid() const;
41
43 CHAOS_API bool CanRenderSurface() const;
44
45 //
46 // Facade API
47 //
48
51
54
57
60
63
65 CHAOS_API void AddBox(const FBox& InBox);
67
70
72 CHAOS_API void AddSphere(const FSphere& InSphere, const FLinearColor& InColor);
73 CHAOS_API void AddSphere(const FVector3f& InCenter, const float InRadius, const FLinearColor& InColor);
74
76 CHAOS_API void AddSpheres(const TArray<FSphere>& InSpheres, const FLinearColor& InColor);
77
79 CHAOS_API void AddCapsule(const float Length, const float Radius, FLinearColor Color = FLinearColor::White, int32 Sides = 8);
80
83
86
89
92
95
97 const TManagedArray< FIntVector >& GetIndices() const { return IndicesAttribute.Get(); }
98
100 const TManagedArray< int32 >& GetMaterialID() const { return MaterialIDAttribute.Get(); }
101
103 const TManagedArray< FTriangleSection >& GetTriangleSections() const { return TriangleSectionAttribute.Get(); }
104
107
108
109 //
110 // Vertices
111 //
112
114 const TManagedArray< FVector3f >& GetVertices() const { return VertexAttribute.Get(); }
115 TManagedArray< FVector3f >& ModifyVertices() { check(!IsConst()); return VertexAttribute.Modify(); }
116
118 const TManagedArray< FVector3f >& GetNormals() const { return VertexNormalAttribute.Get(); }
119 TManagedArray< FVector3f >& ModifyNormals() { check(!IsConst()); return VertexNormalAttribute.Modify(); }
120
122 const TManagedArray< int32 >& GetVertexSelection() const { return VertexSelectionAttribute.Get(); }
123 TManagedArray< int32 >& ModifyVertexSelection() { check(!IsConst()); return VertexSelectionAttribute.Modify(); }
124
126 const TManagedArray< int32 >& GetVertexToGeometryIndex() const { return VertexToGeometryIndexAttribute.Get(); }
127 TManagedArray< int32 >& ModifyVertexToGeometryIndex() { check(!IsConst()); return VertexToGeometryIndexAttribute.Modify(); }
128
130 const TManagedArray< int32 >& GetVertexHitProxyIndex() const { return VertexHitProxyIndexAttribute.Get(); }
131 TManagedArray< int32 >& ModifyVertexHitProxyIndex() { check(!IsConst()); return VertexHitProxyIndexAttribute.Modify(); }
132
134 int32 NumVertices() const { return VertexAttribute.Num(); }
135
137 const TManagedArray<FLinearColor>& GetVertexColor() const { return VertexColorAttribute.Get(); }
138 TManagedArray<FLinearColor>& ModifyVertexColor() { check(!IsConst()); return VertexColorAttribute.Modify(); }
139
141 const TManagedArray<TArray<FVector2f>>& GetVertexUV() const { return VertexUVAttribute.Get(); }
142 TManagedArray<TArray<FVector2f>>& ModifyVertexUV() { check(!IsConst()); return VertexUVAttribute.Modify(); }
143
144 // optional per vertex bone attributes
145 const TManagedArray<TArray<float>>* FindBoneWeights() const { return BoneWeightsAttribute.Find(); }
146 const TManagedArray<TArray<int32>>* FindBoneIndices() const { return BoneIndicesAttribute.Find(); }
147
148 //
149 // Geometry Group Attributes
150 //
151
154
157
160
161 int32 NumGeometry() const { return GeometryNameAttribute.Num(); }
162
164 const TManagedArray< FString >& GetGeometryName() const { return GeometryNameAttribute.Get(); }
165
167 const TManagedArray<FTransform>& GetGeometryTransform() const { return GeometryTransformAttribute.Get(); }
168
170 const TManagedArray< int32 >& GetGeometryHitProxyIndex() const { return GeometryHitProxyIndexAttribute.Get(); }
171 TManagedArray< int32 >& ModifyGeometryHitProxyIndex() {check(!IsConst());return GeometryHitProxyIndexAttribute.Modify(); }
172
174 const TManagedArray< int32 >& GetVertexStart() const { return VertexStartAttribute.Get(); }
175
177 const TManagedArray< int32 >& GetVertexCount() const { return VertexCountAttribute.Get(); }
178
180 const TManagedArray< int32 >& GetIndicesStart() const { return IndicesStartAttribute.Get(); }
181
183 const TManagedArray< int32 >& GetIndicesCount() const { return IndicesCountAttribute.Get(); }
184
186 const TManagedArray< int32 >& GetSelectionState() const { return GeometrySelectionAttribute.Get(); }
187 TManagedArray< int32 >& ModifySelectionState() { check(!IsConst()); return GeometrySelectionAttribute.Modify(); }
188
191
194
196 const TManagedArray<FString>& GetMaterialPaths() const { return MaterialPathAttribute.Get(); }
197
199 const TManagedArray< int32 >& GetMaterialStart() const { return MaterialStartAttribute.Get(); }
200
202 const TManagedArray< int32 >& GetMaterialCount() const { return MaterialCountAttribute.Get(); }
203
205 int32 NumMaterials() const { return MaterialPathAttribute.Num(); }
206
207 private :
208 const FManagedArrayCollection& ConstCollection;
209 FManagedArrayCollection* Collection = nullptr;
210
211 TManagedArrayAccessor<FVector3f> VertexAttribute;
212 TManagedArrayAccessor<int32> VertexToGeometryIndexAttribute;
213 TManagedArrayAccessor<int32> VertexSelectionAttribute;
214 TManagedArrayAccessor<int32> VertexHitProxyIndexAttribute;
215 TManagedArrayAccessor<FVector3f> VertexNormalAttribute;
216 TManagedArrayAccessor<FLinearColor> VertexColorAttribute;
218
219 TManagedArrayAccessor<FIntVector> IndicesAttribute;
220 TManagedArrayAccessor<int32> MaterialIDAttribute;
221
222 TManagedArrayAccessor<FTriangleSection> TriangleSectionAttribute;
223 TManagedArrayAccessor<FString> MaterialPathAttribute;
224
225 TManagedArrayAccessor<FString> GeometryNameAttribute;
226 TManagedArrayAccessor<FTransform> GeometryTransformAttribute;
227 TManagedArrayAccessor<int32> GeometryHitProxyIndexAttribute;
228 TManagedArrayAccessor<int32> VertexStartAttribute;
229 TManagedArrayAccessor<int32> VertexCountAttribute;
230 TManagedArrayAccessor<int32> IndicesStartAttribute;
231 TManagedArrayAccessor<int32> IndicesCountAttribute;
232 TManagedArrayAccessor<int32> MaterialStartAttribute;
233 TManagedArrayAccessor<int32> MaterialCountAttribute;
234 TManagedArrayAccessor<int32> GeometrySelectionAttribute;
235
236 TManagedArrayAccessor<TArray<float>> BoneWeightsAttribute;
237 TManagedArrayAccessor<TArray<int32>> BoneIndicesAttribute;
238 };
239
240}
#define check(expr)
Definition AssertionMacros.h:314
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
Definition CollectionRenderingFacade.h:22
const TManagedArray< int32 > & GetMaterialStart() const
Definition CollectionRenderingFacade.h:199
TManagedArray< int32 > & ModifyGeometryHitProxyIndex()
Definition CollectionRenderingFacade.h:171
const TManagedArray< FVector3f > & GetNormals() const
Definition CollectionRenderingFacade.h:118
const TManagedArray< int32 > & GetSelectionState() const
Definition CollectionRenderingFacade.h:186
CHAOS_API int32 NumVerticesOnSelectedGeometry() const
Definition CollectionRenderingFacade.cpp:657
CHAOS_API void AddSpheres(const TArray< FSphere > &InSpheres, const FLinearColor &InColor)
Definition CollectionRenderingFacade.cpp:424
CHAOS_API FStringIntMap GetGeometryNameToIndexMap() const
Definition CollectionRenderingFacade.cpp:646
const TManagedArray< int32 > & GetGeometryHitProxyIndex() const
Definition CollectionRenderingFacade.h:170
CHAOS_API void AddPoint(const FVector3f &InPoint)
Definition CollectionRenderingFacade.cpp:184
const TManagedArray< FTriangleSection > & GetTriangleSections() const
Definition CollectionRenderingFacade.h:103
const TManagedArray< FLinearColor > & GetVertexColor() const
Definition CollectionRenderingFacade.h:137
const TManagedArray< FString > & GetMaterialPaths() const
Definition CollectionRenderingFacade.h:196
const TManagedArray< FVector3f > & GetVertices() const
Definition CollectionRenderingFacade.h:114
TManagedArray< TArray< FVector2f > > & ModifyVertexUV()
Definition CollectionRenderingFacade.h:142
const TManagedArray< int32 > & GetVertexHitProxyIndex() const
Definition CollectionRenderingFacade.h:130
CHAOS_API void AddTetrahedron(const TArray< FVector3f > &InVertices, const FIntVector4 &InIndices)
Definition CollectionRenderingFacade.cpp:432
const TManagedArray< int32 > & GetVertexStart() const
Definition CollectionRenderingFacade.h:174
TManagedArray< int32 > & ModifyVertexSelection()
Definition CollectionRenderingFacade.h:123
const TManagedArray< int32 > & GetVertexToGeometryIndex() const
Definition CollectionRenderingFacade.h:126
TManagedArray< FVector3f > & ModifyVertices()
Definition CollectionRenderingFacade.h:115
const TManagedArray< int32 > & GetIndicesCount() const
Definition CollectionRenderingFacade.h:183
const TManagedArray< TArray< int32 > > * FindBoneIndices() const
Definition CollectionRenderingFacade.h:146
CHAOS_API void AddCapsule(const float Length, const float Radius, FLinearColor Color=FLinearColor::White, int32 Sides=8)
Definition CollectionRenderingFacade.cpp:668
const TManagedArray< int32 > & GetIndicesStart() const
Definition CollectionRenderingFacade.h:180
TManagedArray< int32 > & ModifyVertexHitProxyIndex()
Definition CollectionRenderingFacade.h:131
int32 NumGeometry() const
Definition CollectionRenderingFacade.h:161
CHAOS_API void AddSurface(TArray< FVector3f > &&InVertices, TArray< FIntVector > &&InIndices, TArray< FVector3f > &&InNormals, TArray< FLinearColor > &&InColors)
Definition CollectionRenderingFacade.cpp:488
CHAOS_API void DefineSchema()
Definition CollectionRenderingFacade.cpp:75
CHAOS_API int32 NumTriangles() const
Definition CollectionRenderingFacade.cpp:122
CHAOS_API void SetGroupTransform(int32 InGeometryGroupIndex, const FTransform &InTm)
Definition CollectionRenderingFacade.cpp:634
TMap< FString, int32 > FStringIntMap
Definition CollectionRenderingFacade.h:25
CHAOS_API void AddBoxes(const TArray< FBox > &InBoxes)
Definition CollectionRenderingFacade.cpp:330
FGeometryCollectionSection FTriangleSection
Definition CollectionRenderingFacade.h:24
const TManagedArray< int32 > & GetVertexCount() const
Definition CollectionRenderingFacade.h:177
const TManagedArray< TArray< float > > * FindBoneWeights() const
Definition CollectionRenderingFacade.h:145
CHAOS_API void AddSurfaceBoneWeightsAndIndices(TArray< TArray< float > > &&InBoneWeights, TArray< TArray< int32 > > &&InBoneIndices)
Definition CollectionRenderingFacade.cpp:459
CHAOS_API void AddTriangle(const Chaos::FTriangle &InTriangle)
Definition CollectionRenderingFacade.cpp:226
const TManagedArray< FIntVector > & GetIndices() const
Definition CollectionRenderingFacade.h:97
CHAOS_API void AddSphere(const FSphere &InSphere, const FLinearColor &InColor)
Definition CollectionRenderingFacade.cpp:338
CHAOS_API void AddFaces(const TArray< FVector3f > &InVertices, TArray< FIntVector > &InIndices, TArray< FLinearColor > &InColors)
Definition CollectionRenderingFacade.cpp:697
const TManagedArray< FTransform > & GetGeometryTransform() const
Definition CollectionRenderingFacade.h:167
const TManagedArray< int32 > & GetMaterialID() const
Definition CollectionRenderingFacade.h:100
bool IsConst() const
Definition CollectionRenderingFacade.h:37
TManagedArray< FLinearColor > & ModifyVertexColor()
Definition CollectionRenderingFacade.h:138
TManagedArray< int32 > & ModifySelectionState()
Definition CollectionRenderingFacade.h:187
CHAOS_API void AddBox(const FBox &InBox)
Definition CollectionRenderingFacade.cpp:246
TManagedArray< FVector3f > & ModifyNormals()
Definition CollectionRenderingFacade.h:119
int32 NumMaterials() const
Definition CollectionRenderingFacade.h:205
CHAOS_API void EndGeometryGroup(int32 InGeometryGroupIndex)
Definition CollectionRenderingFacade.cpp:592
TManagedArray< int32 > & ModifyVertexToGeometryIndex()
Definition CollectionRenderingFacade.h:127
const TManagedArray< int32 > & GetVertexSelection() const
Definition CollectionRenderingFacade.h:122
const TManagedArray< FString > & GetGeometryName() const
Definition CollectionRenderingFacade.h:164
CHAOS_API bool IsValid() const
Definition CollectionRenderingFacade.cpp:106
CHAOS_API bool CanRenderSurface() const
Definition CollectionRenderingFacade.cpp:101
CHAOS_API TArray< FTriangleSection > BuildMeshSections(const TArray< FIntVector > &Indices, TArray< int32 > BaseMeshOriginalIndicesIndex, TArray< FIntVector > &RetIndices) const
Definition CollectionRenderingFacade.cpp:564
const TManagedArray< TArray< FVector2f > > & GetVertexUV() const
Definition CollectionRenderingFacade.h:141
CHAOS_API void AddTetrahedrons(TArray< FVector3f > &&InVertices, TArray< FIntVector4 > &&InIndices)
Definition CollectionRenderingFacade.cpp:451
const TManagedArray< int32 > & GetMaterialCount() const
Definition CollectionRenderingFacade.h:202
CHAOS_API void AddPoints(TArray< FVector3f > &&InPoints)
Definition CollectionRenderingFacade.cpp:203
CHAOS_API int32 StartGeometryGroup(FString InName, const FTransform &InTm=FTransform::Identity)
Definition CollectionRenderingFacade.cpp:571
int32 NumVertices() const
Definition CollectionRenderingFacade.h:134
Definition Array.h:670
Definition ManagedArray.h:1331
Definition ManagedArray.h:1130
Definition ManagedArray.h:1099
Definition UnrealString.h.inl:34
Definition CollectionBoundsFacade.cpp:13
Definition GeometryCollectionSection.h:13
Definition Color.h:48
static CORE_API const FLinearColor White
Definition Color.h:456
Definition ManagedArrayCollection.h:56
Definition ManagedArrayAccessor.h:20
TManagedArray< T > & Modify()
Definition ManagedArrayAccessor.h:114
int32 Num() const
Definition ManagedArrayAccessor.h:196
const TManagedArray< T > & Get() const
Definition ManagedArrayAccessor.h:101
const TManagedArray< T > * Find() const
Definition ManagedArrayAccessor.h:108
static CORE_API const TTransform< double > Identity
Definition TransformNonVectorized.h:58