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
11
12namespace UE::CADKernel::MeshUtilities
13{
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 {
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:
41 void AddTriangles();
42 int32 AppendTriangle(UE::Geometry::FIndex3i& VertexIDs, int32 GroupID);
43
44 private:
46
54 TArray<int32> VertIDMap;
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;
66
67 bool bNewVerticesAdded = false;
70
71 struct FTriangleData
72 {
73 int32 GroupID;
74 uint32 MaterialID;
78 : GroupID(InGroupID)
79 , MaterialID(InMaterialID)
82 {}
83 };
87 TArray<FVector2f> TexCoords;
90
91 bool bIsFinalized = false;
92 };
93}
94#endif
@ INDEX_NONE
Definition CoreMiscDefines.h:150
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
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition ArrayView.h:139
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition DynamicMesh3.h:108
Definition DynamicMeshTriangleAttribute.h:604
Definition DynamicMeshOverlay.h:714
Definition IndexTypes.h:158