UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Geometry::TImplicitMorphology< TriangleMeshType > Class Template Reference

#include <Morphology.h>

Public Types

enum class  EMorphologyOp { Dilate = 0 , Contract = 1 , Close = 2 , Open = 3 }
 

Public Member Functions

void SetCellSizesAndDistance (FAxisAlignedBox3d Bounds, double DistanceIn, int TargetInputVoxelCount, int TargetOutputVoxelCount)
 
void SetGridCellSize (FAxisAlignedBox3d Bounds, double DistanceIn, int TargetInputVoxelCount)
 
void SetMeshCellSize (FAxisAlignedBox3d Bounds, double DistanceIn, int TargetInputVoxelCount)
 
bool Validate ()
 
const FMeshShapeGeneratorGenerate ()
 

Public Attributes

const TriangleMeshTypeSource = nullptr
 
TMeshAABBTree3< TriangleMeshType > * SourceSpatial = nullptr
 
EMorphologyOp MorphologyOp = EMorphologyOp::Dilate
 
double Distance = 1.0
 
double GridCellSize = 1.0
 
double MeshCellSize = 1.0
 
bool bUseCustomBounds = false
 
FAxisAlignedBox3d CustomBounds
 
TFunction< bool(void)> CancelF
 

Protected Types

template<typename MeshType >
using TMeshSDF = TSparseNarrowBandMeshSDF< MeshType >
 

Protected Member Functions

void ComputeFirstPass (double UnsignedOffset, double SignedOffset)
 
void ComputeSecondPass (double UnsignedOffset, double SignedOffset)
 

Protected Attributes

FMarchingCubes MarchingCubes
 
double NarrowBandMaxDistance
 

Member Typedef Documentation

◆ TMeshSDF

template<typename MeshType >
using UE::Geometry::TImplicitMorphology< TriangleMeshType >::TMeshSDF = TSparseNarrowBandMeshSDF<MeshType>
protected

Member Enumeration Documentation

◆ EMorphologyOp

Morphology operation types

Enumerator
Dilate 

Expand the shapes outward

Contract 

Shrink the shapes inward

Close 

Dilate and then contract, to delete small negative features (sharp inner corners, small holes)

Open 

Contract and then dilate, to delete small positive features (sharp outer corners, small isolated pieces)

Member Function Documentation

◆ ComputeFirstPass()

void UE::Geometry::TImplicitMorphology< TriangleMeshType >::ComputeFirstPass ( double  UnsignedOffset,
double  SignedOffset 
)
inlineprotected

..... then remove this line

◆ ComputeSecondPass()

void UE::Geometry::TImplicitMorphology< TriangleMeshType >::ComputeSecondPass ( double  UnsignedOffset,
double  SignedOffset 
)
inlineprotected

..... then remove this line

◆ Generate()

◆ SetCellSizesAndDistance()

void UE::Geometry::TImplicitMorphology< TriangleMeshType >::SetCellSizesAndDistance ( FAxisAlignedBox3d  Bounds,
double  DistanceIn,
int  TargetInputVoxelCount,
int  TargetOutputVoxelCount 
)
inline

◆ SetGridCellSize()

void UE::Geometry::TImplicitMorphology< TriangleMeshType >::SetGridCellSize ( FAxisAlignedBox3d  Bounds,
double  DistanceIn,
int  TargetInputVoxelCount 
)
inline

◆ SetMeshCellSize()

void UE::Geometry::TImplicitMorphology< TriangleMeshType >::SetMeshCellSize ( FAxisAlignedBox3d  Bounds,
double  DistanceIn,
int  TargetInputVoxelCount 
)
inline

◆ Validate()

Member Data Documentation

◆ bUseCustomBounds

Whether to use a custom bounding box instead of the input mesh bounds to define the domain to solidify

◆ CancelF

Initial value:
= []()
{
return false;
}

if this function returns true, we should abort calculation

◆ CustomBounds

Custom bounds to use, if bUseCustomBounds == true; ignored otherwise

◆ Distance

◆ GridCellSize

◆ MarchingCubes

◆ MeshCellSize

◆ MorphologyOp

◆ NarrowBandMaxDistance

double UE::Geometry::TImplicitMorphology< TriangleMeshType >::NarrowBandMaxDistance
protected

◆ Source

◆ SourceSpatial


The documentation for this class was generated from the following file: