/Engine/Source/Runtime/GeometryCore/Public/EdgeLoop.h
Utility functions for converting/processing edge loops Convert the input Vertex/Edge loop into an edge loop representation that is independent of Vertex/Edge IDs. See description ofFMeshTriOrderedEdgeIDfor more information on how this works. But essentially the resulting TriOrderedEdgesLoopOut is stable across some topological changes, in particular if the vertices of the loop change but the triangle topology remains the same (eg if a bowtie vertex is disconnected, or if the mesh is disconnected along the edge loop), the encoded loop remains valid, while an explicit vertex or edge loop would not.
namespace UE { namespace Geometry { bool UE::Geometry::ConvertLoopToTriOrderedEdgeLoop ( const [FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) & Mesh, const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & VertexLoop, const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & EdgeLoop, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< int(int EdgeID, int TriangleA, int TriangleB)> SelectEdgeTriangleFunc, [TArray](API\Runtime\Core\Containers\TArray)< [FMeshTriOrderedEdgeID](API\Runtime\GeometryCore\DynamicMesh\FMeshTriOrderedEdgeID) > & TriOrderedEdgesLoopOut ) } }