ITK  4.1.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions > Class Template Reference

#include <itkAzimuthElevationToCartesianTransform.h>

+ Inheritance diagram for itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >:
+ Collaboration diagram for itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
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

InputPointType BackTransform (const OutputPointType &point) const
InputPointType BackTransformPoint (const OutputPointType &point) const
virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const char * GetNameOfClass () const
virtual void SetAzimuthAngularSeparation (double _arg)
void SetAzimuthElevationToCartesianParameters (const double sampleSize, const double blanking, const long maxAzimuth, const long maxElevation, const double azimuthAngleSeparation, const double elevationAngleSeparation)
void SetAzimuthElevationToCartesianParameters (const double sampleSize, const double blanking, const long maxAzimuth, const long maxElevation)
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 ()

Static Public Attributes

static const unsigned int SpaceDimension = NDimensions
static const unsigned int ParametersDimension = NDimensions * ( NDimensions + 1 )

Protected Member Functions

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

Private Member Functions

 AzimuthElevationToCartesianTransform (const Self &)
void operator= (const Self &)

Private Attributes

double m_AzimuthAngularSeparation
double m_ElevationAngularSeparation
double m_FirstSampleDistance
bool m_ForwardAzimuthElevationToPhysical
long m_MaxAzimuth
long m_MaxElevation
double m_RadiusSampleSize

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.
Todo:
Derive this class from a yet undefined TransformBase class. Currently, this class derives from AffineTransform, although it is not an affine transform.
Wiki Examples:

Definition at line 82 of file itkAzimuthElevationToCartesianTransform.h.


Member Typedef Documentation

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

Standard coordinate point type for this class

Reimplemented from itk::AffineTransform< TScalarType, NDimensions >.

Definition at line 114 of file itkAzimuthElevationToCartesianTransform.h.

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

Jacobian type.

Reimplemented from itk::AffineTransform< TScalarType, NDimensions >.

Definition at line 108 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.

Reimplemented from itk::AffineTransform< TScalarType, NDimensions >.

Definition at line 119 of file itkAzimuthElevationToCartesianTransform.h.

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

Standard coordinate point type for this class

Reimplemented from itk::AffineTransform< TScalarType, NDimensions >.

Definition at line 115 of file itkAzimuthElevationToCartesianTransform.h.

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

Parameters type.

Reimplemented from itk::AffineTransform< TScalarType, NDimensions >.

Definition at line 102 of file itkAzimuthElevationToCartesianTransform.h.

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

Standard scalar type for this class.

Reimplemented from itk::AffineTransform< TScalarType, NDimensions >.

Definition at line 111 of file itkAzimuthElevationToCartesianTransform.h.

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

Standard class typedefs.

Reimplemented from itk::AffineTransform< TScalarType, NDimensions >.

Definition at line 87 of file itkAzimuthElevationToCartesianTransform.h.

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

Constructor & Destructor Documentation

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

Member Function Documentation

template<class TScalarType = float, unsigned int NDimensions = 3>
InputPointType itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::BackTransform ( const OutputPointType point) const [inline]

Back transform from cartesian to azimuth-elevation.

Reimplemented from itk::AffineTransform< TScalarType, NDimensions >.

Definition at line 139 of file itkAzimuthElevationToCartesianTransform.h.

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

Back transform a point by an affine transform

This method finds the point that maps to a given point under the affine transformation defined by self. If no such point exists, an exception is thrown. The returned value is (a pointer to) a brand new point created with new.

Deprecated:
Please use GetInverseTransform and then call the forward transform function

Back transform a given point which is represented as type PointType

Reimplemented from itk::AffineTransform< TScalarType, NDimensions >.

Definition at line 154 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual::itk::LightObject::Pointer itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::CreateAnother ( void  ) const [virtual]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::AffineTransform< TScalarType, NDimensions >.

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).

Reimplemented from itk::AffineTransform< TScalarType, 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.

Reimplemented from itk::AffineTransform< TScalarType, NDimensions >.

template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::operator= ( const Self ) [private]

Mutex lock to protect modification to the reference count

Reimplemented from itk::AffineTransform< TScalarType, NDimensions >.

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

Print contents of an AzimuthElevationTransform.

Reimplemented from itk::AffineTransform< TScalarType, NDimensions >.

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,
const double  azimuthAngleSeparation,
const double  elevationAngleSeparation 
)

Set the transformation parameters.

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>
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.


Member Data Documentation

template<class TScalarType = float, unsigned int NDimensions = 3>
double itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::m_AzimuthAngularSeparation [private]

Definition at line 219 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
double itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::m_ElevationAngularSeparation [private]

Definition at line 220 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
double itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::m_FirstSampleDistance [private]

Definition at line 221 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
bool itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::m_ForwardAzimuthElevationToPhysical [private]

Definition at line 222 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
long itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::m_MaxAzimuth [private]

Definition at line 216 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
long itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::m_MaxElevation [private]

Definition at line 217 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
double itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::m_RadiusSampleSize [private]

Definition at line 218 of file itkAzimuthElevationToCartesianTransform.h.

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

Dimension of the domain space.

Reimplemented from itk::AffineTransform< TScalarType, NDimensions >.

Definition at line 95 of file itkAzimuthElevationToCartesianTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
const unsigned int itk::AzimuthElevationToCartesianTransform< TScalarType, NDimensions >::SpaceDimension = NDimensions [static]

Dimension of the domain space.

Reimplemented from itk::AffineTransform< TScalarType, NDimensions >.

Definition at line 93 of file itkAzimuthElevationToCartesianTransform.h.


The documentation for this class was generated from the following file: