FQueueRemesher

Extension to Remesher that is smarter about which edges/vertices to touch:

Windows
MacOS
Linux

Inheritance Hierarchy

References

Module

DynamicMesh

Header

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

Include

#include "QueueRemesher.h"

Syntax

class FQueueRemesher : public FRemesher

Remarks

Extension to Remesher that is smarter about which edges/vertices to touch:

Variables

Name Description

Protected variable

TSet< int >

 

EdgeBuffer

Persistent buffer of edges to be processed. This buffer is filled then iterated over.

Protected variable

TArray< bool >

 

EdgeShouldBeQueuedBuffer

Whether an edge should be added to ModifiedEdges (used in async tasks)

Public variable

int

 

MaxFastSplitIterations

Max number of passes just doing edge splits.

Public variable

int

 

MaxRemeshIterations

Max number of passes doing full remeshing operations.

Protected variable

TOptional< TSet...

 

ModifiedEdges

Set of edges that have been modified during a given iteration.

Protected variable

TFunction< void...

 

PostEdgeSplitFunction

The function called after an edge split occurs. This function will enqueue edges in ModifiedEdges.

Protected variable

SettingState

 

SavedState

Constructors

Name Description

Public function

FQueueRemesher

(
    FDynamicMesh3* MeshIn
)

Functions

Name Description

Public function

void

 

FastestRemesh()

Converge on remeshed result as quickly as possible.

Protected function

int

 

FastSplitIteration()

This pass only does edge splits and enqueues modified vertex neighborhoods.

Protected function

void

 

PopState()

Protected function

void

 

PushState()

Protected function

void

 

QueueEdge

(
    int eid
)

Protected function

void

 

QueueOneRing

(
    int vid
)

Protected function

void

 

RemeshIteration()

This pass does all edge operations plug smoothing and reprojection.

Protected function

void

 

ResetQueue()

Protected function Virtual

void

 

TrackedFullProjectionPass

(
    bool bParallel
)

Protected function

void

 

TrackedFullSmoothPass_Buffer

(
    bool bParallel
)

Protected function

void

 

TrackedMoveVerticesParallel

(
    TFunction< FVector3d&)> ...
)

Move all vertices in parallel.

Overridden from FRemesher

Name Description

Public function Virtual

void

 

BasicRemeshPass()

"Outer loop" for all remeshing operations

Protected function Virtual

void

 

InitializeVertexBufferForPass()

Protected function Virtual

void

 

OnEdgeSplit

(
    int EdgeID,
    int VertexA,
    int VertexB,
    const FDynamicMesh3::FEdgeSplitInfo...
)

Call the function above to enqueue edges in the ModifiedEdges set.

Classes

Name

Description

Protected struct

SettingState

We occasionally want to override the user-specified choices of edge operations to achieve some sub-step of a full remesh algorithm.

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