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.into();
}
For a more complete example, see the demo source code.
The gizmo accepts matrices as Into<[[f32; 4]; 4]>
, which means it is easy to use with matrix types from various crates
such as nalgebra, glam
and cgmath.