Solvers

Windows
MacOS
Linux

Classes

Name

Description

Public class

CotanTriangleData

The per-triangle data used in constructing the cotangent weighted laplacian.

Public class

FTriangleLinearization

Used linearize the TriIds in a mesh as a single array and allow mapping from array offset to mesh TriId.

Public class

FVertexLinearization

Used linearize the VtxIds in a mesh as a single array and allow mapping from array offset to mesh VtxId.

Public class

IConstrainedLaplacianMeshSolver

Extension of IConstrainedMeshSolver that supports manipulating the underlying Laplacian vectors used in Laplacian-based Deformation Solvers.

Public class

IConstrainedMeshSolver

Interface to a index-based deformation solver for a 3D mesh vertex set that supports weighted point constraints.

Public class

IConstrainedMeshUVSolver

Interface to a index-based UV solver for a 3D triangle mesh that supports weighted point constraints.

Public class

MeanValueTriangleData

The per-triangle data used in constructing the mean-value weighted laplacian.

Enums

Functions

Name Description

Public function

bool

 

bIsSymmetricLaplacian

(
    const ELaplacianWeightScheme Scheme
)

Public function

FString

 

LaplacianSchemeName

(
    const ELaplacianWeightScheme Scheme
)

Utility to map the enum names for debuging etc.

Public function

int32

 

UE::MeshDeformation::ComputeNumMatrixElements

(
    const FDynamicMesh3& DynamicMesh,
    const TArray< int32 >& ToVtxId
)

Utility to compute the number of elements in the sparse laplacian matrix.

Public function

void

 

UE::MeshDeformation::ComputeSmoothing_BiHarmonic

(
    const ELaplacianWeightScheme Weight...,
    const FDynamicMesh3& OriginalMesh,
    const double Speed,
    const double Weight,
    const int32 NumIterations,
    TArray< FVector3d >& PositionArray
)

For discussion of implicit / explicit integration of diffusion and biharmonic equations see "Implicit Fairing of Irregular Meshes using Diffusion and Curvature Flow" - M Desbrun 99.

Public function

void

 

UE::MeshDeformation::ComputeSmoothing_Diffusion

(
    const ELaplacianWeightScheme Weight...,
    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

Public function

void

 

UE::MeshDeformation::ComputeSmoothing_ImplicitBiHarmonicPCG

(
    const ELaplacianWeightScheme Weight...,
    const FDynamicMesh3& OriginalMesh,
    const double Speed,
    const double Weight,
    const int32 MaxIterations,
    TArray< FVector3d >& PositionArray
)

Public function

TUniquePtr< ...

 

UE::MeshDeformation::ConstructConstrainedMeshDeformer

(
    const ELaplacianWeightScheme Weight...,
    const FDynamicMesh3& DynamicMesh
)

Solves the linear system for p_vec ( Transpose(L) * L + (0 0 ) ) p_vec = source_vec + ( 0 )

Public function

TUniquePtr< ...

 

UE::MeshDeformation::ConstructConstrainedMeshSmoother

(
    const ELaplacianWeightScheme Weight...,
    const FDynamicMesh3& DynamicMesh
)

Solves the linear system for p_vec ( Transpose(L) * L + (0 0 ) ) p_vec = ( 0 )

Public function

void

 

UE::MeshDeformation::ConstructCotangentLaplacian

(
    const FDynamicMesh3& DynamicMesh,
    const FVertexLinearization& Vertex...,
    UE::Solvers::TSparseMatrixAssembler...,
    UE::Solvers::TSparseMatrixAssembler...,
    const bool bClampWeights
)

Construct a sparse matrix representation using a pre-multiplied cotangent-weighted Laplacian.

Public function

void

 

UE::MeshDeformation::ConstructCotangentLaplacian

(
    const FDynamicMesh3& DynamicMesh,
    const FVertexLinearization& Vertex...,
    UE::Solvers::TSparseMatrixAssembler...,
    UE::Solvers::TSparseMatrixAssembler...,
    UE::Solvers::TSparseMatrixAssembler...
)

Construct a sparse matrix representation using a cotangent-weighted Laplacian.

Public function

void

 

UE::MeshDeformation::ConstructFullCotangentLaplacian

(
    const FDynamicMesh3& DynamicMesh,
    const FVertexLinearization& Vertex...,
    UE::Solvers::TSparseMatrixAssembler...,
    ECotangentWeightMode WeightMode,
    ECotangentAreaMode AreaMode
)

Construct sparse Cotangent Laplacian matrix.

Public function

void

 

UE::MeshDeformation::ConstructMeanValueWeightLaplacian

(
    const FDynamicMesh3& DynamicMesh,
    const FVertexLinearization& Vertex...,
    UE::Solvers::TSparseMatrixAssembler...,
    UE::Solvers::TSparseMatrixAssembler...
)

Construct a sparse matrix representation using a meanvalue-weighted Laplacian.

Public function

TUniquePtr< ...

 

UE::MeshDeformation::ConstructNaturalConformalParamSolver

(
    const FDynamicMesh3& DynamicMesh
)

Create solver for Free-Boundary UV Parameterization for this mesh.

Public function

TUniquePtr< ...

 

UE::MeshDeformation::ConstructSoftMeshDeformer

(
    const FDynamicMesh3& DynamicMesh
)

Construct a Mesh Deformer object for the given mesh that uses Biharmonic Laplacian Mesh Deformation to solve for the deformed vertex positions.

Public function

void

 

UE::MeshDeformation::ConstructTriangleDataArray

(
    const FDynamicMesh3& DynamicMesh,
    const FTriangleLinearization& Tria...,
    TArray< TriangleDataType >& Triang...
)

Return and array in triangle order that holds the per-triangle derived data needed

Public function

void

 

UE::MeshDeformation::ConstructUmbrellaLaplacian

(
    const FDynamicMesh3& DynamicMesh,
    const FVertexLinearization& Vertex...,
    UE::Solvers::TSparseMatrixAssembler...,
    UE::Solvers::TSparseMatrixAssembler...
)

Construct a sparse matrix representation of an umbrella weighted Laplacian.

Public function

void

 

UE::MeshDeformation::ConstructUniformLaplacian

(
    const FDynamicMesh3& DynamicMesh,
    const FVertexLinearization& Vertex...,
    UE::Solvers::TSparseMatrixAssembler...,
    UE::Solvers::TSparseMatrixAssembler...
)

Construct a sparse matrix representation of a uniform weighted Laplacian.

Public function

void

 

UE::MeshDeformation::ConstructValenceWeightedLaplacian

(
    const FDynamicMesh3& DynamicMesh,
    const FVertexLinearization& Vertex...,
    UE::Solvers::TSparseMatrixAssembler...,
    UE::Solvers::TSparseMatrixAssembler...
)

Construct a sparse matrix representation of a valence-weighted Laplacian.

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss