Proyek ini adalah perpustakaan mandiri yang ringan untuk mengedit alat yang biasa ditemukan di banyak mesin game. Ini mencakup mekanisme untuk memanipulasi posisi 3d, rotasi, dan skala. Diimplementasikan di C++11, pustaka tidak melakukan rendering secara langsung dan sebagai gantinya menyediakan buffer segitiga ruang dunia per frame.
Contoh yang disertakan dibuat di atas GLFW (dengan konteks OpenGL 3.3). Keterbatasan yang diketahui mencakup asumsi hardcode tentang sistem koordinat Y-up yang bertangan kanan. Meskipun gizmos dilengkapi dengan vertex normals, contohnya tidak menghasilkan bayangan yang bagus. Selain itu, masukan seret mouse dengan alat tertentu pada sudut penggembalaan interaksi ekstrem diketahui menghasilkan keluaran yang tidak wajar.
Proyek ini lahir dari rasa frustrasi ringan terhadap perpustakaan alat mode langsung lainnya. Alih-alih matriks 4x4 dan sudut euler, perpustakaan mengekspos rigid_transform
yang terdiri dari posisi 3d, angka empat rotasi, dan skala. Pustaka ini diimplementasikan dalam sekitar 1200 baris kode, yang juga mencakup pustaka matematika 3d lengkap di ~400 LoC - linalg.h. Alternatifnya termasuk ImGuizmo dan Im3D. Tinygizmo cocok di antara proyek-proyek ini karena sepenuhnya mandiri (tidak bergantung pada Dear ImGui), dan disediakan dalam domain publik.
snap_
di struct gizmo_application_state
.update(...)
dan draw()
untuk setiap mata)ctrl-t
untuk mengaktifkan alat terjemahanctrl-r
untuk mengaktifkan alat rotasictrl-s
untuk mengaktifkan alat skalactrl-l
untuk beralih antara mode transformasi global dan lokalProyek ini tidak akan mungkin terwujud tanpa implementasi referensi dalam proyek meja kerja domain publik.
Ini adalah perangkat lunak gratis dan tidak terbebani yang dirilis ke domain publik. Untuk informasi lebih lanjut, silakan merujuk ke http://unlicense.org