18 #ifndef itkAzimuthElevationToCartesianTransform_h
19 #define itkAzimuthElevationToCartesianTransform_h
87 template <
typename TParametersValueType =
double,
unsigned int VDimension = 3>
101 static constexpr
unsigned int SpaceDimension = VDimension;
102 static constexpr
unsigned int ParametersDimension = VDimension * (VDimension + 1);
111 using typename Superclass::ParametersType;
112 using typename Superclass::FixedParametersType;
113 using typename Superclass::TransformCategoryEnum;
132 SetAzimuthElevationToCartesianParameters(
const double sampleSize,
133 const double firstSampleDistance,
134 const long maxAzimuth,
135 const long maxElevation,
136 const double azimuthAngleSeparation,
137 const double elevationAngleSeparation);
140 SetAzimuthElevationToCartesianParameters(
const double sampleSize,
141 const double firstSampleDistance,
142 const long maxAzimuth,
143 const long maxElevation);
155 if (m_ForwardAzimuthElevationToPhysical)
157 result = static_cast<InputPointType>(TransformCartesianToAzEl(
point));
161 result = static_cast<InputPointType>(TransformAzElToCartesian(
point));
166 inline InputPointType
169 return BackTransform(
point);
175 TransformCategoryEnum
178 return Self::TransformCategoryEnum::UnknownTransformCategory;
184 SetForwardAzimuthElevationToCartesian();
189 SetForwardCartesianToAzimuthElevation();
193 TransformAzElToCartesian(
const InputPointType &
point)
const;
197 TransformCartesianToAzEl(
const OutputPointType &
point)
const;
203 itkSetMacro(MaxAzimuth,
long);
204 itkGetConstMacro(MaxAzimuth,
long);
211 itkSetMacro(MaxElevation,
long);
212 itkGetConstMacro(MaxElevation,
long);
216 itkSetMacro(RadiusSampleSize,
double);
217 itkGetConstMacro(RadiusSampleSize,
double);
221 itkSetMacro(AzimuthAngularSeparation,
double);
222 itkGetConstMacro(AzimuthAngularSeparation,
double);
226 itkSetMacro(ElevationAngularSeparation,
double);
227 itkGetConstMacro(ElevationAngularSeparation,
double);
231 itkSetMacro(FirstSampleDistance,
double);
232 itkGetConstMacro(FirstSampleDistance,
double);
244 PrintSelf(std::ostream & os,
Indent indent)
const override;
248 long m_MaxElevation{};
249 double m_RadiusSampleSize{};
250 double m_AzimuthAngularSeparation{};
251 double m_ElevationAngularSeparation{};
252 double m_FirstSampleDistance{};
253 bool m_ForwardAzimuthElevationToPhysical{};
257 #ifndef ITK_MANUAL_INSTANTIATION
258 # include "itkAzimuthElevationToCartesianTransform.hxx"