Skip to main content

Crate drew_sim

Crate drew_sim 

Source
Expand description

§drew-sim

Librairie de rendu 3D immédiat pour applications eframe/egui.

Pensée pour la visualisation de télémétrie (drones, robots, capteurs d’orientation) : chargement de maillages .stl, caméra orbitale avec zoom/pan à la souris, et primitives de dessin (maillage fil de fer, repère XYZ, trajectoire, graphe de valeurs).

§Exemple minimal

use drew_sim::{Engine3D, Mesh3D, Rotation3D, TelemetryState};

struct App {
    engine: Engine3D,
    mesh: Mesh3D,
    state: TelemetryState,
}

impl eframe::App for App {
    fn update(&mut self, ctx: &eframe::egui::Context, _frame: &mut eframe::Frame) {
        eframe::egui::CentralPanel::default().show(ctx, |ui| {
            self.engine.render(ui, |r| {
                r.draw_mesh(&self.mesh, self.state.position, self.state.rotation, eframe::egui::Color32::WHITE);
                r.draw_axes(self.state.position, self.state.rotation, 1.5);
            });
        });
    }
}

Re-exports§

pub use camera::OrbitCamera;
pub use engine::Engine3D;
pub use engine::GridStyle;
pub use math::Rotation3D;
pub use math::Vec3;
pub use mesh::Mesh3D;
pub use mesh::MeshError;
pub use render::Render3D;
pub use telemetry::TelemetryState;
pub use telemetry::TrailBuffer;
pub use eframe;
pub use eframe::egui;

Modules§

camera
Caméra orbitale et gestion de l’entrée utilisateur (zoom, pan, orbite).
engine
Moteur de rendu haut niveau : alloue la zone de dessin, gère la caméra, dessine le sol/la grille, puis délègue le dessin de la scène à l’appelant.
math
Primitives mathématiques : vecteurs 3D et rotations Euler.
mesh
Maillages triangulaires : stockage, primitives, chargement STL.
render
Contexte de rendu : projection 3D -> 2D et primitives de dessin.
telemetry
Contrat de télémétrie agnostique de la source (capteurs, simulation, replay).