Skip to content

Commit

Permalink
Cleanup GUI
Browse files Browse the repository at this point in the history
  • Loading branch information
ChristopherRabotin committed Oct 10, 2024
1 parent 5cda3a9 commit 6c6f471
Show file tree
Hide file tree
Showing 4 changed files with 247 additions and 289 deletions.
116 changes: 116 additions & 0 deletions anise-gui/src/bpc.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
use anise::{
constants::orientations::orientation_name_from_id,
prelude::{Almanac, NAIFSummaryRecord},
};
use egui_extras::{Column, TableBuilder};
use hifitime::{TimeScale, Unit};

pub fn bpc_ui(
ui: &mut egui::Ui,
almanac: &Almanac,
show_unix: bool,
selected_time_scale: TimeScale,
) {
// We can use the summary
TableBuilder::new(ui)
.column(Column::auto().at_least(125.0).resizable(true))
.column(Column::auto().at_least(125.0).resizable(true))
.column(Column::auto().at_least(250.0).resizable(true))
.column(Column::auto().at_least(250.0).resizable(true))
.column(Column::auto().at_least(200.0).resizable(true))
.column(Column::auto().at_least(150.0).resizable(true))
.column(Column::remainder())
.header(20.0, |mut header| {
header.col(|ui| {
ui.heading("Frame");
});
header.col(|ui| {
ui.heading("Segment name");
});
header.col(|ui| {
ui.heading("Start");
});
header.col(|ui| {
ui.heading("End");
});
header.col(|ui| {
ui.heading("Inertial frame");
});
header.col(|ui| {
ui.heading("Domain");
});
header.col(|ui| {
ui.heading("Type");
});
})
.body(|mut body| {
let pck = almanac.bpc_data[0].as_ref().unwrap();

for (sno, summary) in pck.data_summaries().unwrap().iter().enumerate() {
let name_rcrd = pck.name_record().unwrap();
let name = name_rcrd.nth_name(sno, pck.file_record().unwrap().summary_size());
if summary.is_empty() {
continue;
}

body.row(30.0, |mut row| {
row.col(|ui| {
ui.label(name);
});

row.col(|ui| {
if show_unix {
ui.text_edit_singleline(&mut format!(
"{}",
summary.start_epoch().to_unix_seconds()
));
} else {
ui.label(summary.start_epoch().to_gregorian_str(selected_time_scale));
};
});

row.col(|ui| {
if show_unix {
ui.text_edit_singleline(&mut format!(
"{}",
summary.end_epoch().to_unix_seconds()
));
} else {
ui.label(summary.end_epoch().to_gregorian_str(selected_time_scale));
};
});

row.col(|ui| match orientation_name_from_id(summary.frame_id) {
Some(name) => {
ui.label(format!("{name} ({})", summary.frame_id));
}
None => {
ui.label(format!("{}", summary.frame_id));
}
});

row.col(
|ui| match orientation_name_from_id(summary.inertial_frame_id) {
Some(name) => {
ui.label(format!("{name} ({})", summary.inertial_frame_id));
}
None => {
ui.label(format!("{}", summary.inertial_frame_id));
}
},
);

row.col(|ui| {
ui.label(format!(
"{}",
(summary.end_epoch() - summary.start_epoch()).round(Unit::Second * 1)
));
});

row.col(|ui| {
ui.label(format!("{}", summary.data_type().unwrap()));
});
});
}
});
}
5 changes: 4 additions & 1 deletion anise-gui/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ const LOG_VAR: &str = "ANISE_LOG";
mod ui;
use ui::UiApp;

mod bpc;
mod spk;

#[cfg(not(target_arch = "wasm32"))]
fn main() {
use std::env::{set_var, var};
Expand All @@ -19,7 +22,7 @@ fn main() {
.expect("Error initializing logger");

let opts = eframe::NativeOptions {
viewport: egui::ViewportBuilder::default().with_inner_size([1024.0, 768.0]),
viewport: egui::ViewportBuilder::default().with_inner_size([1024.0, 640.0]),
..Default::default()
};

Expand Down
107 changes: 107 additions & 0 deletions anise-gui/src/spk.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
use anise::prelude::{Almanac, NAIFSummaryRecord};
use egui_extras::{Column, TableBuilder};
use hifitime::{TimeScale, Unit};

pub fn spk_ui(
ui: &mut egui::Ui,
almanac: &Almanac,
show_unix: bool,
selected_time_scale: TimeScale,
) {
TableBuilder::new(ui)
.column(Column::auto().at_least(150.0).resizable(true))
.column(Column::auto().at_least(150.0).resizable(true))
.column(Column::auto().at_least(250.0).resizable(true))
.column(Column::auto().at_least(250.0).resizable(true))
.column(Column::auto().at_least(200.0).resizable(true))
.column(Column::auto().at_least(150.0).resizable(true))
.column(Column::remainder())
.header(20.0, |mut header| {
header.col(|ui| {
ui.heading("Target");
});
header.col(|ui| {
ui.heading("Name");
});
header.col(|ui| {
ui.heading("Start");
});
header.col(|ui| {
ui.heading("End");
});
header.col(|ui| {
ui.heading("Center");
});
header.col(|ui| {
ui.heading("Domain");
});
header.col(|ui| {
ui.heading("Type");
});
})
.body(|mut body| {
let spk = almanac.spk_data[0].as_ref().unwrap();

for (sno, summary) in spk.data_summaries().unwrap().iter().enumerate() {
let name_rcrd = spk.name_record().unwrap();
let name = name_rcrd.nth_name(sno, spk.file_record().unwrap().summary_size());
if summary.is_empty() {
continue;
}

body.row(30.0, |mut row| {
row.col(|ui| {
ui.label(format!(
"{} ({})",
summary.target_frame(),
summary.target_id
));
});
row.col(|ui| {
ui.label(name);
});

row.col(|ui| {
if show_unix {
ui.text_edit_singleline(&mut format!(
"{}",
summary.start_epoch().to_unix_seconds()
));
} else {
ui.label(summary.start_epoch().to_gregorian_str(selected_time_scale));
};
});

row.col(|ui| {
if show_unix {
ui.text_edit_singleline(&mut format!(
"{}",
summary.end_epoch().to_unix_seconds()
));
} else {
ui.label(summary.end_epoch().to_gregorian_str(selected_time_scale));
};
});

row.col(|ui| {
ui.label(format!(
"{} ({})",
summary.center_frame(),
summary.center_id
));
});

row.col(|ui| {
ui.label(format!(
"{}",
(summary.end_epoch() - summary.start_epoch()).round(Unit::Second * 1)
));
});

row.col(|ui| {
ui.label(format!("{}", summary.data_type().unwrap()));
});
});
}
});
}
Loading

0 comments on commit 6c6f471

Please sign in to comment.