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

itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions > Class Template Reference
[Transforms]

#include <itkAzimuthElevationToCartesianTransform.h>

List of all members.


Detailed Description

template<class TScalarType = float, unsigned int NDimensions = 3>
class itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >

Transforms from an azimuth, elevation, radius coordinate system to a Cartesian coordinate system, or vice versa.

The three coordinate axis are azimuth, elevation, and range.

The azimuth elevation coordinate system is defined similarly to spherical coordinates but is slightly different in that the azimuth and elevation are measured in degrees between the r-axis (i.e z axis) and the projection on the x-z and y-z planes, respectively. Range, or r, is the distance from the origin.

The equations form performing the conversion from azimuth-elevation coordinates to cartesian coordinates are as follows: z = vcl_sqrt((r^2*(cos(azimuth))^2)/(1 + (cos(azimuth))^2 * (tan(elevation))^2); x = z * vcl_tan(azimuth) y = z * vcl_tan(elevation)

The reversed transforms are: azimuth = arctan(x/y) elevation = arctan(y/z) r = vcl_sqrt(x^2 + y^2 + z^2)

In this class, we can also set what a "forward" transform means. If we call SetForwardAzimuthElevationToCartesian(), a forward transform will return cartesian coordinates when passed azimuth,elevation,r coordinates. Calling SetForwardCartesianToAzimuthElevation() will cause the forward transform to return azimuth,elevation,r coordinates from cartesian coordinates.

Setting the FirstSampleDistance to a non-zero value means that a r value of 12 is actually (12 + FirstSampleDistance) distance from the origin.

There are two template parameters for this class:

ScalarT The type to be used for scalar numeric values. Either float or double.

NDimensions The number of dimensions of the vector space (must be >=3).

Todo:
Is there any real value in allowing the user to template over the scalar type? Perhaps it should always be double, unless there's a compatibility problem with the Point class.

Derive this class from a yet undefined TransformBase class. Currently, this class derives from AffineTransform, although it is not an affine transform.

Definition at line 79 of file itkAzimuthElevationToCartesianTransform.h.

Public Types

typedef SmartPointer< const
Self
ConstPointer
typedef Superclass::InputPointType InputPointType
typedef Superclass::JacobianType JacobianType
typedef Matrix< TScalarType,
itkGetStaticConstMacro(SpaceDimension),
itkGetStaticConstMacro(SpaceDimension) 
MatrixType )
typedef Superclass::OutputPointType OutputPointType
typedef Superclass::ParametersType ParametersType
typedef SmartPointer< SelfPointer
typedef Superclass::ScalarType ScalarType
typedef AzimuthElevationToCartesianTransform Self
typedef AffineTransform< TScalarType,
NDimensions > 
Superclass

Public Member Functions

Back transform from cartesian
to azimuth elevation *InputPointType 
BackTransform (const OutputPointType &point) const
InputPointType BackTransformPoint (const OutputPointType &point) const
virtual const char * GetNameOfClass () const
 itkStaticConstMacro (ParametersDimension, unsigned int, NDimensions *(NDimensions+1))
Dimension of the domain space * itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions)
virtual void SetAzimuthAngularSeparation (double _arg)
void SetAzimuthElevationToCartesianParameters (const double sampleSize, const double blanking, const long maxAzimuth, const long maxElevation)
void SetAzimuthElevationToCartesianParameters (const double sampleSize, const double blanking, const long maxAzimuth, const long maxElevation, const double azimuthAngleSeparation, const double elevationAngleSeparation)
virtual void SetElevationAngularSeparation (double _arg)
virtual void SetFirstSampleDistance (double _arg)
void SetForwardAzimuthElevationToCartesian ()
void SetForwardCartesianToAzimuthElevation ()
virtual void SetMaxAzimuth (long _arg)
virtual void SetMaxElevation (long _arg)
virtual void SetRadiusSampleSize (double _arg)
OutputPointType TransformAzElToCartesian (const InputPointType &point) const
OutputPointType TransformCartesianToAzEl (const OutputPointType &point) const
OutputPointType TransformPoint (const InputPointType &point) const

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 AzimuthElevationToCartesianTransform ()
void PrintSelf (std::ostream &s, Indent indent) const
virtual ~AzimuthElevationToCartesianTransform ()


Member Typedef Documentation

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef SmartPointer<const Self> itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::ConstPointer
 

Definition at line 87 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Superclass::InputPointType itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::InputPointType
 

Standard coordinate point type for this class

Definition at line 111 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Superclass::JacobianType itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::JacobianType
 

Jacobian type.

Definition at line 105 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Matrix<TScalarType, itkGetStaticConstMacro(SpaceDimension), itkGetStaticConstMacro(SpaceDimension) itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::MatrixType)
 

Standard matrix type for this class.

Definition at line 116 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Superclass::OutputPointType itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::OutputPointType
 

Definition at line 112 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Superclass::ParametersType itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::ParametersType
 

Parameters type.

Definition at line 99 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef SmartPointer<Self> itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::Pointer
 

Definition at line 86 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Superclass::ScalarType itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::ScalarType
 

Standard scalar type for this class.

Definition at line 108 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef AzimuthElevationToCartesianTransform itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::Self
 

Standard class typedefs.

Definition at line 84 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef AffineTransform< TScalarType, NDimensions > itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::Superclass
 

Definition at line 85 of file itkAzimuthElevationToCartesianTransform.h.


Constructor & Destructor Documentation

template<class TScalarType = float, unsigned int NDimensions = 3>
itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::AzimuthElevationToCartesianTransform  )  [protected]
 

Create an AzimuthElevationToCartesianTransform object.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::~AzimuthElevationToCartesianTransform  )  [protected, virtual]
 

Destroy an AzimuthElevationToCartesianTransform object.


Member Function Documentation

template<class TScalarType = float, unsigned int NDimensions = 3>
Back transform from cartesian to azimuth elevation* InputPointType itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::BackTransform const OutputPointType point  )  const [inline]
 

template<class TScalarType = float, unsigned int NDimensions = 3>
InputPointType itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::BackTransformPoint const OutputPointType point  )  const
 

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual const char* itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::GetNameOfClass  )  const [virtual]
 

Run-time type information (and related methods).

template<class TScalarType = float, unsigned int NDimensions = 3>
itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::itkStaticConstMacro ParametersDimension  ,
unsigned  int,
NDimensions *  (NDimensions+1)
 

template<class TScalarType = float, unsigned int NDimensions = 3>
Dimension of the domain space* itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::itkStaticConstMacro SpaceDimension  ,
unsigned  int,
NDimensions 
 

template<class TScalarType = float, unsigned int NDimensions = 3>
static Pointer itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::New  )  [static]
 

New macro for creation of through a Smart Pointer.

template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::PrintSelf std::ostream &  s,
Indent  indent
const [protected]
 

Print contents of an AzimuthElevationTransform.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual void itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::SetAzimuthAngularSeparation double  _arg  )  [virtual]
 

Set the number of degrees between each azimuth unit.

template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::SetAzimuthElevationToCartesianParameters const double  sampleSize,
const double  blanking,
const long  maxAzimuth,
const long  maxElevation
 

template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::SetAzimuthElevationToCartesianParameters const double  sampleSize,
const double  blanking,
const long  maxAzimuth,
const long  maxElevation,
const double  azimuthAngleSeparation,
const double  elevationAngleSeparation
 

Set the transformation parameters.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual void itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::SetElevationAngularSeparation double  _arg  )  [virtual]
 

Set the number of degrees between each elevation unit.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual void itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::SetFirstSampleDistance double  _arg  )  [virtual]
 

Set the distance to add to the radius.

template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::SetForwardAzimuthElevationToCartesian  ) 
 

Defines that the forward transform goes from azimuth,elevation to cartesian.

template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::SetForwardCartesianToAzimuthElevation  ) 
 

Defines that the forward transform goes from cartesian to azimuth, elevation.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual void itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::SetMaxAzimuth long  _arg  )  [virtual]
 

Set the maximum azimuth. The maximum azimuth and elevation can be set so that the resulting cartesian space is symmetric about the z axis. Therefore, the line defined by azimuth/2,elevation/2 = z-axis.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual void itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::SetMaxElevation long  _arg  )  [virtual]
 

Set the maximum elevation The maximum azimuth and elevation can be set so that the resulting cartesian space is symmetric about the z axis. Therefore, the line defined by azimuth/2,elevation/2 = z-axis.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual void itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::SetRadiusSampleSize double  _arg  )  [virtual]
 

Set the number of cartesian units between each unit along the R .

template<class TScalarType = float, unsigned int NDimensions = 3>
OutputPointType itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::TransformAzElToCartesian const InputPointType point  )  const
 

Perform conversion from Azimuth Elevation coordinates to Cartesian Coordinates.

template<class TScalarType = float, unsigned int NDimensions = 3>
OutputPointType itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::TransformCartesianToAzEl const OutputPointType point  )  const
 

Perform conversion from Cartesian Coordinates to Azimuth Elevation coordinates.

template<class TScalarType = float, unsigned int NDimensions = 3>
OutputPointType itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::TransformPoint const InputPointType point  )  const
 

Transform from azimuth-elevation to cartesian.


The documentation for this class was generated from the following file:
Generated at Sun Jul 9 18:52:55 2006 for ITK by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2000