Loading...
Searching...
No Matches
itkElasticBodyReciprocalSplineKernelTransform2.h
Go to the documentation of this file.
/*=========================================================================
*
* Copyright UMC Utrecht and contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*=========================================================================*/
/*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: $RCSfile: itkElasticBodyReciprocalSplineKernelTransform2.h,v $
Date: $Date: 2006/04/17 01:50:19 $
Version: $Revision: 1.8 $
Copyright (c) Insight Software Consortium. All rights reserved.
See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
#ifndef itkElasticBodyReciprocalSplineKernelTransform2_h
#define itkElasticBodyReciprocalSplineKernelTransform2_h
#include "itkKernelTransform2.h"
namespace itk
{
template <class TScalarType = double, // Data type for scalars (float or double)
unsigned int NDimensions = 3>
// Number of dimensions
class ITK_TEMPLATE_EXPORT ElasticBodyReciprocalSplineKernelTransform2
: public KernelTransform2<TScalarType, NDimensions>
{
public:
ITK_DISALLOW_COPY_AND_MOVE(ElasticBodyReciprocalSplineKernelTransform2);
using Self = ElasticBodyReciprocalSplineKernelTransform2;
using Superclass = KernelTransform2<TScalarType, NDimensions>;
using Pointer = SmartPointer<Self>;
using ConstPointer = SmartPointer<const Self>;
itkTypeMacro(ElasticBodyReciprocalSplineKernelTransform2, KernelTransform2);
itkNewMacro(Self);
using typename Superclass::ScalarType;
using typename Superclass::ParametersType;
using typename Superclass::JacobianType;
itkStaticConstMacro(SpaceDimension, unsigned int, Superclass::SpaceDimension);
// itkSetMacro( Alpha, TScalarType ); Cant use the macro because the matrices must be recomputed
void
SetAlpha(TScalarType Alpha) override
{
this->m_Alpha = Alpha;
this->m_LMatrixComputed = false;
this->m_LInverseComputed = false;
this->m_WMatrixComputed = false;
}
itkGetConstMacro(Alpha, TScalarType);
void
SetPoissonRatio(const TScalarType Nu) override
{
if (Nu > -1.0 && Nu < 0.5)
{
this->SetAlpha(8.0 * (1.0 - Nu) - 1.0);
}
}
const TScalarType
GetPoissonRatio() const override
{
return 1.0 - (this->m_Alpha + 1.0) / 8.0;
}
using typename Superclass::InputPointType;
using typename Superclass::OutputPointType;
using typename Superclass::InputVectorType;
using typename Superclass::OutputVectorType;
using typename Superclass::InputCovariantVectorType;
using typename Superclass::OutputCovariantVectorType;
protected:
ElasticBodyReciprocalSplineKernelTransform2();
~ElasticBodyReciprocalSplineKernelTransform2() override = default;
void
PrintSelf(std::ostream & os, Indent indent) const override;
using typename Superclass::GMatrixType;
void
ComputeG(const InputVectorType & x, GMatrixType & GMatrix) const override;
TScalarType m_Alpha{};
};
} // namespace itk
#ifndef ITK_MANUAL_INSTANTIATION
# include "itkElasticBodyReciprocalSplineKernelTransform2.hxx"
#endif
#endif // itkElasticBodyReciprocalSplineKernelTransform2_h
TScalarType
itk::ElasticBodyReciprocalSplineKernelTransform2::SetAlpha
void SetAlpha(TScalarType Alpha) override
Definition itkElasticBodyReciprocalSplineKernelTransform2.h:92
itk::ElasticBodyReciprocalSplineKernelTransform2::SetPoissonRatio
void SetPoissonRatio(const TScalarType Nu) override
Definition itkElasticBodyReciprocalSplineKernelTransform2.h:106
itk::ElasticBodyReciprocalSplineKernelTransform2::ComputeG
void ComputeG(const InputVectorType &x, GMatrixType &GMatrix) const override
itk::ElasticBodyReciprocalSplineKernelTransform2< CoordRepType, Self::SpaceDimension >::Superclass
KernelTransform2< CoordRepType, NDimensions > Superclass
Definition itkElasticBodyReciprocalSplineKernelTransform2.h:64
itk::ElasticBodyReciprocalSplineKernelTransform2::itkStaticConstMacro
itkStaticConstMacro(SpaceDimension, unsigned int, Superclass::SpaceDimension)
itk::ElasticBodyReciprocalSplineKernelTransform2< CoordRepType, Self::SpaceDimension >::Self
ElasticBodyReciprocalSplineKernelTransform2 Self
Definition itkElasticBodyReciprocalSplineKernelTransform2.h:63
itk::ElasticBodyReciprocalSplineKernelTransform2::~ElasticBodyReciprocalSplineKernelTransform2
~ElasticBodyReciprocalSplineKernelTransform2() override=default
itk::ElasticBodyReciprocalSplineKernelTransform2< CoordRepType, Self::SpaceDimension >::ConstPointer
SmartPointer< const Self > ConstPointer
Definition itkElasticBodyReciprocalSplineKernelTransform2.h:67
itk::ElasticBodyReciprocalSplineKernelTransform2< CoordRepType, Self::SpaceDimension >::Pointer
SmartPointer< Self > Pointer
Definition itkElasticBodyReciprocalSplineKernelTransform2.h:66
itk::ElasticBodyReciprocalSplineKernelTransform2::PrintSelf
void PrintSelf(std::ostream &os, Indent indent) const override
itk::ElasticBodyReciprocalSplineKernelTransform2::GetPoissonRatio
const TScalarType GetPoissonRatio() const override
Definition itkElasticBodyReciprocalSplineKernelTransform2.h:116
itk::ElasticBodyReciprocalSplineKernelTransform2::ElasticBodyReciprocalSplineKernelTransform2
ElasticBodyReciprocalSplineKernelTransform2()
itk::ElasticBodyReciprocalSplineKernelTransform2< CoordRepType, Self::SpaceDimension >::m_Alpha
CoordRepType m_Alpha
Definition itkElasticBodyReciprocalSplineKernelTransform2.h:153
itk::ElasticBodyReciprocalSplineKernelTransform2< CoordRepType, Self::SpaceDimension >::GMatrixType
vnl_matrix_fixed< CoordRepType, NDimensions, NDimensions > GMatrixType
itk::ElasticBodyReciprocalSplineKernelTransform2::ITK_DISALLOW_COPY_AND_MOVE
ITK_DISALLOW_COPY_AND_MOVE(ElasticBodyReciprocalSplineKernelTransform2)
itk::KernelTransform2< double, 3 >::KernelTransform2
KernelTransform2()
itk::KernelTransform2::m_WMatrixComputed
bool m_WMatrixComputed
Definition itkKernelTransform2.h:504
itk::KernelTransform2::m_LMatrixComputed
bool m_LMatrixComputed
Definition itkKernelTransform2.h:506
itk::KernelTransform2::GMatrixType
vnl_matrix_fixed< TScalarType, NDimensions, NDimensions > GMatrixType
Definition itkKernelTransform2.h:365
itk::KernelTransform2::m_LInverseComputed
bool m_LInverseComputed
Definition itkKernelTransform2.h:508
itkKernelTransform2.h
itk
Definition itkAdvancedImageToImageMetric.h:43

Generated on 1768596610 for elastix by 1.15.0 |