extern crate nalgebra as na;
use super::time::Epoch;
pub trait TimeTagged {
fn epoch(&self) -> Epoch;
fn set_epoch(&mut self, dt: Epoch);
}
pub mod orientations {
pub const J2000: i32 = 1;
}
pub mod bodies {
pub const SSB: i32 = 0;
pub const SUN: i32 = 10;
pub const MERCURY_BARYCENTER: i32 = 1;
pub const MERCURY: i32 = 1;
pub const VENUS_BARYCENTER: i32 = 2;
pub const VENUS: i32 = 2;
pub const EARTH_BARYCENTER: i32 = 3;
pub const EARTH: i32 = 399;
pub const EARTH_MOON: i32 = 301;
pub const MARS_BARYCENTER: i32 = 4;
pub const JUPITER_BARYCENTER: i32 = 5;
pub const SATURN_BARYCENTER: i32 = 6;
pub const URANUS_BARYCENTER: i32 = 7;
pub const NEPTUNE_BARYCENTER: i32 = 8;
}
mod state;
pub use self::state::*;
mod frames;
pub use self::frames::*;
mod rotations;
pub use self::rotations::*;
mod cosm;
mod xb;
pub use self::cosm::*;
pub mod eclipse;
pub const SPEED_OF_LIGHT: f64 = 299_792_458.0;
pub const SPEED_OF_LIGHT_KMS: f64 = 299_792.458;
pub const AU: f64 = 149_597_870.700;