5 releases (3 breaking)
Uses new Rust 2024
| 0.6.0 | Nov 28, 2025 |
|---|---|
| 0.5.0 | Oct 24, 2025 |
| 0.4.1 | Oct 7, 2025 |
| 0.4.0 | Oct 7, 2025 |
| 0.3.0 | Oct 6, 2025 |
#2230 in GUI
5.5MB
98K
SLoC
Dear ImGuIZMO.quat – Rust Bindings
Safe, idiomatic Rust bindings for ImGuIZMO.quat (quaternion + 3D gizmo helpers) built on the C API wrapper cimguizmo_quat, integrated with dear-imgui-rs.
Links
Compatibility
| Item | Version |
|---|---|
| Crate | 0.5.x |
| dear-imgui-rs | 0.5.x |
| dear-imguizmo-quat-sys | 0.5.x |
See also: docs/COMPATIBILITY.md in the workspace for the full matrix.
Features
- glam (default): pass and mutate
glam::Quat,glam::Vec3,glam::Vec4directly - mint (optional): interop via
mint::{Quaternion, Vector3, Vector4} - freetype: passthrough to
dear-imgui-sys/freetype(enable from any crate once)
All math parameters are generic over lightweight traits so you can also use plain arrays: [f32; 4] for quaternions, [f32; 3|4] for vectors.
Quick Start
[dependencies]
dear-imgui-rs = "0.5"
dear-imguizmo-quat = "0.5"
Minimal usage with the Ui extension and builder API:
use dear_imgui_rs::Ui;
use dear_imguizmo_quat::{GizmoQuatExt, Mode};
fn draw(ui: &Ui) {
let mut rot = glam::Quat::IDENTITY; // or [f32; 4]
let used = ui
.gizmo_quat()
.builder()
.size(220.0)
.mode(Mode::MODE_DUAL | Mode::CUBE_AT_ORIGIN)
.quat("##rot", &mut rot);
if used {
// rotation changed this frame
}
}
Pan+Dolly + quaternion + light direction variant:
use dear_imguizmo_quat::{GizmoQuatExt, Mode};
let mut pan_dolly = glam::Vec3::ZERO;
let mut rot = glam::Quat::IDENTITY;
let mut light_dir = glam::Vec3::new(1.0, 0.0, 0.0);
ui.gizmo_quat()
.builder()
.mode(Mode::MODE_PAN_DOLLY | Mode::MODE_DUAL | Mode::CUBE_AT_ORIGIN)
.pan_dolly_quat_light_vec3("##gizmo", &mut pan_dolly, &mut rot, &mut light_dir);
Notes
- Begin once per frame with
ui.gizmo_quat()and call into the builder; no extra context is required. - RAII and ID usage follow dear-imgui patterns; use unique labels or
##suffixto avoid ID clashes in loops. - See
examples/imguizmo_quat_basic.rsfor a complete WGPU demo (cube + view controls).
Dependencies
~6–11MB
~272K SLoC