#[derive(Debug, Clone)]
pub struct NonGravParams {
pub a1: f64,
pub a2: f64,
pub a3: f64,
pub alpha: Option<f64>,
pub nk: Option<f64>,
pub nm: Option<f64>,
pub nn: Option<f64>,
pub r0: Option<f64>,
}
impl NonGravParams {
pub fn new(a1: f64, a2: f64, a3: f64) -> Self {
Self {
a1,
a2,
a3,
alpha: None,
nk: None,
nm: None,
nn: None,
r0: None,
}
}
}
#[derive(Debug, Clone)]
pub struct Orbit {
pub state: [f64; 6],
pub epoch: f64,
pub non_grav: Option<NonGravParams>,
}
impl Orbit {
pub fn new(state: [f64; 6], epoch: f64) -> Self {
Self {
state,
epoch,
non_grav: None,
}
}
pub fn with_non_grav(state: [f64; 6], epoch: f64, non_grav: NonGravParams) -> Self {
Self {
state,
epoch,
non_grav: Some(non_grav),
}
}
}