Module |
|
Header |
/Engine/Plugins/Experimental/GeometryProcessing/Source/DynamicMesh/Public/Solvers/LaplacianMatrixAssembly.h |
Include |
#include "Solvers/LaplacianMatrixAssembly.h" |
namespace UE
{
namespace MeshDeformation
{
template<typename RealType>
void UE::MeshDeformation::ConstructCotangentLaplacian
(
const FDynamicMesh3 & DynamicMesh,
const FVertexLinearization & VertexMap,
UE::Solvers::TSparseMatrixAssembler< RealType > & AreaMatrix,
UE::Solvers::TSparseMatrixAssembler< RealType > & LaplacianInterior,
UE::Solvers::TSparseMatrixAssembler< RealType > & LaplacianBoundary
)
}
}
Construct a sparse matrix representation using a cotangent-weighted Laplacian. but returns the result in two symmetric parts.
The mesh itself is assumed to have N interior vertices, and M boundary vertices.
(AreaMatrix^{-1}) * L_hat = Cotangent weighted Laplacian.
AreaMatrix^{-1} * ( LaplacianInterior * Vector_InteriorVerts + LaplacianBoundary * Vector_BoundaryVerts) = Full Laplacian applied to interior vertices.
Parameter |
Description |
---|---|
DynamicMesh |
The triangle mesh |
VertexMap |
Additional arrays used to map between vertexID and offset in a linear array (i.e. the row). The vertices are ordered so that last M ( = VertexMap.NumBoundaryVerts() ) correspond to those on the boundary. |
AreaMatrix |
On return, the mass matrix for the internal vertices. sparse N x N matrix |
LaplacianInterior |
On return, the laplacian operator that acts on the interior vertices: sparse N x N matrix - symmetric |
LaplacianBoundary |
On return, the portion of the operator that acts on the boundary vertices: sparse N x M matrix |