10 releases (6 breaking)
Uses new Rust 2024
| 0.7.0 | Oct 19, 2025 |
|---|---|
| 0.6.1 | Sep 2, 2023 |
| 0.6.0 | Mar 22, 2022 |
| 0.4.0 | Nov 12, 2021 |
| 0.3.0 | Apr 28, 2021 |
#84 in No standard library
126 downloads per month
29KB
378 lines
kiss3d-trackball
Coherent Virtual Trackball Camera Mode for Kiss 3D
Complements the trackball library with Kiss3D-specific Input resulting in a compound
Trackball camera mode implementation for the Kiss3D graphics library.
Coherence
This is an alternative trackball technique using exponential map and parallel transport to preserve distances and angles for inducing coherent and intuitive trackball rotations. For instance, displacements on straight radial lines through the screen's center are carried to arcs of the same length on great circles of the trackball (e.g., dragging the mouse along an eights of the trackball's circumference rolls the camera by 360/8=45 degrees, dragging the mouse from the screen's center to its further edge linearly rotates the camera by 1 radian, where the trackball's diameter is the maximum of the screen's width and height). This is in contrast to state-of-the-art techniques using orthogonal projection which distorts radial distances further away from the screen's center (e.g., the rotation accelerates towards the edge).[^1]
[^1]: G. Stantchev, “Virtual Trackball Modeling and the Exponential Map”, S2CID 44199608 (2004) , Archived PDF
See the release history to keep track of the development.
License
The works are licensed under the BSD-2-Clause-Patent.
This license is designed to provide:
- a simple permissive license,
- that is compatible with the
GPL-2.0-or-later, and - which also has an express patent grant included, but
- unlike the
Apache-2.0without patent retaliation.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the works by you shall be licensed as above, without any additional terms or conditions.
Dependencies
~21–40MB
~657K SLoC