ITK  6.0.0 Insight Toolkit
itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits > Class Template Reference

#include <itkLaplacianDeformationQuadEdgeMeshFilter.h>

## Detailed Description

### template<class TInputMesh, class TOutputMesh, class TSolverTraits> class itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >

(abstract) base class for laplacian surface mesh deformation.

Laplacian mesh deformation offers the ability to deform 3D surface mesh while preserving local details.

Laplacian-based approaches represent the surface by the so-called differential coordinates or Laplacian coordinates $$\boldsymbol{ \delta }_i$$. These coordinates are obtained by applying the Laplacian operator to the mesh vertices:

$\boldsymbol{ \delta }_i = \Delta_{S}( \boldsymbol{ p }_i ) = - H_i \cdot \boldsymbol{ n_i }$

where $$H_i$$ is the mean curvature $$( \kappa_1 + \kappa_2 )$$ at the vertex $$v_i$$.

The deformation can be formulated by minimizing the difference from the input surface coordinates $$\delta_i$$. With a continuous formulation, this would lead to the minimization of the following energy:

$\min_{\boldsymbol{p'}} \int_{\Omega} \| \boldsymbol{\Delta p'} - \boldsymbol{\delta} \| du dv$

The Euler-Lagrange equation derived:

$\Delta^2 \boldsymbol{p'} = \Delta \boldsymbol{\delta}$

When considering the input surface as the parameter domain, the Laplace operator turns out into the Laplace-Beltrami operator $$\Delta_S$$:

$L^2 \boldsymbol{p'} = L \boldsymbol{ \delta }$

which can be separated into 3 coordinate components.

Then users can add positional constraints on some vertices:

$\boldsymbol{p'}_j = \boldsymbol{c}_j$

If output positions must exactly match set constraints, see LaplacianDeformationQuadEdgeMeshFilterWithHardConstraints. Else see LaplacianDeformationQuadEdgeMeshFilterWithSoftConstraints

To make the deformation as generic as possible, user can provide/choose:

• their own way to compute Laplacian by the means of m_CoefficientsMethod
• Laplacian order by the means of m_Order (according to the literature for m_Order > 3, it can becomes numerically unstable)
• one normalization per vertex based on the local area on the mesh (MIXED_AREA)
• Sparser solver used by the mean of the template parameter TSolverTraits
Template Parameters
 TInputMesh Input Mesh Type TOutputMesh Output Mesh Type TSolverTraits Linear Sparse Solver Traits see VNLIterativeSparseSolverTraits and VNLSparseLUSolverTraits

For details, see https://doi.org/10.54294/s91axg

Definition at line 116 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

Inheritance diagram for itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >:
Collaboration diagram for itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >:

## Classes

struct  HashOutputQEPrimal

struct  Triple

## Public Types

using CoefficientsComputationType = MatrixCoefficients< OutputMeshType >

using ConstPointer = SmartPointer< const Self >

using InputMeshType = TInputMesh

using MatrixType = typename SolverTraits::MatrixType

using OutputMeshType = TOutputMesh

using Pointer = SmartPointer< Self >

using SolverTraits = TSolverTraits

using TriangleType = TriangleHelper< OutputPointType >

using ValueType = typename SolverTraits::ValueType

using VectorType = typename SolverTraits::VectorType

using ConstPointer = SmartPointer< const Self >

using InputCellDataContainer = typename InputMeshType::CellDataContainer

using InputCellsContainerConstIterator = typename InputMeshType::CellsContainerConstIterator

using InputCellsContainerConstPointer = typename InputMeshType::CellsContainerConstPointer

using InputCellTraits = typename InputMeshType::CellTraits

using InputCoordRepType = typename InputMeshType::CoordRepType

using InputEdgeCellType = typename InputMeshType::EdgeCellType

using InputMeshConstPointer = typename InputMeshType::ConstPointer

using InputMeshPointer = typename InputMeshType::Pointer

using InputMeshType = TInputMesh

using InputPointDataContainer = typename InputMeshType::PointDataContainer

using InputPointDataContainerConstPointer = typename InputPointDataContainer::ConstPointer

using InputPointIdentifier = typename InputMeshType::PointIdentifier

using InputPointIdList = typename InputMeshType::PointIdList

using InputPointsContainerConstIterator = typename InputMeshType::PointsContainerConstIterator

using InputPointsContainerConstPointer = typename InputMeshType::PointsContainerConstPointer

using InputPointsIdInternalIterator = typename InputCellTraits::PointIdInternalIterator

using InputPointType = typename InputMeshType::PointType

using InputPolygonCellType = typename InputMeshType::PolygonCellType

using InputQEIterator = typename InputQEPrimal::IteratorGeom

using InputQEPrimal = typename InputMeshType::QEPrimal

using InputVectorType = typename InputMeshType::VectorType

using OutputCellDataContainer = typename OutputMeshType::CellDataContainer

using OutputCoordRepType = typename OutputMeshType::CoordRepType

using OutputMeshConstPointer = typename OutputMeshType::ConstPointer

using OutputMeshPointer = typename OutputMeshType::Pointer

using OutputMeshType = TOutputMesh

using OutputPointDataContainer = typename OutputMeshType::PointDataContainer

using OutputPointIdentifier = typename OutputMeshType::PointIdentifier

using OutputPointsContainerConstPointer = typename OutputMeshType::PointsContainerConstPointer

using OutputPointsContainerIterator = typename OutputMeshType::PointsContainerIterator

using OutputPointsContainerPointer = typename OutputMeshType::PointsContainerPointer

using OutputPointType = typename OutputMeshType::PointType

using OutputQEIterator = typename OutputQEPrimal::IteratorGeom

using OutputQEPrimal = typename OutputMeshType::QEPrimal

using OutputVectorType = typename OutputMeshType::VectorType

using Pointer = SmartPointer< Self >

using Superclass = MeshToMeshFilter< TInputMesh, TOutputMesh >

Public Types inherited from itk::MeshToMeshFilter< TInputMesh, TOutputMesh >
using ConstPointer = SmartPointer< const Self >

using InputMeshPointer = typename InputMeshType::Pointer

using InputMeshType = TInputMesh

using OutputMeshPointer = typename OutputMeshType::Pointer

using OutputMeshType = TOutputMesh

using Pointer = SmartPointer< Self >

using Self = MeshToMeshFilter

using Superclass = MeshSource< TOutputMesh >

Public Types inherited from itk::MeshSource< TOutputMesh >
using ConstPointer = SmartPointer< const Self >

using DataObjectIdentifierType = Superclass::DataObjectIdentifierType

using DataObjectPointer = DataObject::Pointer

using OutputMeshPointer = typename OutputMeshType::Pointer

using OutputMeshType = TOutputMesh

using Pointer = SmartPointer< Self >

using Self = MeshSource

using Superclass = ProcessObject

using DataObjectPointerArraySizeType = ProcessObject::DataObjectPointerArraySizeType

Public Types inherited from itk::ProcessObject
using ConstPointer = SmartPointer< const Self >

using DataObjectIdentifierType = DataObject::DataObjectIdentifierType

using DataObjectPointer = DataObject::Pointer

using DataObjectPointerArray = std::vector< DataObjectPointer >

using DataObjectPointerArraySizeType = DataObjectPointerArray::size_type

using NameArray = std::vector< DataObjectIdentifierType >

using Pointer = SmartPointer< Self >

using Self = ProcessObject

using Superclass = Object

Public Types inherited from itk::Object
using ConstPointer = SmartPointer< const Self >

using Pointer = SmartPointer< Self >

using Self = Object

using Superclass = LightObject

Public Types inherited from itk::LightObject
using ConstPointer = SmartPointer< const Self >

using Pointer = SmartPointer< Self >

using Self = LightObject

## Public Member Functions

void ClearConstraints ()

bool GetDisplacement (OutputPointIdentifier vId, OutputVectorType &oV) const

const char * GetNameOfClass () const override

void SetConstrainedNode (OutputPointIdentifier vId, const OutputPointType &iP)

void SetDisplacement (OutputPointIdentifier vId, const OutputVectorType &iV)

void SetCoefficientsMethod (CoefficientsComputationType *iMethod)

virtual void SetOrder (unsigned int _arg)

virtual unsigned int GetOrder ()

virtual void SetAreaComputationType (const AreaEnum _arg)

virtual AreaEnum GetAreaComputationType ()

Public Member Functions inherited from itk::MeshToMeshFilter< TInputMesh, TOutputMesh >
const InputMeshTypeGetInput () const

const InputMeshTypeGetInput (unsigned int idx) const

void SetInput (const InputMeshType *input)

Public Member Functions inherited from itk::MeshSource< TOutputMesh >
OutputMeshTypeGetOutput ()

OutputMeshTypeGetOutput (unsigned int idx)

virtual void GraftNthOutput (unsigned int idx, DataObject *graft)

virtual void GraftOutput (const DataObjectIdentifierType &key, DataObject *graft)

virtual void GraftOutput (DataObject *graft)

void SetOutput (TOutputMesh *output)

DataObjectPointer MakeOutput (DataObjectPointerArraySizeType idx) override

Public Member Functions inherited from itk::ProcessObject
virtual void AbortGenerateDataOn ()

virtual void EnlargeOutputRequestedRegion (DataObject *)

virtual const bool & GetAbortGenerateData () const

DataObjectPointerArray GetIndexedInputs ()

DataObjectPointerArray GetIndexedOutputs ()

NameArray GetInputNames () const

DataObjectPointerArray GetInputs ()

DataObjectPointerArraySizeType GetNumberOfIndexedInputs () const

DataObjectPointerArraySizeType GetNumberOfIndexedOutputs () const

DataObjectPointerArraySizeType GetNumberOfInputs () const

DataObjectPointerArraySizeType GetNumberOfOutputs () const

virtual DataObjectPointerArraySizeType GetNumberOfValidRequiredInputs () const

NameArray GetOutputNames () const

DataObjectPointerArray GetOutputs ()

virtual float GetProgress () const

NameArray GetRequiredInputNames () const

bool HasInput (const DataObjectIdentifierType &key) const

bool HasOutput (const DataObjectIdentifierType &key) const

void IncrementProgress (float increment)

virtual DataObjectPointer MakeOutput (const DataObjectIdentifierType &)

virtual void PrepareOutputs ()

virtual void PropagateRequestedRegion (DataObject *output)

virtual void ResetPipeline ()

virtual void SetAbortGenerateData (bool _arg)

virtual void Update ()

virtual void UpdateLargestPossibleRegion ()

virtual void UpdateOutputData (DataObject *output)

virtual void UpdateOutputInformation ()

void UpdateProgress (float progress)

virtual void SetReleaseDataFlag (bool val)

virtual bool GetReleaseDataFlag () const

void ReleaseDataFlagOn ()

void ReleaseDataFlagOff ()

virtual void SetReleaseDataBeforeUpdateFlag (bool _arg)

virtual const bool & GetReleaseDataBeforeUpdateFlag () const

virtual void ReleaseDataBeforeUpdateFlagOn ()

Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *cmd) const

unsigned long AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const

LightObject::Pointer CreateAnother () const override

virtual void DebugOff () const

virtual void DebugOn () const

CommandGetCommand (unsigned long tag)

bool GetDebug () const

virtual ModifiedTimeType GetMTime () const

virtual const TimeStampGetTimeStamp () const

bool HasObserver (const EventObject &event) const

void InvokeEvent (const EventObject &)

void InvokeEvent (const EventObject &) const

virtual void Modified () const

void Register () const override

void RemoveAllObservers ()

void RemoveObserver (unsigned long tag) const

void SetDebug (bool debugFlag) const

void SetReferenceCount (int) override

void UnRegister () const noexcept override

virtual void SetObjectName (std::string _arg)

virtual const std::string & GetObjectName () const

Public Member Functions inherited from itk::LightObject
Pointer Clone () const

virtual void Delete ()

virtual int GetReferenceCount () const

void Print (std::ostream &os, Indent indent=0) const

## Static Public Attributes

static constexpr unsigned int InputPointDimension = InputMeshType::PointDimension

static constexpr unsigned int OutputPointDimension = OutputMeshType::PointDimension

## Protected Types

using AreaMapConstIterator = typename AreaMapType::const_iterator

using AreaMapType = std::unordered_map< OutputPointIdentifier, OutputCoordRepType >

using CoefficientMapConstIterator = typename CoefficientMapType::const_iterator

using CoefficientMapType = std::unordered_map< OutputQEPrimal *, OutputCoordRepType, HashOutputQEPrimal >

using ConstraintMapConstIterator = typename ConstraintMapType::const_iterator

using ConstraintMapType = std::unordered_map< OutputPointIdentifier, OutputVectorType >

using OutputMapPointIdentifier = std::unordered_map< OutputPointIdentifier, OutputPointIdentifier >

using OutputMapPointIdentifierConstIterator = typename OutputMapPointIdentifier::const_iterator

using OutputMapPointIdentifierIterator = typename OutputMapPointIdentifier::iterator

using RowConstIterator = typename RowType::const_iterator

using RowIterator = typename RowType::iterator

using RowType = std::unordered_map< OutputPointIdentifier, OutputCoordRepType >

## Protected Member Functions

void ComputeLaplacianMatrix (MatrixType &ioL)

OutputCoordRepType ComputeMixedArea (OutputQEPrimal *iQE1, OutputQEPrimal *iQE2)

OutputCoordRepType ComputeMixedAreaForGivenVertex (OutputPointIdentifier iId)

virtual void ComputeVertexIdMapping ()

void FillMatrix (MatrixType &iM, VectorType &iBx, VectorType &iBy, VectorType &iBz)

void FillMatrixRow (OutputPointIdentifier iId, unsigned int iDegree, OutputCoordRepType iWeight, RowType &ioRow)

void PrintSelf (std::ostream &os, Indent indent) const override

void SolveLinearSystems (const MatrixType &iM, const VectorType &iBx, const VectorType &iBy, const VectorType &iBz, VectorType &oX, VectorType &oY, VectorType &oZ)

virtual void CopyInputMeshToOutputMesh ()

virtual void CopyInputMeshToOutputMeshCellData ()

virtual void CopyInputMeshToOutputMeshCells ()

virtual void CopyInputMeshToOutputMeshEdgeCells ()

virtual void CopyInputMeshToOutputMeshFieldData ()

virtual void CopyInputMeshToOutputMeshGeometry ()

virtual void CopyInputMeshToOutputMeshPointData ()

virtual void CopyInputMeshToOutputMeshPoints ()

Protected Member Functions inherited from itk::MeshToMeshFilter< TInputMesh, TOutputMesh >
void CopyInputMeshToOutputMeshCellData ()

void CopyInputMeshToOutputMeshCells ()

void CopyInputMeshToOutputMeshPointData ()

void CopyInputMeshToOutputMeshPoints ()

MeshToMeshFilter ()

~MeshToMeshFilter () override=default

Protected Member Functions inherited from itk::MeshSource< TOutputMesh >
void GenerateInputRequestedRegion () override

MeshSource ()

~MeshSource () override=default

Protected Member Functions inherited from itk::ProcessObject

void AddOptionalInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx)

bool AddRequiredInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx)

virtual void CacheInputReleaseDataFlags ()

virtual void GenerateData ()

virtual void GenerateOutputInformation ()

virtual void GenerateOutputRequestedRegion (DataObject *output)

DataObjectGetInput (const DataObjectIdentifierType &key)

const DataObjectGetInput (const DataObjectIdentifierType &key) const

virtual const DataObjectPointerArraySizeTypeGetNumberOfRequiredInputs () const

virtual const DataObjectPointerArraySizeTypeGetNumberOfRequiredOutputs () const

bool IsIndexedInputName (const DataObjectIdentifierType &) const

bool IsIndexedOutputName (const DataObjectIdentifierType &) const

bool IsRequiredInputName (const DataObjectIdentifierType &) const

DataObjectPointerArraySizeType MakeIndexFromInputName (const DataObjectIdentifierType &name) const

DataObjectPointerArraySizeType MakeIndexFromOutputName (const DataObjectIdentifierType &name) const

DataObjectIdentifierType MakeNameFromInputIndex (DataObjectPointerArraySizeType idx) const

DataObjectIdentifierType MakeNameFromOutputIndex (DataObjectPointerArraySizeType idx) const

virtual void PopBackInput ()

virtual void PopFrontInput ()

ProcessObject ()

virtual void PropagateResetPipeline ()

virtual void PushBackInput (const DataObject *input)

virtual void PushFrontInput (const DataObject *input)

virtual void ReleaseInputs ()

virtual void RemoveInput (const DataObjectIdentifierType &key)

virtual void RemoveInput (DataObjectPointerArraySizeType)

virtual void RemoveOutput (const DataObjectIdentifierType &key)

virtual void RemoveOutput (DataObjectPointerArraySizeType idx)

bool RemoveRequiredInputName (const DataObjectIdentifierType &)

virtual void RestoreInputReleaseDataFlags ()

virtual void SetInput (const DataObjectIdentifierType &key, DataObject *input)

virtual void SetNthInput (DataObjectPointerArraySizeType idx, DataObject *input)

virtual void SetNthOutput (DataObjectPointerArraySizeType idx, DataObject *output)

void SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num)

void SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num)

virtual void SetNumberOfRequiredInputs (DataObjectPointerArraySizeType)

virtual void SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg)

virtual void SetOutput (const DataObjectIdentifierType &name, DataObject *output)

virtual void SetPrimaryInput (DataObject *object)

virtual void SetPrimaryOutput (DataObject *object)

void SetRequiredInputNames (const NameArray &)

virtual void VerifyInputInformation () const

virtual void VerifyPreconditions () const

~ProcessObject () override

DataObjectGetInput (DataObjectPointerArraySizeType idx)

const DataObjectGetInput (DataObjectPointerArraySizeType idx) const

DataObjectGetPrimaryInput ()

const DataObjectGetPrimaryInput () const

virtual void SetPrimaryInputName (const DataObjectIdentifierType &key)

virtual const char * GetPrimaryInputName () const

DataObjectGetOutput (const DataObjectIdentifierType &key)

const DataObjectGetOutput (const DataObjectIdentifierType &key) const

virtual void SetPrimaryOutputName (const DataObjectIdentifierType &key)

virtual const char * GetPrimaryOutputName () const

DataObjectGetOutput (DataObjectPointerArraySizeType i)

const DataObjectGetOutput (DataObjectPointerArraySizeType i) const

DataObjectGetPrimaryOutput ()

const DataObjectGetPrimaryOutput () const

Protected Member Functions inherited from itk::Object
Object ()

bool PrintObservers (std::ostream &os, Indent indent) const

virtual void SetTimeStamp (const TimeStamp &timeStamp)

~Object () override

Protected Member Functions inherited from itk::LightObject
virtual LightObject::Pointer InternalClone () const

LightObject ()

virtual void PrintHeader (std::ostream &os, Indent indent) const

virtual void PrintTrailer (std::ostream &os, Indent indent) const

virtual ~LightObject ()

## Protected Attributes

AreaEnum m_AreaComputationType { AreaEnum::NONE }

CoefficientMapType m_CoefficientMap {}

CoefficientsComputationTypem_CoefficientsMethod {}

ConstraintMapType m_Constraints {}

OutputMapPointIdentifier m_InternalMap {}

AreaMapType m_MixedAreaMap {}

unsigned int m_Order { 1 }

Protected Attributes inherited from itk::ProcessObject
TimeStamp m_OutputInformationMTime {}

bool m_Updating {}

Protected Attributes inherited from itk::LightObject
std::atomic< int > m_ReferenceCount {}

static Pointer New ()

Static Public Member Functions inherited from itk::MeshToMeshFilter< TInputMesh, TOutputMesh >
static Pointer New ()

Static Public Member Functions inherited from itk::MeshSource< TOutputMesh >
static Pointer New ()

Static Public Member Functions inherited from itk::Object
static bool GetGlobalWarningDisplay ()

static void GlobalWarningDisplayOff ()

static void GlobalWarningDisplayOn ()

static Pointer New ()

static void SetGlobalWarningDisplay (bool val)

Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()

static Pointer New ()

Static Protected Member Functions inherited from itk::ProcessObject
template<typename TSourceObject >
static void MakeRequiredOutputs (TSourceObject &sourceObject, const DataObjectPointerArraySizeType numberOfRequiredOutputs)

static constexpr float progressFixedToFloat (uint32_t fixed)

static uint32_t progressFloatToFixed (float f)

## ◆ AreaEnum

template<class TInputMesh , class TOutputMesh , class TSolverTraits >

Definition at line 188 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ AreaMapConstIterator

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::AreaMapConstIterator = typename AreaMapType::const_iterator
protected

Definition at line 231 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ AreaMapType

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::AreaMapType = std::unordered_map
protected

Definition at line 230 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ CoefficientMapConstIterator

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::CoefficientMapConstIterator = typename CoefficientMapType::const_iterator
protected

Definition at line 228 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ CoefficientMapType

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::CoefficientMapType = std::unordered_map
protected

Definition at line 227 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ CoefficientsComputationType

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::CoefficientsComputationType = MatrixCoefficients

Definition at line 152 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ ConstPointer

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ConstPointer = SmartPointer

Definition at line 126 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ ConstraintMapConstIterator

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ConstraintMapConstIterator = typename ConstraintMapType::const_iterator
protected

Definition at line 216 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ ConstraintMapType

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ConstraintMapType = std::unordered_map
protected

Definition at line 215 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ InputMeshType

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputMeshType = TInputMesh

Input types.

Definition at line 131 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ MatrixType

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::MatrixType = typename SolverTraits::MatrixType

Definition at line 149 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ OutputMapPointIdentifier

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputMapPointIdentifier = std::unordered_map
protected

Definition at line 211 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ OutputMapPointIdentifierConstIterator

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputMapPointIdentifierConstIterator = typename OutputMapPointIdentifier::const_iterator
protected

Definition at line 213 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ OutputMapPointIdentifierIterator

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputMapPointIdentifierIterator = typename OutputMapPointIdentifier::iterator
protected

Definition at line 212 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ OutputMeshType

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputMeshType = TOutputMesh

Output types.

Definition at line 137 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ Pointer

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::Pointer = SmartPointer

Definition at line 125 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ RowConstIterator

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::RowConstIterator = typename RowType::const_iterator
protected

Definition at line 235 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ RowIterator

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::RowIterator = typename RowType::iterator
protected

Definition at line 234 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ RowType

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::RowType = std::unordered_map
protected

Definition at line 233 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ Self

template<class TInputMesh , class TOutputMesh , class TSolverTraits >

Basic types.

Definition at line 123 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ SolverTraits

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::SolverTraits = TSolverTraits

Definition at line 147 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ Superclass

template<class TInputMesh , class TOutputMesh , class TSolverTraits >

Definition at line 124 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ TriangleType

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::TriangleType = TriangleHelper

Definition at line 163 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ ValueType

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ValueType = typename SolverTraits::ValueType

Definition at line 148 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ VectorType

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::VectorType = typename SolverTraits::VectorType

Definition at line 150 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## Constructor & Destructor Documentation

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
protected

Default constructor

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
overrideprotecteddefault

Default constructor

## ◆ ClearConstraints()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ClearConstraints ( )

Clear all constraints added by the means of SetConstrainedNode or SetDisplacement.

## ◆ ComputeLaplacianMatrix()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ComputeLaplacianMatrix ( MatrixType & ioL )
protected

## ◆ ComputeMixedArea()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 OutputCoordRepType itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ComputeMixedArea ( OutputQEPrimal * iQE1, OutputQEPrimal * iQE2 )
protected

## ◆ ComputeMixedAreaForGivenVertex()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 OutputCoordRepType itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ComputeMixedAreaForGivenVertex ( OutputPointIdentifier iId )
protected

## ◆ ComputeVertexIdMapping()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 virtual void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ComputeVertexIdMapping ( )
protectedvirtual

## ◆ FillMatrix()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::FillMatrix ( MatrixType & iM, VectorType & iBx, VectorType & iBy, VectorType & iBz )
protected

Fill matrix iM and vectors Bx, m_By and m_Bz depending on if one vertex is on the border or not.

## ◆ FillMatrixRow()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::FillMatrixRow ( OutputPointIdentifier iId, unsigned int iDegree, OutputCoordRepType iWeight, RowType & ioRow )
protected

## ◆ GetAreaComputationType()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 virtual AreaEnum itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::GetAreaComputationType ( )
virtual

Set/Get the area normalization type

## ◆ GetDisplacement()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 bool itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::GetDisplacement ( OutputPointIdentifier vId, OutputVectorType & oV ) const

Get the displacement vector oV for the vertex vId. Returns true if the vertex vId is a constraint, else false.

## ◆ GetNameOfClass()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 const char* itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::GetNameOfClass ( ) const
overridevirtual

## ◆ GetOrder()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 virtual unsigned int itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::GetOrder ( )
virtual

Set/Get the Laplacian order

## ◆ PrintSelf()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::PrintSelf ( std::ostream & os, Indent indent ) const
overrideprotectedvirtual

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::MeshSource< TOutputMesh >.

## ◆ SetAreaComputationType()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 virtual void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::SetAreaComputationType ( const AreaEnum _arg )
virtual

Set/Get the area normalization type

## ◆ SetCoefficientsMethod()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::SetCoefficientsMethod ( CoefficientsComputationType * iMethod )
inline

Set the coefficient method to compute the Laplacian matrix of the input mesh

Definition at line 156 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ SetConstrainedNode()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::SetConstrainedNode ( OutputPointIdentifier vId, const OutputPointType & iP )

Constrain vertex vId to the given location iP

## ◆ SetDisplacement()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::SetDisplacement ( OutputPointIdentifier vId, const OutputVectorType & iV )

Set the displacement vector iV for the vertex vId

## ◆ SetOrder()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 virtual void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::SetOrder ( unsigned int _arg )
virtual

Set/Get the Laplacian order

## ◆ SolveLinearSystems()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::SolveLinearSystems ( const MatrixType & iM, const VectorType & iBx, const VectorType & iBy, const VectorType & iBz, VectorType & oX, VectorType & oY, VectorType & oZ )
protected

Solve linear systems : $$iM \cdot oX = iBx$$ and $$iM \cdot oY = iBy$$ and $$iM \cdot oZ = iBz$$.

Parameters
 [in] iM [in] iBx [in] iBy [in] iBz [out] oX [out] oY [out] oZ

## ◆ InputPointDimension

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 constexpr unsigned int itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputPointDimension = InputMeshType::PointDimension
staticconstexpr

Definition at line 134 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ m_AreaComputationType

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 AreaEnum itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::m_AreaComputationType { AreaEnum::NONE }
protected

Definition at line 245 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ m_CoefficientMap

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 CoefficientMapType itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::m_CoefficientMap {}
protected

Definition at line 239 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ m_CoefficientsMethod

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 CoefficientsComputationType* itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::m_CoefficientsMethod {}
protected

Definition at line 242 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ m_Constraints

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 ConstraintMapType itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::m_Constraints {}
protected

Definition at line 238 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ m_InternalMap

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 OutputMapPointIdentifier itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::m_InternalMap {}
protected

Definition at line 237 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ m_MixedAreaMap

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 AreaMapType itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::m_MixedAreaMap {}
protected

Definition at line 240 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ m_Order

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 unsigned int itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::m_Order { 1 }
protected

Definition at line 244 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

## ◆ OutputPointDimension

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
 constexpr unsigned int itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputPointDimension = OutputMeshType::PointDimension
staticconstexpr

Definition at line 145 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

The documentation for this class was generated from the following file: