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< Self > | Pointer |
| 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
Constructor & Destructor Documentation
Member Function Documentation
|
|
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 |
|
|
) |
|
|
|
|
New macro for creation of through a Smart Pointer. |
|
|
Print contents of an AzimuthElevationTransform. |
|
|
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. |
|
|
Set the distance to add to the radius. |
|
|
Defines that the forward transform goes from azimuth,elevation to cartesian. |
|
|
Defines that the forward transform goes from cartesian to azimuth, elevation. |
|
|
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. |
|
|
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. |
|
|
Set the number of cartesian units between each unit along the R . |
|
|
Perform conversion from Azimuth Elevation coordinates to Cartesian Coordinates. |
|
|
Perform conversion from Cartesian Coordinates to Azimuth Elevation coordinates. |
|
|
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
1.4.2 written by Dimitri van Heesch,
© 1997-2000