# Deuxfleurs
[![Documentation][doc-img]][doc-url]
[doc-img]: https://img.shields.io/badge/doc-deuxfleurs-green
[doc-url]: https://lieunoir.github.io/deuxfleurs/deuxfleurs/

Viewer for geometry processing / meshes / 3d related stuff heavily inspired by [polyscope](https://polyscope.run) (which is very nice, check it out!).
Can be used in webpages thanks to wasm, so web-based slides can include demos, or simply for making code demo easily accessible on the web. An example can be found [here](https://github.com/Lieunoir/uvat-wasm-demo).
# How to use
Here's a quick example that loads a mesh and uses a button to show/hide it:
```rust
use deuxfleurs::load_mesh;
// Init the app
let mut handle = deuxfleurs::init();
// Load the mesh and register it:
let (v, f) = load_mesh("bunny.obj").await.unwrap();
handle.register_surface("bunny", v, f);
if ui.add(egui::Button::new("Toggle shown")).clicked() {
let mut surface = state.get_surface_mut("bunny").unwrap();
let shown = surface.shown();
surface.show(!shown);
}
});
```
More examples are available in the corresponding folder.