use egui::NumExt as _; use re_types::components::Range1D; use re_viewer_context::MaybeMutRef; pub fn edit_range1d( _ctx: &re_viewer_context::ViewerContext<'_>, ui: &mut egui::Ui, value: &mut MaybeMutRef<'_, Range1D>, ) -> egui::Response { if let Some(value) = value.as_mut() { let [min, max] = &mut value.0 .0; let range = (*max - *min).abs(); let speed = (range * 0.01).at_least(0.001); let response_min = ui.add( egui::DragValue::new(min) .clamp_to_range(false) .range(f64::NEG_INFINITY..=*max) .speed(speed), ); ui.label("-"); let response_max = ui.add( egui::DragValue::new(max) .clamp_to_range(false) .range(*min..=f64::INFINITY) .speed(speed), ); response_min | response_max } else { let [min, max] = value.0 .0; ui.label(format!( "{} - {}", re_format::format_f64(min), re_format::format_f64(max) )) } }