go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkElasticBodyReciprocalSplineKernelTransform2.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright UMC Utrecht and contributors
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 /*=========================================================================
19 
20  Program: Insight Segmentation & Registration Toolkit
21  Module: $RCSfile: itkElasticBodyReciprocalSplineKernelTransform2.h,v $
22  Language: C++
23  Date: $Date: 2006/04/17 01:50:19 $
24  Version: $Revision: 1.8 $
25 
26  Copyright (c) Insight Software Consortium. All rights reserved.
27  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
28 
29  This software is distributed WITHOUT ANY WARRANTY; without even
30  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
31  PURPOSE. See the above copyright notices for more information.
32 
33 =========================================================================*/
34 #ifndef __itkElasticBodyReciprocalSplineKernelTransform2_h
35 #define __itkElasticBodyReciprocalSplineKernelTransform2_h
36 
37 #include "itkKernelTransform2.h"
38 
39 namespace itk
40 {
41 
54 template< class TScalarType = double, // Data type for scalars (float or double)
55 unsigned int NDimensions = 3 >
56 // Number of dimensions
58  public KernelTransform2< TScalarType, NDimensions >
59 {
60 public:
61 
65  NDimensions > Superclass;
66 
68  typedef SmartPointer< const Self > ConstPointer;
69 
72 
74  itkNewMacro( Self );
75 
78 
81 
84 
86  itkStaticConstMacro( SpaceDimension, unsigned int, Superclass::SpaceDimension );
87 
91  //itkSetMacro( Alpha, TScalarType ); Cant use the macro because the matrices must be recomputed
92  virtual void SetAlpha( TScalarType Alpha )
93  {
94  this->m_Alpha = Alpha;
95  this->m_LMatrixComputed = false;
96  this->m_LInverseComputed = false;
97  this->m_WMatrixComputed = false;
98  }
99 
100 
102  itkGetConstMacro( Alpha, TScalarType );
103 
105  virtual void SetPoissonRatio( const TScalarType Nu )
106  {
107  if( Nu > -1.0 && Nu < 0.5 )
108  {
109  this->SetAlpha( 8.0 * ( 1.0 - Nu ) - 1.0 );
110  }
111  }
112 
113 
114  virtual const TScalarType GetPoissonRatio( void ) const
115  {
116  return 1.0 - ( this->m_Alpha + 1.0 ) / 8.0;
117  }
118 
119 
128 
129 protected:
130 
133  void PrintSelf( std::ostream & os, Indent indent ) const;
134 
138 
147  void ComputeG( const InputVectorType & x, GMatrixType & GMatrix ) const;
148 
151 
152 private:
153 
154  ElasticBodyReciprocalSplineKernelTransform2( const Self & ); // purposely not implemented
155  void operator=( const Self & ); // purposely not implemented
156 
157 };
158 
159 } // namespace itk
160 
161 #ifndef ITK_MANUAL_INSTANTIATION
162 #include "itkElasticBodyReciprocalSplineKernelTransform2.hxx"
163 #endif
164 
165 #endif // __itkElasticBodyReciprocalSplineKernelTransform2_h
itk::ElasticBodyReciprocalSplineKernelTransform2::ScalarType
Superclass::ScalarType ScalarType
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:74
itk::ElasticBodyReciprocalSplineKernelTransform2::Superclass
KernelTransform2< TScalarType, NDimensions > Superclass
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:65
itk::ElasticBodyReciprocalSplineKernelTransform2::~ElasticBodyReciprocalSplineKernelTransform2
virtual ~ElasticBodyReciprocalSplineKernelTransform2()
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:132
itk::ElasticBodyReciprocalSplineKernelTransform2::InputCovariantVectorType
Superclass::InputCovariantVectorType InputCovariantVectorType
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:126
itk::ElasticBodyReciprocalSplineKernelTransform2::ElasticBodyReciprocalSplineKernelTransform2
ElasticBodyReciprocalSplineKernelTransform2()
itk::KernelTransform2::OutputVectorType
Superclass::OutputVectorType OutputVectorType
Definition: itkKernelTransform2.h:126
itk::KernelTransform2::ScalarType
Superclass::ScalarType ScalarType
Definition: itkKernelTransform2.h:119
itk::ElasticBodyReciprocalSplineKernelTransform2::ConstPointer
SmartPointer< const Self > ConstPointer
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:68
SmartPointer< Self >
itk::KernelTransform2::OutputPointType
Superclass::OutputPointType OutputPointType
Definition: itkKernelTransform2.h:124
itk::ElasticBodyReciprocalSplineKernelTransform2::ComputeG
void ComputeG(const InputVectorType &x, GMatrixType &GMatrix) const
itk::ElasticBodyReciprocalSplineKernelTransform2::OutputPointType
Superclass::OutputPointType OutputPointType
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:123
itk::KernelTransform2
Definition: itkKernelTransform2.h:99
itk::ElasticBodyReciprocalSplineKernelTransform2::itkStaticConstMacro
itkStaticConstMacro(SpaceDimension, unsigned int, Superclass::SpaceDimension)
itk::ElasticBodyReciprocalSplineKernelTransform2::InputPointType
Superclass::InputPointType InputPointType
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:122
itk::ElasticBodyReciprocalSplineKernelTransform2::GetPoissonRatio
virtual const TScalarType GetPoissonRatio(void) const
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:114
itk::ElasticBodyReciprocalSplineKernelTransform2::OutputCovariantVectorType
Superclass::OutputCovariantVectorType OutputCovariantVectorType
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:127
itk::ElasticBodyReciprocalSplineKernelTransform2
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:59
itk::ElasticBodyReciprocalSplineKernelTransform2::m_Alpha
TScalarType m_Alpha
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:150
itk::KernelTransform2::InputVectorType
Superclass::InputVectorType InputVectorType
Definition: itkKernelTransform2.h:125
double
itk::ElasticBodyReciprocalSplineKernelTransform2::PrintSelf
void PrintSelf(std::ostream &os, Indent indent) const
itk::ElasticBodyReciprocalSplineKernelTransform2::JacobianType
Superclass::JacobianType JacobianType
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:83
itk::KernelTransform2::JacobianType
Superclass::JacobianType JacobianType
Definition: itkKernelTransform2.h:122
itk::KernelTransform2::InputPointType
Superclass::InputPointType InputPointType
Definition: itkKernelTransform2.h:123
itk::ElasticBodyReciprocalSplineKernelTransform2::InputVectorType
Superclass::InputVectorType InputVectorType
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:124
itk::ElasticBodyReciprocalSplineKernelTransform2::operator=
void operator=(const Self &)
itk::KernelTransform2< double, 3 >::m_LMatrixComputed
bool m_LMatrixComputed
Definition: itkKernelTransform2.h:493
itk::ElasticBodyReciprocalSplineKernelTransform2::ElasticBodyReciprocalSplineKernelTransform2
ElasticBodyReciprocalSplineKernelTransform2(const Self &)
itk::ElasticBodyReciprocalSplineKernelTransform2::ParametersType
Superclass::ParametersType ParametersType
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:80
itk::KernelTransform2< double, 3 >::m_WMatrixComputed
bool m_WMatrixComputed
Definition: itkKernelTransform2.h:491
vnl_matrix_fixed< TScalarType, NDimensions, NDimensions >
itk::ElasticBodyReciprocalSplineKernelTransform2::OutputVectorType
Superclass::OutputVectorType OutputVectorType
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:125
itk
Definition: itkAdvancedImageToImageMetric.h:40
itk::ElasticBodyReciprocalSplineKernelTransform2::Pointer
SmartPointer< Self > Pointer
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:67
itk::ElasticBodyReciprocalSplineKernelTransform2::SetAlpha
virtual void SetAlpha(TScalarType Alpha)
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:92
itk::KernelTransform2< double, 3 >::m_LInverseComputed
bool m_LInverseComputed
Definition: itkKernelTransform2.h:495
itk::ElasticBodyReciprocalSplineKernelTransform2::Self
ElasticBodyReciprocalSplineKernelTransform2 Self
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:63
TScalarType
itk::ElasticBodyReciprocalSplineKernelTransform2::SetPoissonRatio
virtual void SetPoissonRatio(const TScalarType Nu)
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:105
itk::KernelTransform2::InputCovariantVectorType
Superclass::InputCovariantVectorType InputCovariantVectorType
Definition: itkKernelTransform2.h:127
itk::KernelTransform2::ParametersType
Superclass::ParametersType ParametersType
Definition: itkKernelTransform2.h:120
itkKernelTransform2.h
itk::ElasticBodyReciprocalSplineKernelTransform2::GMatrixType
Superclass::GMatrixType GMatrixType
Definition: itkElasticBodyReciprocalSplineKernelTransform2.h:137
itk::KernelTransform2::OutputCovariantVectorType
Superclass::OutputCovariantVectorType OutputCovariantVectorType
Definition: itkKernelTransform2.h:128


Generated on OURCE_DATE_EPOCH for elastix by doxygen 1.8.18 elastix logo