KWStyle - itkCenteredVersorTransformInitializer.h
 
Matrix View
Description

1 /*=========================================================================
2
3   Program:   Insight Segmentation & Registration Toolkit
4   Module:    $RCSfile: itkCenteredVersorTransformInitializer.h.html,v $
5   Language:  C++
6   Date:      $Date: 2006/01/17 19:15:33 $
7   Version:   $Revision: 1.4 $
8
9   Copyright (c) Insight Software Consortium. All rights reserved.
10   See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11
12      This software is distributed WITHOUT ANY WARRANTY; without even 
13      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
14      PURPOSE.  See the above copyright notices for more information.
15
16 =========================================================================*/
17
18 #ifndef __itkCenteredVersorTransformInitializer_h
19 #define __itkCenteredVersorTransformInitializer_h
20
21
22 #include "itkCenteredTransformInitializer.h"
23 #include "itkVersorRigid3DTransform.h"
24
25
26 namespace itk
27 {
28
29 /** \brief CenteredVersorTransformInitializer is a helper class intended to
30  * initialize the center of rotation, versor, and translation of the 
31  * VersorRigid3DTransform.
32  * 
33  * This class derived from the CenteredTransformInitializer and uses it in
34  * a more constrained context. It always uses the Moments mode, and also
35  * takes advantage of the second order moments in order to initialize the
36  * Versor representing rotation.
37  * 
38  * \ingroup Transforms
39  */
40 template < class TFixedImage,
41            class TMovingImage > 
42 MCM class ITK_EXPORT CenteredVersorTransformInitializer : 
43 IND **********************public CenteredTransformInitializer< 
44                                     VersorRigid3DTransform<double>, 
45 IND ************************************TFixedImage,TMovingImage> 
46 {
47 public:
48   /** Standard class typedefs. */
49   typedef CenteredVersorTransformInitializer      Self;
50   typedef CenteredTransformInitializer< 
51                VersorRigid3DTransform<double>, 
52 IND ***************TFixedImage,TMovingImage>          Superclass;
53   typedef SmartPointer<Self>                      Pointer;
54   typedef SmartPointer<const Self>                ConstPointer;
55     
56   /** New macro for creation of through a Smart Pointer. */
57   itkNewMacro( Self );
58
59   /** Run-time type information (and related methods). */
60   itkTypeMacro( CenteredVersorTransformInitializer, Object );
61
62   /** Type of the transform to initialize */
63   typedef typename Superclass::TransformType        TransformType;
64   typedef typename Superclass::TransformPointer     TransformPointer;
65
66   /** Dimension of parameters. */
67   itkStaticConstMacro(SpaceDimension, unsigned int, Superclass::SpaceDimension);
68 LEN   itkStaticConstMacro(InputSpaceDimension, unsigned int, Superclass::InputSpaceDimension);
69 LEN   itkStaticConstMacro(OutputSpaceDimension, unsigned int, Superclass::OutputSpaceDimension);
70
71   
72   /** Image Types to use in the initialization of the transform */
73   typedef   typename Superclass::FixedImageType   FixedImageType;
74   typedef   typename Superclass::MovingImageType  MovingImageType;
75
76   typedef   typename Superclass::FixedImagePointer   FixedImagePointer;
77   typedef   typename Superclass::MovingImagePointer  MovingImagePointer;
78
79
80 EML
81   /** Offset type. */
82   typedef typename Superclass::OffsetType  OffsetType;
83
84   /** Point type. */
85   typedef typename Superclass::InputPointType   InputPointType;
86   
87   /** Vector type. */
88   typedef typename Superclass::OutputVectorType  OutputVectorType;
89   
90
91   /** Initialize the transform using data from the images */
92   void InitializeTransform() const;
93
94
95 protected:
96   CenteredVersorTransformInitializer();
97   ~CenteredVersorTransformInitializer(){};
98
99   void PrintSelf(std::ostream &os, Indent indent) const;
100
101 private:
102   CenteredVersorTransformInitializer(const Self&); //purposely not implemented
103   void operator=(const Self&); //purposely not implemented
104
105
106 }; //class CenteredVersorTransformInitializer
107
108
109 }  // namespace itk
110
111
112 #ifndef ITK_MANUAL_INSTANTIATION
113 #include "itkCenteredVersorTransformInitializer.txx"
114 #endif
115
116 #endif /* __itkCenteredVersorTransformInitializer_h */
117

Generated by KWStyle 1.0b on Tuesday January,17 at 02:14:01PM
© Kitware Inc.