UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CompactMaps.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3// Index remapping struct extracted from Dynamic Mesh for more general use
4
5#pragma once
6
7#include "Containers/Array.h"
8
9#include "IndexTypes.h"
10
11namespace UE
12{
13namespace Geometry
14{
20{
21 TArray<int32> VertMap;
22 TArray<int32> TriMap;
23
24public:
26
38
45 {
47 for (int32 i = 0; i < NumVertMappings; ++i)
48 {
49 VertMap[i] = i;
50 }
51 }
52
59 {
61 for (int32 i = 0; i < NumTriMappings; ++i)
62 {
63 TriMap[i] = i;
64 }
65 }
66
78
85 {
88 {
89 for (int32 i = 0; i < NumVertMappings; i++)
90 {
91 VertMap[i] = InvalidID;
92 }
93 }
94 }
95
102 {
105 {
106 for (int32 i = 0; i < NumTriMappings; ++i)
107 {
108 TriMap[i] = InvalidID;
109 }
110 }
111 }
112
114 void Reset()
115 {
116 VertMap.Reset();
117 TriMap.Reset();
118 }
119
121 bool VertexMapIsSet() const
122 {
123 return !VertMap.IsEmpty();
124 }
125
127 bool TriangleMapIsSet() const
128 {
129 return !TriMap.IsEmpty();
130 }
131
134 {
135 return VertMap.Num();
136 }
137
140 {
141 return TriMap.Num();
142 }
143
146 {
148 VertMap[FromID] = ToID;
149 }
150
153 {
155 TriMap[FromID] = ToID;
156 }
157
160 {
161 return VertMap[FromID];
162 }
163
166 {
167 return {VertMap[FromIDs[0]], VertMap[FromIDs[1]], VertMap[FromIDs[2]]};
168 }
169
172 {
173 return TriMap[FromID];
174 }
175
177 bool Validate() const
178 {
179 for (int32 Idx = 0; Idx < VertMap.Num(); Idx++)
180 {
181 if (VertMap[Idx] > Idx)
182 {
183 return false;
184 }
185 }
186 for (int32 Idx = 0; Idx < TriMap.Num(); Idx++)
187 {
188 if (TriMap[Idx] > Idx)
189 {
190 return false;
191 }
192 }
193 return true;
194 }
195};
196} // end namespace UE::Geometry
197} // end namespace UE
#define checkSlow(expr)
Definition AssertionMacros.h:332
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 Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
UE_REWRITE bool IsEmpty() const
Definition Array.h:1133
void SetNumUninitialized(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2369
Definition CompactMaps.h:20
FIndex3i GetVertexMapping(FIndex3i FromIDs) const
Definition CompactMaps.h:165
void ResetTriangleMap(int32 NumTriMappings, bool bInitializeWithInvalidID)
Definition CompactMaps.h:101
int32 GetVertexMapping(int32 FromID) const
Definition CompactMaps.h:159
void SetVertexMapping(int32 FromID, int32 ToID)
Definition CompactMaps.h:145
int32 GetTriangleMapping(int32 FromID) const
Definition CompactMaps.h:171
void Reset()
Definition CompactMaps.h:114
bool Validate() const
Definition CompactMaps.h:177
void SetIdentityTriangleMap(int32 NumTriMappings)
Definition CompactMaps.h:58
void Reset(int32 NumVertMappings, int32 NumTriMappings, bool bInitializeWithInvalidID)
Definition CompactMaps.h:73
void SetIdentity(int32 NumVertMappings, int32 NumTriMappings)
Definition CompactMaps.h:33
void SetTriangleMapping(int32 FromID, int32 ToID)
Definition CompactMaps.h:152
bool VertexMapIsSet() const
Definition CompactMaps.h:121
int32 NumVertexMappings() const
Definition CompactMaps.h:133
void ResetVertexMap(int32 NumVertMappings, bool bInitializeWithInvalidID)
Definition CompactMaps.h:84
bool TriangleMapIsSet() const
Definition CompactMaps.h:127
int32 NumTriangleMappings() const
Definition CompactMaps.h:139
static constexpr int32 InvalidID
Definition CompactMaps.h:25
void SetIdentityVertexMap(int32 NumVertMappings)
Definition CompactMaps.h:44
constexpr int InvalidID
Definition IndexTypes.h:13
Definition AdvancedWidgetsModule.cpp:13
Definition IndexTypes.h:158