UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LayoutUV.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Allocator2D.h"
6#include "Containers/Array.h"
7#include "CoreMinimal.h"
9#include "Math/Vector2D.h"
10#include "MeshUtilitiesCommon.h"
11
12template <typename T> class TAtomic;
13
15{
18
21
22 float UVArea;
25
28
32
34
35 int32 Id; // Store a unique id so that we can come back to the initial Charts ordering when necessary
36};
37
39
41{
42public:
43
51 struct IMeshView
52 {
53 virtual ~IMeshView() {}
54
55 virtual uint32 GetNumIndices() const = 0;
56 virtual FVector3f GetPosition(uint32 Index) const = 0;
57 virtual FVector3f GetNormal(uint32 Index) const = 0;
59
60 virtual void InitOutputTexcoords(uint32 Num) = 0;
61 virtual void SetOutputTexcoord(uint32 Index, const FVector2f& Value) = 0;
62 };
63
65 void SetVersion( ELightmapUVVersion Version ) { LayoutVersion = Version; }
69
72private:
73 IMeshView& MeshView;
74 ELightmapUVVersion LayoutVersion;
75
76 TArray< FVector2f > MeshTexCoords;
77 TArray< uint32 > MeshSortedTris;
78 TArray< FMeshChart > MeshCharts;
79 uint32 PackedTextureResolution;
80
81 struct FChartFinder;
82 struct FChartPacker;
83
84 static MESHUTILITIESCOMMON_API TAtomic<uint64> FindBestPackingCount;
85 static MESHUTILITIESCOMMON_API TAtomic<uint64> FindBestPackingCycles;
86 static MESHUTILITIESCOMMON_API TAtomic<uint64> FindBestPackingEfficiency;
87};
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
ELightmapUVVersion
Definition MeshUtilitiesCommon.h:8
@ Num
Definition MetalRHIPrivate.h:234
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition LayoutUV.h:41
static MESHUTILITIESCOMMON_API void ResetStats()
Definition LayoutUV.cpp:900
MESHUTILITIESCOMMON_API void CommitPackedUVs()
Definition LayoutUV.cpp:1486
void SetVersion(ELightmapUVVersion Version)
Definition LayoutUV.h:65
MESHUTILITIESCOMMON_API int32 FindCharts(const FOverlappingCorners &OverlappingCorners)
Definition LayoutUV.cpp:87
MESHUTILITIESCOMMON_API bool FindBestPacking(uint32 InTextureResolution)
Definition LayoutUV.cpp:1478
static MESHUTILITIESCOMMON_API void LogStats()
Definition LayoutUV.cpp:907
Definition Array.h:670
Definition Atomic.h:538
U16 Index
Definition radfft.cpp:71
Definition LayoutUV.h:52
virtual ~IMeshView()
Definition LayoutUV.h:53
virtual FVector2f GetInputTexcoord(uint32 Index) const =0
virtual FVector3f GetPosition(uint32 Index) const =0
virtual FVector3f GetNormal(uint32 Index) const =0
virtual void InitOutputTexcoords(uint32 Num)=0
virtual uint32 GetNumIndices() const =0
virtual void SetOutputTexcoord(uint32 Index, const FVector2f &Value)=0
Definition LayoutUV.h:15
FVector2f PackingBias
Definition LayoutUV.h:31
FVector2f UVScale
Definition LayoutUV.h:23
uint32 FirstTri
Definition LayoutUV.h:16
float UVLengthSum
Definition LayoutUV.h:26
FVector2f MaxUV
Definition LayoutUV.h:20
int32 Join[4]
Definition LayoutUV.h:33
uint32 LastTri
Definition LayoutUV.h:17
FVector2f WorldScale
Definition LayoutUV.h:24
FVector2f PackingScaleU
Definition LayoutUV.h:29
FVector2f PackingScaleV
Definition LayoutUV.h:30
FVector2f MinUV
Definition LayoutUV.h:19
float UVArea
Definition LayoutUV.h:22
int32 Id
Definition LayoutUV.h:35
float WorldLengthSum
Definition LayoutUV.h:27
Definition OverlappingCorners.h:16