ITK  6.0.0
Insight Toolkit
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
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:

Template Parameters
TInputMeshInput Mesh Type
TOutputMeshOutput Mesh Type
TSolverTraitsLinear 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 AreaEnum = LaplacianDeformationQuadEdgeMeshFilterEnums::Area
 
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 Self = LaplacianDeformationQuadEdgeMeshFilter
 
using SolverTraits = TSolverTraits
 
using Superclass = QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh >
 
using TriangleType = TriangleHelper< OutputPointType >
 
using ValueType = typename SolverTraits::ValueType
 
using VectorType = typename SolverTraits::VectorType
 
- Public Types inherited from itk::QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh >
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 Self = QuadEdgeMeshToQuadEdgeMeshFilter
 
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 MultiThreaderType = MultiThreaderBase
 
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 ()
 
const char * GetNameOfClass () const override
 
- Public Member Functions inherited from itk::MeshToMeshFilter< TInputMesh, TOutputMesh >
const InputMeshTypeGetInput () const
 
const InputMeshTypeGetInput (unsigned int idx) const
 
const char * GetNameOfClass () const override
 
void SetInput (const InputMeshType *input)
 
- Public Member Functions inherited from itk::MeshSource< TOutputMesh >
const char * GetNameOfClass () const override
 
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 ()
 
MultiThreaderTypeGetMultiThreader () const
 
const char * GetNameOfClass () const override
 
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 DataObjectPointer MakeOutput (DataObjectPointerArraySizeType idx)
 
virtual void PrepareOutputs ()
 
virtual void PropagateRequestedRegion (DataObject *output)
 
virtual void ResetPipeline ()
 
virtual void SetAbortGenerateData (bool _arg)
 
void SetMultiThreader (MultiThreaderType *threader)
 
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 ()
 
virtual void SetNumberOfWorkUnits (ThreadIdType _arg)
 
virtual const ThreadIdTypeGetNumberOfWorkUnits () const
 
- 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
 
MetaDataDictionaryGetMetaDataDictionary ()
 
const MetaDataDictionaryGetMetaDataDictionary () const
 
virtual ModifiedTimeType GetMTime () const
 
const char * GetNameOfClass () const override
 
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
 
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
 
void SetMetaDataDictionary (MetaDataDictionary &&rrhs)
 
virtual void SetObjectName (std::string _arg)
 
virtual const std::string & GetObjectName () const
 
- Public Member Functions inherited from itk::LightObject
Pointer Clone () const
 
virtual Pointer CreateAnother () const
 
virtual void Delete ()
 
virtual const char * GetNameOfClass () const
 
virtual int GetReferenceCount () const
 
void Print (std::ostream &os, Indent indent=0) const
 
virtual void Register () const
 
virtual void SetReferenceCount (int)
 
virtual void UnRegister () const noexcept
 

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)
 
 LaplacianDeformationQuadEdgeMeshFilter ()
 
 ~LaplacianDeformationQuadEdgeMeshFilter () override=default
 
- Protected Member Functions inherited from itk::QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh >
virtual void CopyInputMeshToOutputMesh ()
 
virtual void CopyInputMeshToOutputMeshCellData ()
 
virtual void CopyInputMeshToOutputMeshCells ()
 
virtual void CopyInputMeshToOutputMeshEdgeCells ()
 
virtual void CopyInputMeshToOutputMeshFieldData ()
 
virtual void CopyInputMeshToOutputMeshGeometry ()
 
virtual void CopyInputMeshToOutputMeshPointData ()
 
virtual void CopyInputMeshToOutputMeshPoints ()
 
 QuadEdgeMeshToQuadEdgeMeshFilter ()
 
 ~QuadEdgeMeshToQuadEdgeMeshFilter () override=default
 
- Protected Member Functions inherited from itk::MeshToMeshFilter< TInputMesh, TOutputMesh >
void CopyInputMeshToOutputMeshCellData ()
 
void CopyInputMeshToOutputMeshCellLinks ()
 
void CopyInputMeshToOutputMeshCells ()
 
void CopyInputMeshToOutputMeshPointData ()
 
void CopyInputMeshToOutputMeshPoints ()
 
 MeshToMeshFilter ()
 
 ~MeshToMeshFilter () override=default
 
- Protected Member Functions inherited from itk::MeshSource< TOutputMesh >
void GenerateInputRequestedRegion () override
 
 MeshSource ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 ~MeshSource () override=default
 
- Protected Member Functions inherited from itk::ProcessObject
virtual void AddInput (DataObject *input)
 
void AddOptionalInputName (const DataObjectIdentifierType &)
 
void AddOptionalInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx)
 
virtual void AddOutput (DataObject *output)
 
bool AddRequiredInputName (const DataObjectIdentifierType &)
 
bool AddRequiredInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx)
 
virtual void CacheInputReleaseDataFlags ()
 
virtual void GenerateData ()
 
virtual void GenerateInputRequestedRegion ()
 
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 ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 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
 
virtual bool GetThreaderUpdateProgress () const
 
virtual void ThreaderUpdateProgressOn ()
 
virtual void SetThreaderUpdateProgress (bool arg)
 
- Protected Member Functions inherited from itk::Object
 Object ()
 
bool PrintObservers (std::ostream &os, Indent indent) const
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
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 PrintSelf (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 {}
 

Additional Inherited Members

- Static Public Member Functions inherited from itk::QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh >
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)
 

Member Typedef Documentation

◆ AreaEnum

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::AreaEnum = LaplacianDeformationQuadEdgeMeshFilterEnums::Area

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<OutputPointIdentifier, OutputCoordRepType>
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<OutputQEPrimal *, OutputCoordRepType, HashOutputQEPrimal>
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<OutputMeshType>

Definition at line 152 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

◆ ConstPointer

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

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<OutputPointIdentifier, OutputVectorType>
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<OutputPointIdentifier, OutputPointIdentifier>
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<Self>

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<OutputPointIdentifier, OutputCoordRepType>
protected

Definition at line 233 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

◆ Self

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

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 >
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::Superclass = QuadEdgeMeshToQuadEdgeMeshFilter<TInputMesh, TOutputMesh>

Definition at line 124 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

◆ TriangleType

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

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

◆ LaplacianDeformationQuadEdgeMeshFilter()

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

Default constructor

◆ ~LaplacianDeformationQuadEdgeMeshFilter()

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::~LaplacianDeformationQuadEdgeMeshFilter ( )
overrideprotecteddefault

Default constructor

Member Function Documentation

◆ 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 >.

Reimplemented in itk::LaplacianDeformationQuadEdgeMeshFilterWithHardConstraints< TInputMesh, TOutputMesh, TSolverTraits >, and itk::LaplacianDeformationQuadEdgeMeshFilterWithSoftConstraints< TInputMesh, TOutputMesh, TSolverTraits >.

◆ 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

Member Data Documentation

◆ 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: