Skip to main content

ReferenceCenter

Derive Macro ReferenceCenter 

Source
#[derive(ReferenceCenter)]
{
    // Attributes available to this derive:
    #[center]
}
Expand description

Derive macro for implementing ReferenceCenter.

By default, this also implements AffineCenter.

§Example

use affn::ReferenceCenter;

#[derive(Debug, Copy, Clone, ReferenceCenter)]
struct Heliocentric;

assert_eq!(Heliocentric::center_name(), "Heliocentric");

§Custom Parameters

use affn::ReferenceCenter;

#[derive(Clone, Debug, Default, PartialEq)]
struct ObserverLocation {
    lat: f64,
    lon: f64,
}

#[derive(Debug, Copy, Clone, ReferenceCenter)]
#[center(params = ObserverLocation)]
struct Topocentric;

§Skip AffineCenter

#[derive(Debug, Copy, Clone, ReferenceCenter)]
#[center(affine = false)]
struct NonAffineCenter;