feat(math,gui): add full euler rotation and developer camera tools
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Mon, 23 Mar 2026 18:30:37 +0000 (20:30 +0200)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Mon, 23 Mar 2026 18:30:37 +0000 (20:30 +0200)
commit819741493d07adb30d44576ffb2de9c09d346a77
tree5542774f3e8fab75041fe6f8ee44919de49be717
parent343e15d7b33be804dc538e090daec49b5c7e803b
feat(math,gui): add full euler rotation and developer camera tools

Add yaw/pitch/roll Euler angle support to Quaternion and Transform,
enabling complete 3-axis camera orientation. The developer tools panel
now displays real-time camera position and rotation with a copy button
for saving viewpoints to source code.

Fix mouse drag to initialize from current camera orientation, preventing
jumps when camera was programmatically positioned with non-default
rotation.

Optimize alpha blending in rendering loops by replacing division with
bit-shift and pre-multiplying source colors. Add bounds clamping and
Arrays.fill optimization to TextureBitmap.fillRect.
12 files changed:
TODO.org
doc/perspective-correct-textures/index.org
src/main/java/eu/svjatoslav/sixth/e3d/gui/DeveloperToolsPanel.java
src/main/java/eu/svjatoslav/sixth/e3d/gui/ViewFrame.java
src/main/java/eu/svjatoslav/sixth/e3d/gui/ViewPanel.java
src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/InputManager.java
src/main/java/eu/svjatoslav/sixth/e3d/math/Quaternion.java
src/main/java/eu/svjatoslav/sixth/e3d/math/Transform.java
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/basic/line/Line.java
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/basic/solidpolygon/SolidPolygon.java
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/basic/texturedpolygon/TexturedPolygon.java
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/texture/TextureBitmap.java