FGroupTopologyLaplacianDeformer

Windows
MacOS
Linux

Inheritance Hierarchy

FGroupTopologyDeformer

FGroupTopologyLaplacianDeformer

References

Module

MeshModelingTools

Header

/Engine/Plugins/Experimental/MeshModelingToolset/Source/MeshModelingTools/Public/DeformMeshPolygonsTool.h

Include

#include "DeformMeshPolygonsTool.h"

Syntax

class FGroupTopologyLaplacianDeformer : public FGroupTopologyDeformer

Variables

Name Description

Public variable

FAsyncTaskExecu...

 

AsyncMeshDeformTask

Asynchronous task object.

Public variable

bool

 

bDeformerNeedsToRun

This is set to true whenever the user interacts with the tool under laplacian deformation mode.

Public variable

bool

 

bLocalize

Public variable

bool

 

bPostfixHandles

When true, tells the solver to attempt to postfix the actual position of the handles to the constrained position

Public variable

bool

 

bTaskSubmeshIsDirty

Need to update the task with the current submesh

Public variable

bool

 

bVertexPositionsNeedSync

This is set to false only after 1) the asynchronous deformation task is complete 2) the main thread has seen it complete, and 3) the main thread updates the vertex positions of the mesh one last time

Public variable

double

 

HandleWeights

The weight which will be applied to the constraints corresponding to the handle vertices.

Public variable

TArray< FDeform...

 

SrcMeshConstraintBuffer

Stores the position of the vertex constraints and corresponding weights for the entire mesh.

Public variable

TArray< int32 >

 

SubsetIDBuffer

Array of vertex indices organized in groups of three - basically an index buffer - that defines the subset of the mesh that the deformation task will work on.

Constructors

Destructors

Functions

Name Description

Public function

void

 

ExportDeformedPositions

(
    FDynamicMesh3* TargetMesh
)

Updates the vertex positions of the mesh with the result from the last deformation solve.

Public function Const

const TArray...

 

GetROIFaces()

Public function

void

 

InitBackgroundWorker

(
    const ELaplacianWeightScheme Weight...
)

Allocates shared storage for use in task synchronization

Public function

void

 

InitializeConstraintBuffer()

Sets the SrcMeshConstraintBuffer to have a size of MaxVertexID, and initializes with the current mesh positions, but weight zero

Public function

bool

 

IsDone()

Returns true if the asynchronous task has finished.

Public function Const

bool

 

IsTaskInFlight()

Capture data about background task state.

Public function

void

 

RecordModifiedVertex

(
    int32 VertexID
)

Used to iteratively add to the active change set (TSet<>)

Public function

void

 

RecordModifiedVertices

(
    const ValidSetAppendContainerType&...
)

Change tracking

Public function

void

 

ResetModifiedVertices()

Used to begin a procedural addition of modified vertices

Public function

void

 

Shutdown()

Triggers abort on task and passes off ownership to deleter object

Public function

bool

 

UpdateAndLaunchdWorker

(
    const ELaplacianWeightScheme Weight...,
    const FRichCurve* Curve
)

Coordinates the background tasks. Returns false if the worker was already running

Public function

void

 

UpdateSelection

(
    const FDynamicMesh3* TargetMes...,
    const TArray< int >& Groups,
    bool bLocalizeDeformation
)

Given an array of Group IDs, update the selection and record vertices

Overridden from FGroupTopologyDeformer

Name Description

Public function Virtual

void

 

SetActiveHandleCorners

(
    const TArray< int >& TopologyCorne...
)

Set the active handle to the given Corners

Public function Virtual

void

 

SetActiveHandleEdges

(
    const TArray< int >& TopologyEdgeI...
)

Set the active handle to the given Edges

Public function Virtual

void

 

SetActiveHandleFaces

(
    const TArray< int >& FaceGroupIDs
)

Handle setup/configuraiton Set the active handle to the given Faces

Public function Virtual

void

 

UpdateSolution

(
    FDynamicMesh3* TargetMesh,
    const TFunction< FVector3d...
)

Updates the mesh preview and/or solvers upon user input, provided a deformation strategy

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