Orfeo Toolbox  4.2
itkScaleSkewVersor3DTransform.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 __itkScaleSkewVersor3DTransform_h
19 #define __itkScaleSkewVersor3DTransform_h
20 
21 #include <iostream>
23 
24 namespace itk
25 {
47 template< typename TScalar = double >
48 // Data type for scalars:float or double
50  public VersorRigid3DTransform< TScalar >
51 {
52 public:
58 
60  itkNewMacro(Self);
61 
64 
66  itkStaticConstMacro(InputSpaceDimension, unsigned int, 3);
67  itkStaticConstMacro(OutputSpaceDimension, unsigned int, 3);
68  itkStaticConstMacro(ParametersDimension, unsigned int, 15);
69 
87 
89  typedef typename Superclass::AxisType AxisType;
90  typedef typename Superclass::AngleType AngleType;
91 
95 
98  typedef typename TranslationType::ValueType TranslationValueType;
99 
102 
106  virtual void SetMatrix(const MatrixType & matrix);
107 
116  virtual void SetParameters(const ParametersType & parameters);
117 
118  virtual const ParametersType & GetParameters(void) const;
119 
120  void SetScale(const ScaleVectorType & scale);
121 
122  itkGetConstReferenceMacro(Scale, ScaleVectorType);
123 
124  void SetSkew(const SkewVectorType & skew);
125 
126  itkGetConstReferenceMacro(Skew, SkewVectorType);
127 
128  void SetIdentity();
129 
134  virtual void ComputeJacobianWithRespectToParameters( const InputPointType & p, JacobianType & jacobian) const;
135 
136 protected:
138  ScaleSkewVersor3DTransform(const MatrixType & matrix, const OutputVectorType & offset);
139  ScaleSkewVersor3DTransform(unsigned int paramDims);
141  {
142  }
143 
144  void PrintSelf(std::ostream & os, Indent indent) const;
145 
146  void SetVarScale(const ScaleVectorType & scale)
147  {
148  m_Scale = scale;
149  }
150 
151  void SetVarSkew(const SkewVectorType & skew)
152  {
153  m_Skew = skew;
154  }
155 
157  void ComputeMatrix(void);
158 
159  void ComputeMatrixParameters(void);
160 
161 private:
162  ScaleSkewVersor3DTransform(const Self &); // purposely not implemented
163  void operator=(const Self &); // purposely not implemented
164 
167 
170 }; // class ScaleSkewVersor3DTransform
171 } // namespace itk
172 
173 #ifndef ITK_MANUAL_INSTANTIATION
175 #endif
176 
177 #endif /* __ScaleSkewVersor3DTransform_h */

Generated at Sat Aug 30 2014 15:33:09 for Orfeo Toolbox with doxygen 1.8.3.1