Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkAzimuthElevationToCartesianTransform.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkAzimuthElevationToCartesianTransform.h,v $ 00005 Language: C++ 00006 Date: $Date: 2003/09/10 14:29:00 $ 00007 Version: $Revision: 1.14 $ 00008 00009 Copyright (c) Insight Software Consortium. All rights reserved. 00010 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #ifndef __itkAzimuthElevationToCartesianTransform_h 00019 #define __itkAzimuthElevationToCartesianTransform_h 00020 00021 #include "itkAffineTransform.h" 00022 #include "vnl/vnl_math.h" 00023 00073 namespace itk 00074 { 00075 00076 00077 template < class TScalarType=float, // Data type for scalars (e.g. float or double) 00078 unsigned int NDimensions=3 > 00079 class ITK_EXPORT AzimuthElevationToCartesianTransform : 00080 public AffineTransform< TScalarType, NDimensions > 00081 { 00082 public: 00084 typedef AzimuthElevationToCartesianTransform Self; 00085 typedef AffineTransform< TScalarType, NDimensions > Superclass; 00086 typedef SmartPointer<Self> Pointer; 00087 typedef SmartPointer<const Self> ConstPointer; 00088 00090 itkStaticConstMacro(SpaceDimension, unsigned int, NDimensions); 00091 itkStaticConstMacro(ParametersDimension, unsigned int, 00092 NDimensions * (NDimensions+1) ); 00093 00095 itkTypeMacro( AzimuthElevationToCartesianTransform, AffineTransform); 00096 00098 itkNewMacro( Self ); 00099 00101 typedef typename Superclass::ParametersType ParametersType; 00102 00104 typedef typename Superclass::JacobianType JacobianType; 00105 00107 typedef typename Superclass::ScalarType ScalarType; 00108 00110 typedef typename Superclass::InputPointType InputPointType; 00111 typedef typename Superclass::OutputPointType OutputPointType; 00112 00114 typedef Matrix<TScalarType, itkGetStaticConstMacro(SpaceDimension), 00115 itkGetStaticConstMacro(SpaceDimension)> MatrixType; 00116 00118 void SetAzimuthElevationToCartesianParameters( const double sampleSize, 00119 const double blanking, 00120 const long maxAzimuth, 00121 const long maxElevation, 00122 const double azimuthAngleSeparation, 00123 const double elevationAngleSeparation); 00124 00125 void SetAzimuthElevationToCartesianParameters( const double sampleSize, 00126 const double blanking, 00127 const long maxAzimuth, 00128 const long maxElevation); 00129 00131 OutputPointType TransformPoint (const InputPointType &point ) const; 00132 00134 inline InputPointType BackTransform(const OutputPointType &point ) const; 00135 InputPointType BackTransformPoint(const OutputPointType &point) const; 00136 00138 void SetForwardAzimuthElevationToCartesian(); 00139 00141 void SetForwardCartesianToAzimuthElevation(); 00142 00144 OutputPointType TransformAzElToCartesian(const InputPointType &point) const; 00145 00147 OutputPointType TransformCartesianToAzEl(const OutputPointType &point) const; 00148 00153 itkSetMacro(MaxAzimuth, long); 00154 00159 itkSetMacro(MaxElevation, long); 00160 00162 itkSetMacro(RadiusSampleSize, double); 00163 00165 itkSetMacro(AzimuthAngularSeparation, double); 00166 00168 itkSetMacro(ElevationAngularSeparation, double); 00169 00171 itkSetMacro(FirstSampleDistance, double); 00172 00173 protected: 00175 AzimuthElevationToCartesianTransform(); 00176 00178 virtual ~AzimuthElevationToCartesianTransform(); 00179 00181 void PrintSelf(std::ostream &s, Indent indent) const; 00182 00183 private: 00184 AzimuthElevationToCartesianTransform(const Self&); //purposely not implemented 00185 void operator=(const Self&); //purposely not implemented 00186 00187 long m_MaxAzimuth; 00188 long m_MaxElevation; 00189 double m_RadiusSampleSize; 00190 double m_AzimuthAngularSeparation; 00191 double m_ElevationAngularSeparation; 00192 double m_FirstSampleDistance; 00193 bool m_ForwardAzimuthElevationToPhysical; 00194 00195 }; //class AzimuthElevationToCartesianTransform 00196 00197 00198 } // namespace itk 00199 00200 00201 #ifndef ITK_MANUAL_INSTANTIATION 00202 #include "itkAzimuthElevationToCartesianTransform.txx" 00203 #endif 00204 00205 #endif /* __itkAzimuthElevationToCartesianTransform_h */ 00206 00207

Generated at Sat Mar 31 02:14:11 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000