FMeshBoundaryLoops

Windows
MacOS
Linux

References

Module

DynamicMesh

Header

/Engine/Plugins/Experimental/GeometryProcessing/Source/DynamicMesh/Public/MeshBoundaryLoops.h

Include

#include "MeshBoundaryLoops.h"

Syntax

class FMeshBoundaryLoops

Variables

Name Description

Public variable

bool

 

bAborted

If true, we aborted computation due to unrecoverable errors

Public variable

bool

 

bFellBackToSpansOnFailure

If true, we had to call back to spans because of failures during Compute().

Public variable

bool

 

bSawOpenSpans

If true, we found at least one open span during Compute().

Public variable

TFunction< bool...

 

EdgeFilterFunc

If non-null, then only edges that pass this filter are considered. This may result in open spans.

Public variable

EFailureBehavio...

 

FailureBehavior

What Compute() will do if it encounters unrecoverable errors while walking around a loop

Public variable

TArray< int >

 

FailureBowties

If we encountered unrecoverable errors, it is generally due to bowtie vertices.

Public variable

TArray< FEdgeLo...

 

Loops

Resulting set of loops filled by Compute()

Public variable

const FDynamicM...

 

Mesh

Mesh we are finding loops on

Public variable

ESpanBehaviors

 

SpanBehavior

What Compute() will do if it encounter open spans

Public variable

TArray< FEdgeSp...

 

Spans

Resulting set of spans filled by Compute(), if SpanBehavior == Compute

Protected variable

TArray< int >

 

VerticesTemp

Constructors

Name Description

Public function

FMeshBoundaryLoops()

Public function

FMeshBoundaryLoops

(
    const FDynamicMesh3* MeshIn,
    bool bAutoCompute
)

Functions

Name Description

Public function

bool

 

Compute()

Find the set of boundary EdgeLoops and EdgeSpans.

Protected function Static

int

 

CountInList

(
    const TArray< int >& Loop,
    int Item
)

Count number of times item appears in loop

Protected function Static

int

 

CountSpan

(
    const TArray< int >& Loop,
    int i0,
    int i1
)

Count number of valid vertices in l between loop[i0] and loop[i1-1]

Protected function Static

void

 

ExtractSpan

(
    TArray< int >& Loop,
    int i0,
    int i1,
    bool bMarkInvalid,
    TArray< int >& OutSpan
)

Read out the span from loop[i0] to loop [i1-1] into an array.

Protected function

bool

 

ExtractSubloops

(
    TArray< int >& loopV,
    TArray< int >& loopE,
    TArray< int >& bowties,
    Subloops& SubloopsOut
)

This is called when loopV contains one or more "bowtie" vertices.

Protected function Static

int

 

FindIndex

(
    const TArray< int >& Loop,
    int Start,
    int Item
)

Find the index of item in loop, starting at start index

Protected function

int

 

FindLeftTurnEdge

(
    int incoming_e,
    int bowtie_v,
    TArray< int >& bdry_edges,
    int bdry_edges_count,
    TArray< bool >& used_edges
)

Ok, bdry_edges[0...bdry_edges_count] contains the boundary edges coming out of bowtie_v.

Public function Const

int

 

FindLoopContainingEdge

(
    int EdgeID
)

Public function Const

int

 

FindLoopContainingVertex

(
    int VertexID
)

Public function Const

FIndex2i

 

FindVertexInLoop

(
    int VertexID
)

Public function Const

int

 

GetLoopCount()

Public function Const

int

 

GetMaxVerticesLoopIndex()

Public function Const

int

 

GetSpanCount()

Protected function

FVector3d

 

GetVertexNormal

(
    int vid
)

[TODO] cache this : a dictionary? we will not need very many, but we will need each multiple times!

Protected function Static

bool

 

IsSimpleBowtieLoop

(
    const TArray< int >& LoopVerts,
    const TArray< int >& BowtieVerts,
    int BowtieVertex,
    int& start_i,
    int& end_i
)

Static Utility functions that can be re-used in MeshRegionBoundaryLoops In all the functions below, the list loopV is assumed to possibly contain "removed" vertices indicated by -1.

Protected function Static

bool

 

IsSimplePath

(
    const TArray< int >& LoopVerts,
    const TArray< int >& BowtieVerts,
    int BowtieVertex,
    int i1,
    int i2
)

Check if forward path from loopV[i1] to loopV[i2] contains any bowtie verts other than bowtieV

Public function

void

 

SetMesh

(
    const FDynamicMesh3* MeshIn
)

Operators

Name Description

Public function Const

const FEdgeL...

 

operator[]

(
    int Index
)

Classes

Name

Description

Protected struct

Subloops

Enums

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss