template<typename TParametersValueType = double, unsigned int NDimensions = 3>
class itk::AzimuthElevationToCartesianTransform< TParametersValueType, 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 = std::sqrt((r^2*(cos(azimuth))^2)/(1 + (cos(azimuth))^2 * (tan(elevation))^2); x = z * std::tan(azimuth) y = z * std::tan(elevation)
The reversed transforms are: azimuth = arctan(x/y) elevation = arctan(y/z) r = std::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:
TParametersValueType 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.
- Todo:
- Add a figure in the documentation that informs the formulas used in this class that are used to transform Cartesian to azimuth-elevation-radius
- Wiki Examples:
-
Definition at line 85 of file itkAzimuthElevationToCartesianTransform.h.
|
using | ConstPointer = SmartPointer< const Self > |
|
using | FixedParametersType = typename Superclass::FixedParametersType |
|
using | InputPointType = typename Superclass::InputPointType |
|
using | InverseJacobianPositionType = typename Superclass::InverseJacobianPositionType |
|
using | JacobianPositionType = typename Superclass::JacobianPositionType |
|
using | JacobianType = typename Superclass::JacobianType |
|
using | MatrixType = Matrix< TParametersValueType, Self::SpaceDimension, Self::SpaceDimension > |
|
using | OutputPointType = typename Superclass::OutputPointType |
|
using | ParametersType = typename Superclass::ParametersType |
|
using | Pointer = SmartPointer< Self > |
|
using | ScalarType = typename Superclass::ScalarType |
|
using | Self = AzimuthElevationToCartesianTransform |
|
using | Superclass = AffineTransform< TParametersValueType, NDimensions > |
|
using | TransformCategoryType = typename Superclass::TransformCategoryType |
|
using | CenterType = typename Superclass::CenterType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | FixedParametersType = typename Superclass::FixedParametersType |
|
using | InputCovariantVectorType = typename Superclass::InputCovariantVectorType |
|
using | InputPointType = typename Superclass::InputPointType |
|
using | InputVectorType = typename Superclass::InputVectorType |
|
using | InputVnlVectorType = typename Superclass::InputVnlVectorType |
|
using | InverseJacobianPositionType = typename Superclass::InverseJacobianPositionType |
|
using | InverseMatrixType = typename Superclass::InverseMatrixType |
|
using | InverseTransformBasePointer = typename InverseTransformBaseType::Pointer |
|
using | InverseTransformBaseType = typename Superclass::InverseTransformBaseType |
|
using | JacobianPositionType = typename Superclass::JacobianPositionType |
|
using | JacobianType = typename Superclass::JacobianType |
|
using | MatrixType = typename Superclass::MatrixType |
|
using | OffsetType = typename Superclass::OffsetType |
|
using | OutputCovariantVectorType = typename Superclass::OutputCovariantVectorType |
|
using | OutputPointType = typename Superclass::OutputPointType |
|
using | OutputVectorType = typename Superclass::OutputVectorType |
|
using | OutputVnlVectorType = typename Superclass::OutputVnlVectorType |
|
using | ParametersType = typename Superclass::ParametersType |
|
using | Pointer = SmartPointer< Self > |
|
using | ScalarType = typename Superclass::ScalarType |
|
using | Self = AffineTransform |
|
using | Superclass = MatrixOffsetTransformBase< TParametersValueType, NDimensions, NDimensions > |
|
using | TranslationType = typename Superclass::TranslationType |
|
using | CenterType = InputPointType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | FixedParametersType = typename Superclass::FixedParametersType |
|
using | FixedParametersValueType = typename Superclass::FixedParametersValueType |
|
using | InputCovariantVectorType = CovariantVector< TParametersValueType, Self::InputSpaceDimension > |
|
using | InputDiffusionTensor3DType = typename Superclass::InputDiffusionTensor3DType |
|
using | InputPointType = Point< TParametersValueType, Self::InputSpaceDimension > |
|
using | InputPointValueType = typename InputPointType::ValueType |
|
using | InputSymmetricSecondRankTensorType = typename Superclass::InputSymmetricSecondRankTensorType |
|
using | InputTensorEigenVectorType = CovariantVector< TParametersValueType, InputDiffusionTensor3DType::Dimension > |
|
using | InputVectorPixelType = typename Superclass::InputVectorPixelType |
|
using | InputVectorType = Vector< TParametersValueType, Self::InputSpaceDimension > |
|
using | InputVnlVectorType = vnl_vector_fixed< TParametersValueType, Self::InputSpaceDimension > |
|
using | InverseJacobianPositionType = typename Superclass::InverseJacobianPositionType |
|
using | InverseMatrixType = Matrix< TParametersValueType, Self::InputSpaceDimension, Self::OutputSpaceDimension > |
|
using | InverseTransformBasePointer = typename InverseTransformBaseType::Pointer |
|
using | InverseTransformBaseType = typename Superclass::InverseTransformBaseType |
|
using | JacobianPositionType = typename Superclass::JacobianPositionType |
|
using | JacobianType = typename Superclass::JacobianType |
|
using | MatrixType = Matrix< TParametersValueType, Self::OutputSpaceDimension, Self::InputSpaceDimension > |
|
using | MatrixValueType = typename MatrixType::ValueType |
|
using | OffsetType = OutputVectorType |
|
using | OffsetValueType = typename OffsetType::ValueType |
|
using | OutputCovariantVectorType = CovariantVector< TParametersValueType, Self::OutputSpaceDimension > |
|
using | OutputDiffusionTensor3DType = typename Superclass::OutputDiffusionTensor3DType |
|
using | OutputPointType = Point< TParametersValueType, Self::OutputSpaceDimension > |
|
using | OutputPointValueType = typename OutputPointType::ValueType |
|
using | OutputSymmetricSecondRankTensorType = typename Superclass::OutputSymmetricSecondRankTensorType |
|
using | OutputVectorPixelType = typename Superclass::OutputVectorPixelType |
|
using | OutputVectorType = Vector< TParametersValueType, Self::OutputSpaceDimension > |
|
using | OutputVectorValueType = typename OutputVectorType::ValueType |
|
using | OutputVnlVectorType = vnl_vector_fixed< TParametersValueType, Self::OutputSpaceDimension > |
|
using | ParametersType = typename Superclass::ParametersType |
|
using | ParametersValueType = typename Superclass::ParametersValueType |
|
using | Pointer = SmartPointer< Self > |
|
using | ScalarType = typename Superclass::ScalarType |
|
using | Self = MatrixOffsetTransformBase |
|
using | Superclass = Transform< TParametersValueType, NInputDimensions, NOutputDimensions > |
|
using | TransformCategoryType = typename Superclass::TransformCategoryType |
|
using | TranslationType = OutputVectorType |
|
using | TranslationValueType = typename TranslationType::ValueType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DerivativeType = Array< ParametersValueType > |
|
using | DirectionChangeMatrix = Matrix< double, Self::OutputSpaceDimension, Self::InputSpaceDimension > |
|
using | FixedParametersType = typename Superclass::FixedParametersType |
|
using | FixedParametersValueType = typename Superclass::FixedParametersValueType |
|
using | InputCovariantVectorType = CovariantVector< TParametersValueType, NInputDimensions > |
|
using | InputDiffusionTensor3DType = DiffusionTensor3D< TParametersValueType > |
|
using | InputDirectionMatrix = Matrix< double, Self::InputSpaceDimension, Self::InputSpaceDimension > |
|
using | InputPointType = Point< TParametersValueType, NInputDimensions > |
|
using | InputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< TParametersValueType, NInputDimensions > |
|
using | InputVectorPixelType = VariableLengthVector< TParametersValueType > |
|
using | InputVectorType = Vector< TParametersValueType, NInputDimensions > |
|
using | InputVnlVectorType = vnl_vector_fixed< TParametersValueType, NInputDimensions > |
|
using | InverseJacobianPositionType = vnl_matrix_fixed< ParametersValueType, NInputDimensions, NOutputDimensions > |
|
using | InverseTransformBasePointer = typename InverseTransformBaseType::Pointer |
|
using | InverseTransformBaseType = Transform< TParametersValueType, NOutputDimensions, NInputDimensions > |
|
using | JacobianPositionType = vnl_matrix_fixed< ParametersValueType, NOutputDimensions, NInputDimensions > |
|
using | JacobianType = Array2D< ParametersValueType > |
|
using | MatrixType = Matrix< TParametersValueType, Self::OutputSpaceDimension, Self::InputSpaceDimension > |
|
using | NumberOfParametersType = typename Superclass::NumberOfParametersType |
|
using | OutputCovariantVectorType = CovariantVector< TParametersValueType, NOutputDimensions > |
|
using | OutputDiffusionTensor3DType = DiffusionTensor3D< TParametersValueType > |
|
using | OutputDirectionMatrix = Matrix< double, Self::OutputSpaceDimension, Self::OutputSpaceDimension > |
|
using | OutputPointType = Point< TParametersValueType, NOutputDimensions > |
|
using | OutputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< TParametersValueType, NOutputDimensions > |
|
using | OutputVectorPixelType = VariableLengthVector< TParametersValueType > |
|
using | OutputVectorType = Vector< TParametersValueType, NOutputDimensions > |
|
using | OutputVnlVectorType = vnl_vector_fixed< TParametersValueType, NOutputDimensions > |
|
using | ParametersType = typename Superclass::ParametersType |
|
using | ParametersValueType = typename Superclass::ParametersValueType |
|
using | Pointer = SmartPointer< Self > |
|
using | ScalarType = ParametersValueType |
|
using | Self = Transform |
|
using | Superclass = TransformBaseTemplate< TParametersValueType > |
|
using | TransformCategoryType = typename Superclass::TransformCategoryType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | FixedParametersType = OptimizerParameters< FixedParametersValueType > |
|
using | FixedParametersValueType = double |
|
using | NumberOfParametersType = IdentifierType |
|
using | ParametersType = OptimizerParameters< ParametersValueType > |
|
using | ParametersValueType = TParametersValueType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = TransformBaseTemplate |
|
using | Superclass = Object |
|
enum | TransformCategoryType {
UnknownTransformCategory =0,
Linear =1,
BSpline =2,
Spline =3,
DisplacementField =4,
VelocityField =5
} |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = Object |
|
using | Superclass = LightObject |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = LightObject |
|
|
InputPointType | BackTransform (const OutputPointType &point) const |
|
InputPointType | BackTransformPoint (const OutputPointType &point) const |
|
virtual ::itk::LightObject::Pointer | CreateAnother () const |
|
virtual const char * | GetNameOfClass () const |
|
TransformCategoryType | GetTransformCategory () const override |
|
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) |
|
void | SetForwardAzimuthElevationToCartesian () |
|
void | SetForwardCartesianToAzimuthElevation () |
|
OutputPointType | TransformAzElToCartesian (const InputPointType &point) const |
|
OutputPointType | TransformCartesianToAzEl (const OutputPointType &point) const |
|
OutputPointType | TransformPoint (const InputPointType &point) const override |
|
|
virtual void | SetMaxAzimuth (long _arg) |
|
virtual long | GetMaxAzimuth () const |
|
|
virtual void | SetMaxElevation (long _arg) |
|
virtual long | GetMaxElevation () const |
|
|
virtual void | SetRadiusSampleSize (double _arg) |
|
virtual double | GetRadiusSampleSize () const |
|
|
virtual void | SetAzimuthAngularSeparation (double _arg) |
|
virtual double | GetAzimuthAngularSeparation () const |
|
|
virtual void | SetElevationAngularSeparation (double _arg) |
|
virtual double | GetElevationAngularSeparation () const |
|
|
virtual void | SetFirstSampleDistance (double _arg) |
|
virtual double | GetFirstSampleDistance () const |
|
bool | GetInverse (Self *inverse) const |
|
InverseTransformBasePointer | GetInverseTransform () const override |
|
ScalarType | Metric (const Self *other) const |
|
ScalarType | Metric () const |
|
void | Rotate2D (TParametersValueType angle, bool pre=false) |
|
void | Rotate3D (const OutputVectorType &axis, TParametersValueType angle, bool pre=false) |
|
void | Scale (const OutputVectorType &factor, bool pre=false) |
|
void | Scale (const TParametersValueType &factor, bool pre=false) |
|
void | Shear (int axis1, int axis2, TParametersValueType coef, bool pre=false) |
|
void | Translate (const OutputVectorType &offset, bool pre=false) |
|
void | Rotate (int axis1, int axis2, TParametersValueType angle, bool pre=false) |
|
void | Compose (const Self *other, bool pre=false) |
|
void | ComputeInverseJacobianWithRespectToPosition (const InputPointType &x, InverseJacobianPositionType &jac) const override |
|
void | ComputeJacobianWithRespectToParameters (const InputPointType &x, JacobianType &j) const override |
|
void | ComputeJacobianWithRespectToPosition (const InputPointType &x, JacobianPositionType &jac) const override |
|
virtual ::itk::LightObject::Pointer | CreateAnother () const |
|
const InputPointType & | GetCenter () const |
|
const FixedParametersType & | GetFixedParameters () const override |
|
InverseTransformBasePointer | GetInverseTransform () const override |
|
virtual const MatrixType & | GetMatrix () const |
|
const OutputVectorType & | GetOffset () const |
|
const ParametersType & | GetParameters () const override |
|
TransformCategoryType | GetTransformCategory () const override |
|
const OutputVectorType & | GetTranslation () const |
|
bool | IsLinear () const override |
|
void | SetFixedParameters (const FixedParametersType &) override |
|
virtual void | SetIdentity () |
|
void | SetParameters (const ParametersType ¶meters) override |
|
OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &vector) const override |
|
OutputVectorPixelType | TransformCovariantVector (const InputVectorPixelType &vector) const override |
|
OutputDiffusionTensor3DType | TransformDiffusionTensor3D (const InputDiffusionTensor3DType &tensor) const override |
|
OutputVectorPixelType | TransformDiffusionTensor3D (const InputVectorPixelType &tensor) const override |
|
OutputPointType | TransformPoint (const InputPointType &point) const override |
|
OutputSymmetricSecondRankTensorType | TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &tensor) const override |
|
OutputVectorPixelType | TransformSymmetricSecondRankTensor (const InputVectorPixelType &tensor) const override |
|
OutputVectorType | TransformVector (const InputVectorType &vector) const override |
|
OutputVnlVectorType | TransformVector (const InputVnlVectorType &vector) const override |
|
OutputVectorPixelType | TransformVector (const InputVectorPixelType &vector) const override |
|
virtual void | SetMatrix (const MatrixType &matrix) |
|
void | SetOffset (const OutputVectorType &offset) |
|
void | SetCenter (const InputPointType ¢er) |
|
void | SetTranslation (const OutputVectorType &translation) |
|
bool | GetInverse (Self *inverse) const |
|
virtual void | ComputeJacobianWithRespectToParametersCachedTemporaries (const InputPointType &p, JacobianType &jacobian, JacobianType &) const |
|
void | CopyInFixedParameters (const FixedParametersValueType *const begin, const FixedParametersValueType *const end) override |
|
void | CopyInParameters (const ParametersValueType *const begin, const ParametersValueType *const end) override |
|
unsigned int | GetInputSpaceDimension () const override |
|
bool | GetInverse (Self *) const |
|
virtual NumberOfParametersType | GetNumberOfFixedParameters () const |
|
virtual NumberOfParametersType | GetNumberOfLocalParameters () const |
|
NumberOfParametersType | GetNumberOfParameters () const override |
|
unsigned int | GetOutputSpaceDimension () const override |
|
std::string | GetTransformTypeAsString () const override |
|
| itkCloneMacro (Self) |
|
void | SetParametersByValue (const ParametersType &p) override |
|
virtual OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &vector, const InputPointType &point) const |
|
virtual OutputVectorPixelType | TransformCovariantVector (const InputVectorPixelType &vector, const InputPointType &point) const |
|
virtual OutputDiffusionTensor3DType | TransformDiffusionTensor3D (const InputDiffusionTensor3DType &tensor, const InputPointType &point) const |
|
virtual OutputVectorPixelType | TransformDiffusionTensor3D (const InputVectorPixelType &tensor, const InputPointType &point) const |
|
virtual
OutputSymmetricSecondRankTensorType | TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &tensor, const InputPointType &point) const |
|
virtual OutputVectorPixelType | TransformSymmetricSecondRankTensor (const InputVectorPixelType &tensor, const InputPointType &point) const |
|
virtual OutputVectorType | TransformVector (const InputVectorType &vector, const InputPointType &point) const |
|
virtual OutputVnlVectorType | TransformVector (const InputVnlVectorType &vector, const InputPointType &point) const |
|
virtual OutputVectorPixelType | TransformVector (const InputVectorPixelType &vector, const InputPointType &point) const |
|
virtual void | UpdateTransformParameters (const DerivativeType &update, ParametersValueType factor=1.0) |
|
| itkLegacyMacro (virtual void ComputeJacobianWithRespectToPosition(const InputPointType &x, JacobianType &jacobian) const) |
|
| itkLegacyMacro (virtual void ComputeInverseJacobianWithRespectToPosition(const InputPointType &x, JacobianType &jacobian) const) |
|
virtual void | CopyInFixedParameters (const FixedParametersValueType *const begin, const FixedParametersValueType *const end)=0 |
|
virtual void | CopyInParameters (const ParametersValueType *const begin, const ParametersValueType *const end)=0 |
|
virtual void | SetFixedParameters (const FixedParametersType &)=0 |
|
virtual void | SetParameters (const ParametersType &)=0 |
|
virtual void | SetParametersByValue (const ParametersType &p)=0 |
|
unsigned long | AddObserver (const EventObject &event, Command *) |
|
unsigned long | AddObserver (const EventObject &event, Command *) const |
|
virtual void | DebugOff () const |
|
virtual void | DebugOn () const |
|
Command * | GetCommand (unsigned long tag) |
|
bool | GetDebug () const |
|
MetaDataDictionary & | GetMetaDataDictionary () |
|
const MetaDataDictionary & | GetMetaDataDictionary () const |
|
virtual ModifiedTimeType | GetMTime () const |
|
virtual const TimeStamp & | GetTimeStamp () const |
|
bool | HasObserver (const EventObject &event) const |
|
void | InvokeEvent (const EventObject &) |
|
void | InvokeEvent (const EventObject &) const |
|
virtual void | Modified () const |
|
void | Register () const override |
|
void | RemoveAllObservers () |
|
void | RemoveObserver (unsigned long tag) |
|
void | SetDebug (bool debugFlag) const |
|
void | SetReferenceCount (int) override |
|
void | UnRegister () const noexceptoverride |
|
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
|
void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
|
virtual void | SetObjectName (std::string _arg) |
|
virtual const std::string & | GetObjectName () const |
|
virtual void | Delete () |
|
virtual int | GetReferenceCount () const |
|
| itkCloneMacro (Self) |
|
void | Print (std::ostream &os, Indent indent=0) const |
|