UDocumentation
UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DynamicMeshWrapper.h
Go to the documentation of this file.
1
// Copyright Epic Games, Inc. All Rights Reserved.
2
#pragma once
3
4
#include "
CoreMinimal.h
"
5
#if PLATFORM_DESKTOP
6
7
#include "
MeshUtilities.h
"
8
9
#include "
DynamicMesh/DynamicMeshAttributeSet.h
"
10
#include "
DynamicMesh/DynamicMesh3.h
"
11
12
namespace
UE::CADKernel::MeshUtilities
13
{
14
class
FDynamicMeshWrapper
:
public
FMeshWrapperAbstract
15
{
16
public
:
17
FDynamicMeshWrapper
(
const
FMeshExtractionContext&
InContext
,
UE::Geometry::FDynamicMesh3
&
InMesh
);
18
19
virtual
void
ClearMesh
()
override
;
20
virtual
bool
ReserveNewTriangles(
int32
AdditionalTriangleCount
)
override
;
21
virtual
bool
SetVertices(
TArray<FVector>
&& Vertices)
override
;
22
virtual
bool
AddNewVertices
(
TArray<FVector>
&& Vertices)
override
;
23
virtual
bool
AddTriangle(
int32
GroupID,
uint32
MaterialID,
const
FArray3i
& VertexIndices,
const
TArrayView<FVector3f>
&
Normals
,
const
TArrayView<FVector2f>
& TexCoords)
override
;
24
virtual
bool
StartFaceTriangles
(
int32
TriangleCount,
const
TArray<FVector3f>
&
Normals
,
const
TArray<FVector2f>
& TexCoords)
override
;
25
virtual
bool
StartFaceTriangles
(
const
TArrayView<FVector>
&
Normals
,
const
TArrayView<FVector2d>
& TexCoords)
override
;
26
virtual
bool
AddFaceTriangles
(
const
TArray<FFaceTriangle>
&
FaceTriangles
)
override
;
27
virtual
bool
AddFaceTriangle
(
const
FFaceTriangle
&
FaceTriangle
)
override
28
{
29
return
AddFaceTriangles
({
FaceTriangle
});
30
}
31
virtual
void
EndFaceTriangles
()
override
;
32
33
virtual
void
FinalizeMesh()
override
;
34
virtual
void
AddSymmetry
()
override
;
35
virtual
void
RecomputeNullNormal
()
override
;
36
virtual
void
OrientMesh
()
override
;
37
virtual
void
ResolveTJunctions
()
override
;
38
39
private
:
40
void
InitializeAttributes
();
41
void
AddTriangles();
42
int32
AppendTriangle(
UE::Geometry::FIndex3i
& VertexIDs,
int32
GroupID);
43
44
private
:
45
UE::Geometry::FDynamicMesh3
&
MeshOut
;
46
47
TMap<uint32, int32>
MaterialMapping
;
54
TArray<int32>
VertIDMap;
55
TMap<int32, UE::Geometry::FDynamicMeshPolygroupAttribute*>
LayerMapping
;
56
57
UE::Geometry::FDynamicMeshNormalOverlay
* NormalOverlay =
nullptr
;
58
UE::Geometry::FDynamicMeshMaterialAttribute
* MaterialIDAttrib =
nullptr
;
59
UE::Geometry::FDynamicMeshUVOverlay
* UVOverlay =
nullptr
;
60
UE::Geometry::FDynamicMeshColorOverlay
* ColorOverlay =
nullptr
;
61
UE::Geometry::FDynamicMeshNormalOverlay
*
TangentOverlay
=
nullptr
;
62
UE::Geometry::FDynamicMeshNormalOverlay
*
BiTangentOverlay
=
nullptr
;
63
int32
TangentOverlayID
=
INDEX_NONE
;
64
int32
BiTangentOverlayID
=
INDEX_NONE
;
65
int32
ColorOverlayID
=
INDEX_NONE
;
66
67
bool
bNewVerticesAdded
=
false
;
68
int32
VertexIdOffset
= 0;
69
TArray<int32>
VertexMapping
;
70
71
struct
FTriangleData
72
{
73
int32
GroupID;
74
uint32
MaterialID;
75
FArray3i
NormalIndices
;
76
FArray3i
TexCoordIndices
;
77
FTriangleData
(
int32
InGroupID
,
uint32
InMaterialID
,
const
FArray3i
&
InNormalIndices
,
const
FArray3i
&
InTexCoordIndices
)
78
: GroupID(
InGroupID
)
79
, MaterialID(
InMaterialID
)
80
,
NormalIndices
(
InNormalIndices
)
81
,
TexCoordIndices
(
InTexCoordIndices
)
82
{}
83
};
84
TArray<FTriangleData>
TriangleDataSet
;
85
TSet<int32>
GroupIDSet
;
86
TArray<FVector3f>
Normals
;
87
TArray<FVector2f>
TexCoords;
88
int32
LastNormalIndex
= 0;
89
int32
MaterialIDCount
= 0;
90
91
bool
bIsFinalized
=
false
;
92
};
93
}
94
#endif
CoreMinimal.h
INDEX_NONE
@ INDEX_NONE
Definition
CoreMiscDefines.h:150
int32
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition
Platform.h:1125
StaticCastSharedRef
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition
SharedPointer.h:127
DynamicMesh3.h
DynamicMeshAttributeSet.h
EComputeNTBsOptions::Normals
@ Normals
MeshUtilities.h
uint32
uint32_t uint32
Definition
binka_ue_file_header.h:6
TArrayView
Definition
ArrayView.h:139
TArray
Definition
Array.h:670
TMap
Definition
UnrealString.h.inl:34
UE::Geometry::FDynamicMesh3
Definition
DynamicMesh3.h:108
UE::Geometry::TDynamicMeshScalarTriangleAttribute
Definition
DynamicMeshTriangleAttribute.h:604
UE::Geometry::TDynamicMeshVectorOverlay
Definition
DynamicMeshOverlay.h:714
UE::Geometry::FIndex3i
Definition
IndexTypes.h:158
Engine
Source
Runtime
Datasmith
CADKernel
Engine
Private
DynamicMeshWrapper.h
Generated by
1.9.8