feat(demos): add CSG and axis demos, reorganize into essentials subpackage
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sat, 28 Mar 2026 12:50:34 +0000 (14:50 +0200)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sat, 28 Mar 2026 12:50:34 +0000 (14:50 +0200)
commit7fadfa9e211ed1216efba34a86118b8be34b1c8f
treea7d4adc5c53cc21dba372d28b011d7bdd25feb68
parentdd50d4e7df7cfd81e3fc7a68f1efbc4deb6f4a42
feat(demos): add CSG and axis demos, reorganize into essentials subpackage

Add two new demonstration apps:
- CSGDemo: showcases boolean operations (subtract, union, intersect) on
  3D shapes using the BSP-based CSG system from sixth-3d
- AxisArrowsDemo: displays coordinate system axes with colored arrows
  (X=red, Y=green, Z=blue) and text labels

Reorganize demo structure:
- Move basic demos (MinimalExample, WindingOrderDemo, ShapeGalleryDemo)
  to examples.essentials subpackage for cleaner organization
- Rename ShadedShapesDemo to ShapeGalleryDemo for clarity
- Remove RandomPolygonsDemo (redundant with other polygon demos)

Update launcher with two-tier layout: "Essentials" section for core
demos, "Demos" section for advanced applications. Simplify arrow
constructors in ArrowDemo and ShapeGalleryDemo using auto-calculated
tip dimensions.
16 files changed:
AGENTS.md
src/main/java/eu/svjatoslav/sixth/e3d/examples/ArrowDemo.java
src/main/java/eu/svjatoslav/sixth/e3d/examples/MinimalExample.java [deleted file]
src/main/java/eu/svjatoslav/sixth/e3d/examples/OctreeDemo.java
src/main/java/eu/svjatoslav/sixth/e3d/examples/RandomPolygonsDemo.java [deleted file]
src/main/java/eu/svjatoslav/sixth/e3d/examples/ShadedShapesDemo.java [deleted file]
src/main/java/eu/svjatoslav/sixth/e3d/examples/WindingOrderDemo.java [deleted file]
src/main/java/eu/svjatoslav/sixth/e3d/examples/essentials/AxisArrowsDemo.java [new file with mode: 0644]
src/main/java/eu/svjatoslav/sixth/e3d/examples/essentials/CSGDemo.java [new file with mode: 0644]
src/main/java/eu/svjatoslav/sixth/e3d/examples/essentials/MinimalExample.java [new file with mode: 0644]
src/main/java/eu/svjatoslav/sixth/e3d/examples/essentials/ShapeGalleryDemo.java [new file with mode: 0644]
src/main/java/eu/svjatoslav/sixth/e3d/examples/essentials/WindingOrderDemo.java [new file with mode: 0644]
src/main/java/eu/svjatoslav/sixth/e3d/examples/launcher/ApplicationListPanel.java
src/main/java/eu/svjatoslav/sixth/e3d/examples/life_demo/Main.java
src/main/java/eu/svjatoslav/sixth/e3d/examples/life_demo/Matrix.java
src/main/java/eu/svjatoslav/sixth/e3d/examples/terrain_demo/TerrainDemo.java