ITK  4.2.0
Insight Segmentation and Registration Toolkit
itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
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 #ifndef __itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform_h
19 #define __itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform_h
20 
22 
23 namespace itk
24 {
25 
38 template
39  <class TScalar, unsigned int NDimensions>
41 : public TimeVaryingVelocityFieldTransform<TScalar, NDimensions>
42 {
43 public:
49 
53 
55  itkSimpleNewMacro( Self );
56 
58  itkStaticConstMacro( TimeVaryingVelocityFieldDimension, unsigned int, NDimensions+1 );
59 
62  typedef typename Superclass::DerivativeType DerivativeType;
63  typedef typename DerivativeType::ValueType DerivativeValueType;
64  typedef typename Superclass::TimeVaryingVelocityFieldType TimeVaryingVelocityFieldType;
65  typedef typename TimeVaryingVelocityFieldType::Pointer TimeVaryingVelocityFieldPointer;
66  typedef typename TimeVaryingVelocityFieldType::PixelType DisplacementVectorType;
67  typedef typename DisplacementVectorType::ValueType DisplacementVectorValueType;
68 
69 
74  itkSetMacro( GaussianSpatialSmoothingVarianceForTheUpdateField, ScalarType );
75  itkGetConstReferenceMacro( GaussianSpatialSmoothingVarianceForTheUpdateField, ScalarType );
77 
82  itkSetMacro( GaussianTemporalSmoothingVarianceForTheUpdateField, ScalarType );
83  itkGetConstReferenceMacro( GaussianTemporalSmoothingVarianceForTheUpdateField, ScalarType );
85 
90  itkSetMacro( GaussianSpatialSmoothingVarianceForTheTotalField, ScalarType );
91  itkGetConstReferenceMacro( GaussianSpatialSmoothingVarianceForTheTotalField, ScalarType );
93 
98  itkSetMacro( GaussianTemporalSmoothingVarianceForTheTotalField, ScalarType );
99  itkGetConstReferenceMacro( GaussianTemporalSmoothingVarianceForTheTotalField, ScalarType );
101 
110  virtual void UpdateTransformParameters( const DerivativeType & update, ScalarType factor = 1.0 );
111 
116  virtual TimeVaryingVelocityFieldPointer GaussianSmoothTimeVaryingVelocityField( TimeVaryingVelocityFieldType *, ScalarType, ScalarType );
117 
118 protected:
121  void PrintSelf( std::ostream& os, Indent indent ) const;
122 
127 
135 
136 private:
137  GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform( const Self& ); //purposely not implemented
138  void operator=( const Self& ); //purposely not implemented
139 
140 };
141 
142 } // end namespace itk
143 
144 #if ITK_TEMPLATE_EXPLICIT
145 # include "Templates/itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform+-.h"
146 #endif
147 
148 #if ITK_TEMPLATE_TXX
149 # include "itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.hxx"
150 #endif
151 
152 #endif // __itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform_h
153