ITK  4.3.0
Insight Segmentation and Registration Toolkit
itkBSplineTransformParametersAdaptor.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 __itkBSplineTransformParametersAdaptor_h
19 #define __itkBSplineTransformParametersAdaptor_h
20 
22 
23 namespace itk
24 {
64 template<class TTransform>
66 : public TransformParametersAdaptor<TTransform>
67 {
68 public:
69 
75 
77  itkNewMacro( Self );
78 
81 
83  typedef TTransform TransformType;
84  typedef typename TransformType::Pointer TransformPointer;
85  typedef typename Superclass::ParametersType ParametersType;
86  typedef typename Superclass::ParametersValueType ParametersValueType;
87 
88  typedef typename TransformType::OriginType OriginType;
89  typedef typename TransformType::SizeType SizeType;
90  typedef typename TransformType::SpacingType SpacingType;
91  typedef typename TransformType::IndexType IndexType;
92  typedef typename TransformType::MeshSizeType MeshSizeType;
93  typedef typename TransformType::DirectionType DirectionType;
94  typedef typename TransformType::PhysicalDimensionsType PhysicalDimensionsType;
95 
96 
97  typedef typename TransformType::ImageType ImageType;
98  typedef typename ImageType::RegionType RegionType;
99  typedef typename TransformType::CoefficientImageArray CoefficientImageArray;
100 
102  itkStaticConstMacro( SpaceDimension, unsigned int, TransformType::SpaceDimension );
103 
105  void SetRequiredTransformDomainMeshSize( const MeshSizeType & );
106 
108  itkGetConstReferenceMacro( RequiredTransformDomainMeshSize, MeshSizeType );
109 
111  void SetRequiredTransformDomainPhysicalDimensions( const PhysicalDimensionsType & );
112 
114  itkGetConstReferenceMacro( RequiredTransformDomainPhysicalDimensions, PhysicalDimensionsType );
115 
117  void SetRequiredTransformDomainOrigin( const OriginType & );
118 
120  itkGetConstReferenceMacro( RequiredTransformDomainOrigin, OriginType );
121 
123  void SetRequiredTransformDomainDirection( const DirectionType & );
124 
126  itkGetConstReferenceMacro( RequiredTransformDomainDirection, DirectionType );
127 
128  virtual void SetRequiredFixedParameters( const ParametersType );
129 
131  virtual void AdaptTransformParameters();
132 
133 protected:
136 
137  void PrintSelf( std::ostream & os, Indent indent ) const;
138 
139 private:
140  BSplineTransformParametersAdaptor( const Self & ); //purposely not implemented
141  void operator=( const Self & ); //purposely not implemented
142 
144  void UpdateRequiredFixedParameters();
145 
150 
151 }; //class BSplineTransformParametersAdaptor
152 } // namespace itk
153 
154 #ifndef ITK_MANUAL_INSTANTIATION
155 #include "itkBSplineTransformParametersAdaptor.hxx"
156 #endif
157 
158 #endif /* __itkBSplineTransformParametersAdaptor_h */
159