UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Geometry::FWindingNumberBasedSolidify Class Reference

#include <Solidify.h>

Public Member Functions

 FWindingNumberBasedSolidify (TUniqueFunction< double(const FVector3d &)> WindingFunctionIn, const FAxisAlignedBox3d &BoundsIn, const TArray< FVector3d > &SeedPointsIn)
 
virtual ~FWindingNumberBasedSolidify ()
 
void SetCellSizeAndExtendBounds (const FAxisAlignedBox3d &Bounds, double ExtendBoundsIn, int TargetOutputVoxelCount)
 
bool Validate ()
 
const FMeshShapeGeneratorGenerate ()
 

Public Attributes

TUniqueFunction< double(const FVector3d &)> WindingFunction = [](const FVector3d& Pos) { return 0.0; }
 
FAxisAlignedBox3d FunctionBounds
 
TArray< FVector3dSeedPoints
 
double WindingThreshold = .5
 
double ExtendBounds = 1
 
bool bSolidAtBoundaries = true
 
int SurfaceSearchSteps = 4
 
double MeshCellSize = 1.0
 
TFunction< bool(void)> CancelF
 

Protected Attributes

FMarchingCubes MarchingCubes
 

Detailed Description

Use marching cubes to remesh an arbitrary function that provides a winding-number like scalar value to a solid surface

Constructor & Destructor Documentation

◆ FWindingNumberBasedSolidify()

UE::Geometry::FWindingNumberBasedSolidify::FWindingNumberBasedSolidify ( TUniqueFunction< double(const FVector3d &)>  WindingFunctionIn,
const FAxisAlignedBox3d BoundsIn,
const TArray< FVector3d > &  SeedPointsIn 
)
inline

◆ ~FWindingNumberBasedSolidify()

virtual UE::Geometry::FWindingNumberBasedSolidify::~FWindingNumberBasedSolidify ( )
inlinevirtual

Member Function Documentation

◆ Generate()

const FMeshShapeGenerator & UE::Geometry::FWindingNumberBasedSolidify::Generate ( )
inline

◆ SetCellSizeAndExtendBounds()

void UE::Geometry::FWindingNumberBasedSolidify::SetCellSizeAndExtendBounds ( const FAxisAlignedBox3d Bounds,
double  ExtendBoundsIn,
int  TargetOutputVoxelCount 
)
inline

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

◆ Validate()

bool UE::Geometry::FWindingNumberBasedSolidify::Validate ( )
inline
Returns
true if input parameters are valid

Member Data Documentation

◆ bSolidAtBoundaries

bool UE::Geometry::FWindingNumberBasedSolidify::bSolidAtBoundaries = true

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

◆ CancelF

TFunction<bool(void)> UE::Geometry::FWindingNumberBasedSolidify::CancelF
Initial value:
= []()
{
return false;
}

if this function returns true, we should abort calculation

◆ ExtendBounds

double UE::Geometry::FWindingNumberBasedSolidify::ExtendBounds = 1

How much to extend bounds considered by marching cubes outside the original surface bounds

◆ FunctionBounds

FAxisAlignedBox3d UE::Geometry::FWindingNumberBasedSolidify::FunctionBounds

Bounds within which we will mesh things

◆ MarchingCubes

FMarchingCubes UE::Geometry::FWindingNumberBasedSolidify::MarchingCubes
protected

◆ MeshCellSize

double UE::Geometry::FWindingNumberBasedSolidify::MeshCellSize = 1.0

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

◆ SeedPoints

TArray<FVector3d> UE::Geometry::FWindingNumberBasedSolidify::SeedPoints

Seed points for meshing

◆ SurfaceSearchSteps

int UE::Geometry::FWindingNumberBasedSolidify::SurfaceSearchSteps = 4

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

◆ WindingFunction

TUniqueFunction<double(const FVector3d&)> UE::Geometry::FWindingNumberBasedSolidify::WindingFunction = [](const FVector3d& Pos) { return 0.0; }

Inputs External Winding-Number Function

◆ WindingThreshold

double UE::Geometry::FWindingNumberBasedSolidify::WindingThreshold = .5

Inside/outside winding number threshold


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