nyx_space/md/opti/multipleshooting/
mod.rs1use anise::errors::{AlmanacError, PhysicsError};
20use snafu::Snafu;
21
22use crate::md::{trajectory::TrajError, TargetingError};
23
24pub mod altitude_heuristic;
25pub mod ctrlnodes;
26pub mod equidistant_heuristic;
27pub mod multishoot;
28
29#[derive(Copy, Clone, Debug, PartialEq, Eq)]
31pub enum CostFunction {
32 MinimumEnergy,
34 MinimumFuel,
36}
37
38#[derive(Debug, Snafu)]
39pub enum MultipleShootingError {
40 #[snafu(display("segment #{segment} encountered {source}"))]
41 TargetingError {
42 segment: usize,
43 #[snafu(source(from(TargetingError, Box::new)))]
44 source: Box<TargetingError>,
45 },
46 #[snafu(display("during a multiple shooting, encountered {source}"))]
47 MultiShootTrajError { source: TrajError },
48 #[snafu(display("duration a multiple shoot, issue due to Almanac: {action} {source}"))]
49 MultiShootAlmanacError {
50 #[snafu(source(from(AlmanacError, Box::new)))]
51 source: Box<AlmanacError>,
52 action: &'static str,
53 },
54 #[snafu(display("duration a multiple shoot, physics issue: {source}"))]
55 MultiShootPhysicsError { source: PhysicsError },
56}