ITK  5.0.0
Insight Segmentation and Registration 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>

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

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://hdl.handle.net/10380/3410

Definition at line 93 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

Classes

struct  HashOutputQEPrimal
 
struct  Triple
 

Public Types

enum  AreaType {
  NONE = 0,
  MIXEDAREA
}
 
using CoefficientsComputationType = MatrixCoefficients< OutputMeshType >
 
using ConstPointer = SmartPointer< const Self >
 
using InputMeshType = TInputMesh
 
using InputPointType = typename Superclass::InputPointType
 
using MatrixType = typename SolverTraits::MatrixType
 
using OutputCoordRepType = typename Superclass::OutputCoordRepType
 
using OutputMeshType = TOutputMesh
 
using OutputPointIdentifier = typename Superclass::OutputPointIdentifier
 
using OutputPointType = typename Superclass::OutputPointType
 
using OutputQEIterator = typename Superclass::OutputQEIterator
 
using OutputQEPrimal = typename Superclass::OutputQEPrimal
 
using OutputVectorType = typename Superclass::OutputVectorType
 
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
 
virtual const char * GetNameOfClass () const
 
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 (AreaType _arg)
 
virtual AreaType GetAreaComputationType ()
 
- Public Member Functions inherited from itk::QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh >
virtual ::itk::LightObject::Pointer CreateAnother () const
 
- 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 *output)
 
virtual void GraftOutput (DataObject *output)
 
virtual void GraftOutput (const DataObjectIdentifierType &key, DataObject *output)
 
void SetOutput (TOutputMesh *output)
 
DataObjectPointer MakeOutput (DataObjectPointerArraySizeType idx) override
 
- Public Member Functions inherited from itk::ProcessObject
virtual void AbortGenerateDataOff ()
 
virtual void AbortGenerateDataOn ()
 
virtual void EnlargeOutputRequestedRegion (DataObject *)
 
virtual const bool & GetAbortGenerateData () const
 
DataObjectPointerArray GetIndexedInputs ()
 
DataObjectPointerArray GetIndexedOutputs ()
 
NameArray GetInputNames () const
 
DataObjectPointerArray GetInputs ()
 
MultiThreaderTypeGetMultiThreader () const
 
DataObjectPointerArraySizeType GetNumberOfIndexedInputs () const
 
DataObjectPointerArraySizeType GetNumberOfIndexedOutputs () const
 
DataObjectPointerArraySizeType GetNumberOfInputs () const
 
DataObjectPointerArraySizeType GetNumberOfOutputs () const
 
virtual
DataObjectPointerArraySizeType 
GetNumberOfValidRequiredInputs () const
 
NameArray GetOutputNames () const
 
DataObjectPointerArray GetOutputs ()
 
virtual const float & GetProgress () const
 
NameArray GetRequiredInputNames () const
 
bool HasInput (const DataObjectIdentifierType &key) const
 
bool HasOutput (const DataObjectIdentifierType &key) const
 
virtual DataObjectPointer MakeOutput (const DataObjectIdentifierType &)
 
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 flag)
 
virtual bool GetReleaseDataFlag () const
 
void ReleaseDataFlagOn ()
 
void ReleaseDataFlagOff ()
 
virtual void SetReleaseDataBeforeUpdateFlag (bool _arg)
 
virtual const bool & GetReleaseDataBeforeUpdateFlag () const
 
virtual void ReleaseDataBeforeUpdateFlagOn ()
 
virtual void ReleaseDataBeforeUpdateFlagOff ()
 
virtual void SetNumberOfWorkUnits (ThreadIdType _arg)
 
virtual const ThreadIdTypeGetNumberOfWorkUnits () const
 
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *)
 
unsigned long AddObserver (const EventObject &event, Command *) const
 
virtual void DebugOff () const
 
virtual void DebugOn () const
 
CommandGetCommand (unsigned long tag)
 
bool GetDebug () const
 
MetaDataDictionaryGetMetaDataDictionary ()
 
const MetaDataDictionaryGetMetaDataDictionary () 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)
 
void SetDebug (bool debugFlag) const
 
void SetReferenceCount (int) override
 
void UnRegister () const noexceptoverride
 
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
virtual void Delete ()
 
virtual int GetReferenceCount () const
 
 itkCloneMacro (Self)
 
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 = itksys::hash_map< OutputPointIdentifier, OutputCoordRepType >
 
using CoefficientMapConstIterator = typename CoefficientMapType::const_iterator
 
using CoefficientMapType = itksys::hash_map< OutputQEPrimal *, OutputCoordRepType, HashOutputQEPrimal >
 
using ConstraintMapConstIterator = typename ConstraintMapType::const_iterator
 
using ConstraintMapType = itksys::hash_map< OutputPointIdentifier, OutputVectorType >
 
using OutputMapPointIdentifier = itksys::hash_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 = itksys::hash_map< OutputPointIdentifier, OutputCoordRepType >
 

Protected Member Functions

void ComputeLaplacianMatrix (MatrixType &ioL)
 
OutputCoordRepType ComputeMixedArea (OutputQEPrimal *iQE1, OutputQEPrimal *iQE2)
 
OutputCoordRepType ComputeMixedAreaForGivenVertex (OutputPointIdentifier vId)
 
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 ()
 
 ~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 GenerateOutputInformation ()
 
virtual void GenerateOutputRequestedRegion (DataObject *output)
 
DataObjectGetInput (const DataObjectIdentifierType &key)
 
const DataObjectGetInput (const DataObjectIdentifierType &key) const
 
virtual const
DataObjectPointerArraySizeType
GetNumberOfRequiredInputs () const
 
virtual const
DataObjectPointerArraySizeType
GetNumberOfRequiredOutputs () 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 num, DataObject *input)
 
virtual void SetNthOutput (DataObjectPointerArraySizeType num, DataObject *output)
 
void SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num)
 
void SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num)
 
virtual void SetNumberOfRequiredInputs (DataObjectPointerArraySizeType)
 
virtual void SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg)
 
virtual void SetOutput (const DataObjectIdentifierType &key, DataObject *output)
 
virtual void SetPrimaryInput (DataObject *input)
 
virtual void SetPrimaryOutput (DataObject *output)
 
void SetRequiredInputNames (const NameArray &)
 
virtual void VerifyInputInformation () ITKv5_CONST
 
virtual void VerifyPreconditions () ITKv5_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 idx)
 
const DataObjectGetOutput (DataObjectPointerArraySizeType idx) 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 &time)
 
 ~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

AreaType m_AreaComputationType
 
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 flag)
 
- Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
 
static Pointer New ()
 

Member Typedef Documentation

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

Definition at line 207 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::AreaMapType = itksys::hash_map< OutputPointIdentifier, OutputCoordRepType >
protected

Definition at line 206 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 204 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::CoefficientMapType = itksys::hash_map< OutputQEPrimal*, OutputCoordRepType, HashOutputQEPrimal >
protected

Definition at line 203 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 129 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 103 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 193 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ConstraintMapType = itksys::hash_map< OutputPointIdentifier, OutputVectorType >
protected

Definition at line 192 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Input types.

Definition at line 108 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputPointType = typename Superclass::InputPointType

Definition at line 109 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 126 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputCoordRepType = typename Superclass::OutputCoordRepType

Definition at line 115 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputMapPointIdentifier = itksys::hash_map< OutputPointIdentifier, OutputPointIdentifier >
protected

Definition at line 188 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 190 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 189 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Output types.

Definition at line 114 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputPointIdentifier = typename Superclass::OutputPointIdentifier

Definition at line 117 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputPointType = typename Superclass::OutputPointType

Definition at line 116 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputQEIterator = typename Superclass::OutputQEIterator

Definition at line 120 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputQEPrimal = typename Superclass::OutputQEPrimal

Definition at line 118 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputVectorType = typename Superclass::OutputVectorType

Definition at line 119 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 102 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 211 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 210 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::RowType = itksys::hash_map< OutputPointIdentifier, OutputCoordRepType >
protected

Definition at line 209 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Basic types.

Definition at line 100 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 124 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 101 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 139 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 125 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 127 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

Member Enumeration Documentation

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
enum itk::LaplacianDeformationQuadEdgeMeshFilter::AreaType
Enumerator
NONE 

Do not use any area information

MIXEDAREA 

Use a mixed area

Definition at line 160 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

Constructor & Destructor Documentation

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

Default constructor

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

Default constructor

Member Function Documentation

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.

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ComputeLaplacianMatrix ( MatrixType ioL)
protected
template<class TInputMesh , class TOutputMesh , class TSolverTraits >
OutputCoordRepType itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ComputeMixedArea ( OutputQEPrimal iQE1,
OutputQEPrimal iQE2 
)
protected
template<class TInputMesh , class TOutputMesh , class TSolverTraits >
OutputCoordRepType itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ComputeMixedAreaForGivenVertex ( OutputPointIdentifier  vId)
protected
template<class TInputMesh , class TOutputMesh , class TSolverTraits >
virtual void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ComputeVertexIdMapping ( )
protectedvirtual
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.

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

Set/Get the area normalization type

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.

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

Set/Get the Laplacian order

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::LaplacianDeformationQuadEdgeMeshFilterWithSoftConstraints< TInputMesh, TOutputMesh, TSolverTraits >, and itk::LaplacianDeformationQuadEdgeMeshFilterWithHardConstraints< TInputMesh, TOutputMesh, TSolverTraits >.

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

Set/Get the area normalization type

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 132 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

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

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

Set/Get the Laplacian order

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 linears 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

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

Definition at line 111 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

template<class TInputMesh , class TOutputMesh , class TSolverTraits >
AreaType itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::m_AreaComputationType
protected

Definition at line 221 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 215 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 218 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 214 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 213 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 216 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 220 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.

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

Definition at line 122 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.


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