/Engine/Plugins/Runtime/GeometryProcessing/Source/DynamicMesh/Public/Remesher.h
Many aspects of the algorithm can be controlled by the public variables in the block below. In addition many of the core internal functions can be overriden to customize behavior. Various callbacks functions are called when topology changes occur which allows you to for instance track changed regions of the mesh.
class FRemesher : public [UE::Geometry::FMeshRefinerBase](API\Plugins\DynamicMesh\FMeshRefinerBase)
bool
bEnableCollapses
Controls whether edge collapses are allowed during remeshing pass
bool
bEnableFlips
Configuration variables and flagsControls whether edge-flips are allowed during remeshing pass
bool
bEnableParallelProjection
Enable parallel projection. Only applied in AfterRefinement mode
bool
bEnableParallelSmooth
Enable parallel smoothing.
bool
bEnableSmoothing
Controls whether vertex smoothing is applied during remeshing pass
bool
bEnableSmoothInPlace
If smoothing is done in-place, we don't need an extra buffer, but also there will some randomness introduced in results.
bool
bEnableSplits
Controls whether edge splits are allowed during remeshing pass
bool
bMeshIsClosed
We can avoid some checks/etc if we know that the mesh has no boundary edges.
bool
bPreventNormalFlips
Controls whether we try to prevent normal flips inside operations and smoothing.
bool
bPreventTinyTriangles
Controls whether we disallow creation of triangles with small areas inside edge operations.
int
COUNT_COLLAPSES
int
COUNT_FLIPS
int
COUNT_SPLITS
Testing/debug/profiling stuff profiling functions, turn on ENABLE_PROFILING to see output in console
TFunction< FVec...
CustomSmoothF
Override default smoothing function
TFunction< doub...
CustomSmoothSpeedF
Override constant SmoothSpeedT with function
EFlipMetric
FlipMetric
Type of flip metric that will be applied
int
MaxEdgeID
double
MaxEdgeLength
Maximum target edge length. Edges longer than this will be split if possible.
double
MinEdgeLength
Minimum target edge length. Edges shorter than this will be collapsed if possible.
double
MinLengthFlipThresh
For MinEdgeLength metric, only flip if NewLength < (MinLengthFlipThresh * CurLength)
int
ModifiedEdgesLastPass
Number of edges that were modified in previous Remesh pass.
const int
ModuloPrime
StartEdges()andGetNextEdge()control the iteration over edges that will be refined.
double
SmoothSpeedT
Smoothing speed, in range [0,1]
ESmoothTypes
SmoothType
Type of smoothing that will be applied unless overridden by CustomSmoothF
TArray< bool >
TempFlagBuffer
TDynamicVector<...
TempPosBuffer