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).