bevy-inspector-egui 0.1.0

Inspector plugin for the bevy game engine
use crate::{options::NumberAttributes, Inspectable, Options};
use bevy::prelude::*;
use bevy_egui::egui;
use egui::Grid;

impl Inspectable for Quat {
    type FieldOptions = NumberAttributes<[f32; 4]>;

    fn ui(&mut self, ui: &mut egui::Ui, options: Options<Self::FieldOptions>) {
        let options = options.map(|custom| custom.map(|arr| Vec4::from(*arr)));
        let mut vec4 = Vec4::from(*self);
        vec4.ui(ui, options);
        *self = vec4.into();
    }
}

impl Inspectable for Transform {
    type FieldOptions = ();

    fn ui(&mut self, ui: &mut bevy_egui::egui::Ui, _options: crate::Options<Self::FieldOptions>) {
        let id = "asdf";
        Grid::new(id).show(ui, |ui| {
            ui.label("Translation");
            self.translation.ui(ui, Default::default());
            ui.end_row();

            ui.label("Rotation");
            self.rotation.ui(ui, Default::default());
            ui.end_row();

            ui.label("Scale");
            self.scale.ui(ui, Default::default());
            ui.end_row();
        });
    }
}