Expand description
§Deuxfleurs
Viewer for geometry processing / meshes / 3d related stuff heavily inspired by polyscope (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.
§How to use
Here’s a quick example that loads a mesh and uses a button to show/hide it:
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);
handle.run_with_callback(1080, 720, Some("deuxfleurs-demo"), |ui, state| {
// Toggle between shown or not on button pressed
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.
§Controls
Currently touch constrols are only barely working.
- Left click: rotate shape
- Right click: pan shape
- Mouse wheel: zoom/dezoom
Ctrl++: zoom UICtrl+-: dezoom UICtrl+C: save current camera state to clipboardCtrl+V: load camera state from clipboard
Re-exports§
pub use egui;
Modules§
- attachment
- Data associated to a shape which have their own renderer. Wether they are shown or not does not affect other data.
- data
- Data rendered directly onto the associated shape. Only one can be displayed at a time on the corresponding shape.
- internal
- Re exported types for visibility
- picker
- Picked element types
- point_
cloud - Point clouds structs and associated data/settings
- segment
- Segment lists structs and associated data/settings
- surface
- Triangular surfaces structs and associated data/settings
- types
- General types for genericity in functions parameters.
- ui
- Custom Ui components for mesh loading
Structs§
Functions§
- init
- First initialization of the app. The resulting
InitialStatecan then be used to register geometries and data. It then has to be ran to be displayed. - load_
mesh - Helper to load a mesh from an obj or off file
- load_
mesh_ blocking - Helper to load a mesh from an obj or off file
Type Aliases§
- Initial
State - Starting point to build the app.
- Running
State - Holds the application state. Starting point to add visualization datas.