Module |
|
Header |
/Engine/Plugins/Experimental/GeometryProcessing/Source/MeshSolverUtilities/Public/MeshSmoothingUtilities.h |
Include |
#include "MeshSmoothingUtilities.h" |
Source |
/Engine/Plugins/Experimental/GeometryProcessing/Source/MeshSolverUtilities/Private/LaplacianMeshSmoother.cpp |
namespace MeshSmoothingOperators
{
void MeshSmoothingOperators::ComputeSmoothing_Diffusion
(
const ELaplacianWeightScheme WeightScheme,
const FDynamicMesh3 & OriginalMesh,
bool bForwardEuler,
const double Speed,
double Weight,
const int32 NumIterations,
TArray< FVector3d > & PositionArray
)
}
This is equivalent to forward or backward Euler time steps of the diffusion equation
dp/dt = L[p]
p{n+1} = p{n} + dt L[p^{n}]
with dt = Speed / Max(|w_ii|)
here w_ii are the diagonal values of L