UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
EdgeSpan.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3// Port of geometry3cpp EdgeSpan
4
5#pragma once
6
8#include "Util/IndexUtil.h"
9#include "Polyline3.h"
10
11namespace UE
12{
13namespace Geometry
14{
15
21{
22public:
25
30
33
35 bool bBowtiesCalculated = false;
36
38 {
39 Mesh = nullptr;
40 }
41
43 {
44 Mesh = mesh;
45 }
46
50 FEdgeSpan(const FDynamicMesh3* mesh, const TArray<int>& vertices, const TArray<int> & edges)
51 {
52 Mesh = mesh;
53 Vertices = vertices;
54 Edges = edges;
55 }
56
57
61 GEOMETRYCORE_API void Initialize(const FDynamicMesh3* mesh, const TArray<int>& vertices, const TArray<int> & edges, const TArray<int>* BowtieVerticesIn = nullptr);
62
63
69
70
81
82
95
96
104
105
112
113
118
119
123 int GetVertexCount() const
124 {
125 return Vertices.Num();
126 }
127
131 int GetEdgeCount() const
132 {
133 return Edges.Num();
134 }
135
139 FVector3d GetVertex(int SpanIndex) const
140 {
141 return Mesh->GetVertex(Vertices[SpanIndex]);
142 }
143
148
149
154
161
162
166 void Reverse()
167 {
170 }
171
172
176 GEOMETRYCORE_API bool IsInternalspan() const;
177
182 GEOMETRYCORE_API bool IsBoundaryspan(const FDynamicMesh3* TestMesh = nullptr) const;
183
187 GEOMETRYCORE_API int FindVertexIndex(int VertexID) const;
188
193
194
200
201
202
210
219
220};
221
222
223} // end namespace UE::Geometry
224} // end namespace UE
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
Definition DynamicMesh3.h:108
FVector3d GetVertex(int VertexID) const
Definition DynamicMesh3.h:736
Definition EdgeSpan.h:21
FEdgeSpan(const FDynamicMesh3 *mesh, const TArray< int > &vertices, const TArray< int > &edges)
Definition EdgeSpan.h:50
FEdgeSpan()
Definition EdgeSpan.h:37
void Reverse()
Definition EdgeSpan.h:166
const FDynamicMesh3 * Mesh
Definition EdgeSpan.h:24
GEOMETRYCORE_API void CalculateBowtieVertices()
Definition EdgeSpan.cpp:79
GEOMETRYCORE_API int FindNearestVertexIndex(const FVector3d &QueryPoint) const
Definition EdgeSpan.cpp:189
GEOMETRYCORE_API bool CheckValidity(EValidityCheckFailMode FailMode=EValidityCheckFailMode::Check) const
Definition EdgeSpan.cpp:209
FEdgeSpan(const FDynamicMesh3 *mesh)
Definition EdgeSpan.h:42
bool bBowtiesCalculated
Definition EdgeSpan.h:35
GEOMETRYCORE_API void GetSubspansByAngle(double AngleThresholdDeg, int32 MinSpanSize, TArray< FEdgeSpan > &OutSpans) const
Definition EdgeSpan.cpp:284
GEOMETRYCORE_API void GetPolyline(FPolyline3d &PolylineOut) const
Definition EdgeSpan.cpp:107
GEOMETRYCORE_API bool IsInternalspan() const
Definition EdgeSpan.cpp:143
GEOMETRYCORE_API int FindVertexIndex(int VertexID) const
Definition EdgeSpan.cpp:174
int GetEdgeCount() const
Definition EdgeSpan.h:131
void InitializeFromEdges(const FDynamicMesh3 *MeshIn, const TArray< int > &EdgesIn)
Definition EdgeSpan.h:76
static GEOMETRYCORE_API void VertexSpanToEdgeSpan(const FDynamicMesh3 *Mesh, const TArray< int > &VertexSpan, TArray< int > &OutEdgeSpan)
Definition EdgeSpan.cpp:269
FVector3d GetVertex(int SpanIndex) const
Definition EdgeSpan.h:139
int GetVertexCount() const
Definition EdgeSpan.h:123
void SetBowtieVertices(const TArray< int > &Bowties)
Definition EdgeSpan.h:107
TArray< int > Edges
Definition EdgeSpan.h:29
TArray< int > BowtieVertices
Definition EdgeSpan.h:32
TArray< int > Vertices
Definition EdgeSpan.h:27
GEOMETRYCORE_API bool SetCorrectOrientation()
Definition EdgeSpan.cpp:117
GEOMETRYCORE_API bool IsBoundaryspan(const FDynamicMesh3 *TestMesh=nullptr) const
Definition EdgeSpan.cpp:157
GEOMETRYCORE_API void InitializeFromEdges(const TArray< int > &EdgesIn)
Definition EdgeSpan.cpp:21
bool InitializeFromVertices(const FDynamicMesh3 *MeshIn, const TArray< int > &VerticesIn, bool bAutoOrient=true)
Definition EdgeSpan.h:90
GEOMETRYCORE_API FAxisAlignedBox3d GetBounds() const
Definition EdgeSpan.cpp:95
Definition Polyline.h:49
UE_REWRITE void Reverse(T(&Array)[ArraySize])
Definition Reverse.h:28
EValidityCheckFailMode
Definition GeometryTypes.h:72
Definition AdvancedWidgetsModule.cpp:13