Navigation
API > API/Plugins > API/Plugins/GeometryAlgorithms
Algorithm adapted from "3D medial axis point approximation using nearest neighbors and the normal field" by Ma et al. Starting from a surface point + normal, aims to find a "medial axis ball" touching that point and one other point w/ center along Point,-Normal ray, via iteratively shrinking an estimated radius to touch the surface point + a nearest point
Note that the returned sphere may not touch the input surface point, esp. in corner cases where the actual medial ball would have zero radius.
| Name | FShrinkMedialBall |
| Type | struct |
| Header File | /Engine/Plugins/Runtime/GeometryProcessing/Source/GeometryAlgorithms/Public/Skeletonization/MeshMedialAxisSampling.h |
| Include Path | #include "Skeletonization/MeshMedialAxisSampling.h" |
Syntax
struct FShrinkMedialBall
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| MaxIters | int32 | Max iterations of shrinking to apply. | Skeletonization/MeshMedialAxisSampling.h | |
| MinDelta | double | Threshold to stop iterating, if radius or center changes less than this. | Skeletonization/MeshMedialAxisSampling.h | |
| RadiusThreshold | double | Stop iterating below this radius (if > 0). Returned radius may still be smaller than this. | Skeletonization/MeshMedialAxisSampling.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FSphere Find
(
const TMeshAABBTree3< MeshType >& MeshBVH, |
Shrink a sphere touching a given SurfacePoint, with center along the line through its SurfaceNormal until the sphere approximately touches two closest surface points including the input point Note: Sphere will often not actually touch the input surface point due to discretization error, since we set the radius s.t. | Skeletonization/MeshMedialAxisSampling.h | |
bool FindLocalMinCurvatureRadius
(
const MeshType& Mesh, |
Method to 'hot start' the search via local vertex neighborhood, using a provided neighborhood. | Skeletonization/MeshMedialAxisSampling.h | |
bool FindLocalMinCurvatureRadius
(
const FDynamicMesh3& Mesh, |
Method to 'hot start' the search via local vertex neighborhood, using the neighborhood information in the dynamic mesh. | Skeletonization/MeshMedialAxisSampling.h | |
FSphere FindWithImplicitWeld
(
const TMeshAABBTree3< MeshType >& MeshBVH, |
Skeletonization/MeshMedialAxisSampling.h | ||
bool Project
(
const TMeshAABBTree3< MeshType >& MeshBVH, |
Project an existing sphere to a surface-contained sphere, searching along the line through the initial sphere center and corresponding closest surface point | Skeletonization/MeshMedialAxisSampling.h |