3d transformation gizmo built on top of the egui library.
let gizmo = Gizmo::new("My gizmo")
.view_matrix(view_matrix)
.projection_matrix(projection_matrix)
.model_matrix(model_matrix)
.mode(GizmoMode::Rotate);
if let Some(response) = gizmo.interact(ui) {
model_matrix = response.transform();
}
For a more complete example, see the demo source code.
The gizmo exposes matrices and vectors as mint types, which means it is easy to use with matrix types from various crates
such as nalgebra, glam
and cgmath. You may need to enable a mint
feature, depending on the math library.