#[derive(DeriveReferenceFrame)]
{
// Attributes available to this derive:
#[frame]
}
Expand description
Derive macro for implementing ReferenceFrame.
§Example
ⓘ
use affn::ReferenceFrame;
#[derive(Debug, Copy, Clone, ReferenceFrame)]
struct ICRS;
assert_eq!(ICRS::frame_name(), "ICRS");§Custom Name
ⓘ
#[derive(Debug, Copy, Clone, ReferenceFrame)]
#[frame(name = "International Celestial Reference System")]
struct ICRS;
assert_eq!(ICRS::frame_name(), "International Celestial Reference System");§SphericalNaming
When polar and azimuth attributes are provided, the macro also implements
SphericalNaming:
ⓘ
#[derive(Debug, Copy, Clone, ReferenceFrame)]
#[frame(polar = "dec", azimuth = "ra")]
struct ICRS;
assert_eq!(ICRS::polar_name(), "dec");
assert_eq!(ICRS::azimuth_name(), "ra");
assert_eq!(ICRS::distance_name(), "distance"); // defaultWith custom distance name:
ⓘ
#[derive(Debug, Copy, Clone, ReferenceFrame)]
#[frame(polar = "lat", azimuth = "lon", distance = "altitude")]
struct ITRF;