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

#include <Solidify.h>

Public Member Functions

 TImplicitSolidify (const TriangleMeshType *Source=nullptr, TMeshAABBTree3< TriangleMeshType > *SourceSpatial=nullptr, TFastWindingTree< TriangleMeshType > *SourceWinding=nullptr)
 
void SetCellSizeAndExtendBounds (FAxisAlignedBox3d Bounds, double ExtendBoundsIn, int TargetOutputVoxelCount)
 
bool Validate ()
 
const FMeshShapeGeneratorGenerate ()
 

Public Attributes

const TriangleMeshTypeSource = nullptr
 
TMeshAABBTree3< TriangleMeshType > * SourceSpatial = nullptr
 
TFastWindingTree< TriangleMeshType > * SourceWinding = nullptr
 
double WindingThreshold = .5
 
bool bUseCustomBounds = false
 
FAxisAlignedBox3d CustomBounds
 
double ExtendBounds = 1
 
bool bSolidAtBoundaries = true
 
int SurfaceSearchSteps = 4
 
double MeshCellSize = 1.0
 
TFunction< bool(void)> CancelF
 

Protected Attributes

FMarchingCubes MarchingCubes
 

Detailed Description

template<typename TriangleMeshType>
class UE::Geometry::TImplicitSolidify< TriangleMeshType >

Use marching cubes to remesh a triangle mesh to a solid surface Uses fast winding number to decide what is inside vs outside

Constructor & Destructor Documentation

◆ TImplicitSolidify()

UE::Geometry::TImplicitSolidify< TriangleMeshType >::TImplicitSolidify ( const TriangleMeshType Source = nullptr,
TMeshAABBTree3< TriangleMeshType > *  SourceSpatial = nullptr,
TFastWindingTree< TriangleMeshType > *  SourceWinding = nullptr 
)
inline

Member Function Documentation

◆ Generate()

◆ SetCellSizeAndExtendBounds()

void UE::Geometry::TImplicitSolidify< TriangleMeshType >::SetCellSizeAndExtendBounds ( FAxisAlignedBox3d  Bounds,
double  ExtendBoundsIn,
int  TargetOutputVoxelCount 
)
inline

Set cell size to hit the target voxel count along the max dimension of the bounds

◆ Validate()

Returns
true if input parameters are valid

Member Data Documentation

◆ bSolidAtBoundaries

What to do if the surface extends outside the marching cubes bounds – if true, puts a solid surface at the boundary

◆ 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

◆ ExtendBounds

How much to extend bounds considered by marching cubes outside the original surface bounds. Ignored if bUseCustomBounds == true.

◆ MarchingCubes

◆ MeshCellSize

size of the cells used when meshing the output (marching cubes' cube size)

◆ Source

◆ SourceSpatial

◆ SourceWinding

◆ SurfaceSearchSteps

How many binary search steps to do when placing surface at boundary

◆ WindingThreshold

Inside/outside winding number threshold


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