use astrodyn_gravity::{GravityControl, GravityGradient};
use crate::recipes::{constants, earth, epoch, orbital_elements, vehicle};
use crate::vehicle_builder::VehicleBuilder;
use crate::SimulationBuilder;
pub fn geo() -> SimulationBuilder {
let mut sb = SimulationBuilder::new(epoch::j2000(), 300.0);
let earth_idx = sb.add_source("Earth", earth::point_mass());
let vehicle = VehicleBuilder::new()
.from_orbital_elements(orbital_elements::geostationary(), constants::mu_ggm05c())
.three_dof_point_mass(vehicle::unit_sphere_mass())
.rk4()
.gravity(GravityControl::new_spherical(
earth_idx,
GravityGradient::Skip,
))
.build();
sb.add_body(vehicle);
sb
}