#include <MeshBoundaryLoops.h>
|
| static GEOMETRYCORE_API bool | IsSimpleBowtieLoop (const TArray< int > &LoopVerts, const TArray< int > &BowtieVerts, int BowtieVertex, int &start_i, int &end_i) |
| |
| static GEOMETRYCORE_API bool | IsSimplePath (const TArray< int > &LoopVerts, const TArray< int > &BowtieVerts, int BowtieVertex, int i1, int i2) |
| |
| static GEOMETRYCORE_API void | ExtractSpan (TArray< int > &Loop, int i0, int i1, bool bMarkInvalid, TArray< int > &OutSpan) |
| |
| static GEOMETRYCORE_API int | CountSpan (const TArray< int > &Loop, int i0, int i1) |
| |
| static GEOMETRYCORE_API int | FindIndex (const TArray< int > &Loop, int Start, int Item) |
| |
| static GEOMETRYCORE_API int | CountInList (const TArray< int > &Loop, int Item) |
| |
◆ EFailureBehaviors
| Enumerator |
|---|
| Abort | |
| ConvertToOpenSpan | |
◆ ESpanBehaviors
| Enumerator |
|---|
| Ignore | |
| Abort | |
| Compute | |
◆ FMeshBoundaryLoops() [1/2]
| UE::Geometry::FMeshBoundaryLoops::FMeshBoundaryLoops |
( |
| ) |
|
|
inline |
◆ FMeshBoundaryLoops() [2/2]
| UE::Geometry::FMeshBoundaryLoops::FMeshBoundaryLoops |
( |
const FDynamicMesh3 * |
MeshIn, |
|
|
bool |
bAutoCompute = true |
|
) |
| |
|
inline |
◆ Compute()
| bool FMeshBoundaryLoops::Compute |
( |
| ) |
|
Find the set of boundary EdgeLoops and EdgeSpans. .SpanBehavior and .FailureBehavior control what happens if we run into problem cases
- Returns
- false if errors occurred, in this case output set is incomplete
◆ CountInList()
| int FMeshBoundaryLoops::CountInList |
( |
const TArray< int > & |
Loop, |
|
|
int |
Item |
|
) |
| |
|
staticprotected |
◆ CountSpan()
| int FMeshBoundaryLoops::CountSpan |
( |
const TArray< int > & |
Loop, |
|
|
int |
i0, |
|
|
int |
i1 |
|
) |
| |
|
staticprotected |
◆ ExtractSpan()
| void FMeshBoundaryLoops::ExtractSpan |
( |
TArray< int > & |
Loop, |
|
|
int |
i0, |
|
|
int |
i1, |
|
|
bool |
bMarkInvalid, |
|
|
TArray< int > & |
OutSpan |
|
) |
| |
|
staticprotected |
◆ ExtractSubloops()
◆ FindIndex()
| int FMeshBoundaryLoops::FindIndex |
( |
const TArray< int > & |
Loop, |
|
|
int |
Start, |
|
|
int |
Item |
|
) |
| |
|
staticprotected |
◆ FindLeftTurnEdge()
| int FMeshBoundaryLoops::FindLeftTurnEdge |
( |
int |
incoming_e, |
|
|
int |
bowtie_v, |
|
|
TArray< int > & |
bdry_edges, |
|
|
int |
bdry_edges_count, |
|
|
TArray< bool > & |
used_edges |
|
) |
| |
|
protected |
◆ FindLoopContainingEdge()
| int FMeshBoundaryLoops::FindLoopContainingEdge |
( |
int |
EdgeID | ) |
const |
- Returns
- index of loop that contains edge, or -1 if not found
◆ FindLoopContainingVertex()
| int FMeshBoundaryLoops::FindLoopContainingVertex |
( |
int |
VertexID | ) |
const |
- Returns
- index of loop that contains vertex, or -1 if not found
◆ FindLoopEdgesHint()
| int FMeshBoundaryLoops::FindLoopEdgesHint |
( |
const TSet< int > & |
BorderHintEdges | ) |
const |
- Returns
- index of loop that best matches input edges, or -1 if not found
◆ FindLoopTrianglesHint()
| int FMeshBoundaryLoops::FindLoopTrianglesHint |
( |
const TArray< int > & |
BorderHintTris | ) |
const |
- Returns
- index of loop that best matches input triangles, or -1 if not found
◆ FindSpanContainingEdge()
| int FMeshBoundaryLoops::FindSpanContainingEdge |
( |
int |
EdgeID | ) |
const |
- Returns
- index of span that contains edge, or -1 if not found
◆ FindVertexInLoop()
| FIndex2i FMeshBoundaryLoops::FindVertexInLoop |
( |
int |
VertexID | ) |
const |
- Returns
- pair (LoopIndex,VertexIndexInLoop) of VertexID in EdgeLoops, or FIndex2i::Invalid if not found
◆ GetLongestLoopIndex()
| int FMeshBoundaryLoops::GetLongestLoopIndex |
( |
| ) |
const |
- Returns
- index of loop with longest arc length, or -1 if no loops
◆ GetLoopCount()
| int UE::Geometry::FMeshBoundaryLoops::GetLoopCount |
( |
| ) |
const |
|
inline |
◆ GetMaxVerticesLoopIndex()
| int FMeshBoundaryLoops::GetMaxVerticesLoopIndex |
( |
| ) |
const |
- Returns
- index of loop with maximum number of vertices
◆ GetSpanCount()
| int UE::Geometry::FMeshBoundaryLoops::GetSpanCount |
( |
| ) |
const |
|
inline |
◆ GetVertexNormal()
| FVector3d FMeshBoundaryLoops::GetVertexNormal |
( |
int |
vid | ) |
|
|
protected |
◆ IsSimpleBowtieLoop()
| bool FMeshBoundaryLoops::IsSimpleBowtieLoop |
( |
const TArray< int > & |
LoopVerts, |
|
|
const TArray< int > & |
BowtieVerts, |
|
|
int |
BowtieVertex, |
|
|
int & |
start_i, |
|
|
int & |
end_i |
|
) |
| |
|
staticprotected |
◆ IsSimplePath()
| bool FMeshBoundaryLoops::IsSimplePath |
( |
const TArray< int > & |
LoopVerts, |
|
|
const TArray< int > & |
BowtieVerts, |
|
|
int |
BowtieVertex, |
|
|
int |
i1, |
|
|
int |
i2 |
|
) |
| |
|
staticprotected |
◆ operator[]()
| const FEdgeLoop & UE::Geometry::FMeshBoundaryLoops::operator[] |
( |
int |
Index | ) |
const |
|
inline |
- Returns
- Loop at the given index
◆ SetMesh()
◆ FMeshRegionBoundaryLoops
◆ bAborted
| bool UE::Geometry::FMeshBoundaryLoops::bAborted = false |
If true, we aborted computation due to unrecoverable errors
◆ bFellBackToSpansOnFailure
| bool UE::Geometry::FMeshBoundaryLoops::bFellBackToSpansOnFailure = false |
If true, we had to call back to spans because of failures during Compute(). This happens if we cannot extract simple loops from a loop with bowties.
◆ bOnlyComputeSpans
| bool UE::Geometry::FMeshBoundaryLoops::bOnlyComputeSpans = false |
After finding spans of connected edges, don't convert them to loops – just leave them all as spans
◆ bSawOpenSpans
| bool UE::Geometry::FMeshBoundaryLoops::bSawOpenSpans = false |
If true, we found at least one open span during Compute(). This can occur in failure cases or if the search is restricted to a subset using EdgeFilterFunc
◆ EdgeFilterFunc
| TFunction<bool(int)> UE::Geometry::FMeshBoundaryLoops::EdgeFilterFunc = nullptr |
If non-null, then only edges that pass this filter are considered. This may result in open spans.
◆ FailureBehavior
What Compute() will do if it encounters unrecoverable errors while walking around a loop
◆ FailureBowties
| TArray<int> UE::Geometry::FMeshBoundaryLoops::FailureBowties |
If we encountered unrecoverable errors, it is generally due to bowtie vertices. The problematic bowties will be returned here so that the client can try repairing these vertices.
◆ Loops
◆ Mesh
| const FDynamicMesh3* UE::Geometry::FMeshBoundaryLoops::Mesh = nullptr |
Mesh we are finding loops on
◆ SpanBehavior
What Compute() will do if it encounter open spans
◆ Spans
Resulting set of spans filled by Compute(), if SpanBehavior == Compute
◆ VerticesTemp
| TArray<int> UE::Geometry::FMeshBoundaryLoops::VerticesTemp |
|
protected |
The documentation for this class was generated from the following files: