KWStyle - itkTransformBase.h
 
Matrix View
Description

1 /*=========================================================================
2
3   Program:   Insight Segmentation & Registration Toolkit
4   Module:    $RCSfile: itkTransformBase.h.html,v $
5   Language:  C++
6   Date:      $Date: 2006/01/17 19:15:48 $
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 #ifndef __itkTransformBase_h
18 #define __itkTransformBase_h
19
20 #include "itkObject.h"
21 #include "itkPoint.h"
22 #include "itkVector.h"
23 #include "itkCovariantVector.h"
24 #include "vnl/vnl_vector_fixed.h"
25 #include "itkArray.h"
26 #include "itkArray2D.h"
27
28 #include "itkObjectFactory.h"
29
30 namespace itk
31 {
32   
33 /** \class TransformBase
34  *
35  * This class is an abstract class to represent the transform
36  * \ingroup Transforms
37  *
38  */
39 class ITK_EXPORT  TransformBase  : public Object
40 {
41 public:
42   /** Standard class typedefs. */
43   typedef TransformBase  Self;
44 TDA   typedef Object Superclass;
45 TDA   typedef SmartPointer< Self >   Pointer;
46 TDA   typedef SmartPointer< const Self >  ConstPointer;
47
48   /** Type of the input parameters. */
49   typedef  Array< double >           ParametersType;
50
51   /** Run-time type information (and related methods). */
52   itkTypeMacro( TransformBase, Object );
53
54   /** Return the number of parameters that completely define the Transfom  */
55   virtual unsigned int GetNumberOfParameters(void) const = 0;
56
57   /** Get the Transformation Parameters. */
58   virtual const ParametersType& GetParameters(void) const = 0;
59
60   /** Get the size of the input space */
61   virtual unsigned int GetInputSpaceDimension(void) const = 0;
62
63   /** Get the size of the output space */
64   virtual unsigned int GetOutputSpaceDimension(void) const = 0;
65
66   /** Set the transformation parameters and update internal transformation. */
67   virtual void SetParameters( const ParametersType & ) = 0;
68
69 LEN   /** Set the transformation by copying parameters and update internal transformation.
70    * This method forces the transform to copy the parameters.  The
71    * default implementation is to call SetParameters.  This call must
72    * be overridden if the transform normally implements SetParameters
73    * by keeping a reference to the parameters.
74    * \sa SetParameters
75    */
76   virtual void SetParametersByValue ( const ParametersType & p ) = 0;
77
78   /** Set the fixed parameters. */
79   virtual void SetFixedParameters( const ParametersType & ) = 0;
80
81   /** Get the fixed parameters. */
82   virtual const ParametersType& GetFixedParameters( ) const = 0;
83
84   /** Generate a platform independant name */
85   virtual std::string GetTransformTypeAsString() const = 0;
86
87 protected:
88   TransformBase() {}; 
89   virtual ~TransformBase() {};
90
91 private:
92   TransformBase(const Self&); //purposely not implemented
93   void operator=(const Self&); //purposely not implemented
94   
95
96 };
97
98 // end namespace itk
99
100 #endif
101

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