From ba7790daba580528c9aeee46499fbbccfe2af5ff Mon Sep 17 00:00:00 2001 From: "martin.fencl" Date: Thu, 22 Oct 2026 01:04:21 +0200 Subject: [PATCH] feat: Add legacy shaders, model I/O, and project panel functionality - Introduced `legacy-shaders.js` containing vertex and fragment shaders for rendering. - Implemented `model-io.js` for parsing and encoding GLB files, ensuring compatibility with glTF 2.0. - Created `project-panel.js` to manage project resources and survey overlays, enhancing user interaction. - Added `solar.js` for calculating solar positions based on UTC time, latitude, and longitude. - Developed `three-renderer.js` as a standard backend for Three.js, managing scene rendering and material synchronization. - Included a new GLB model `dum.glb` for testing and demonstration purposes. - Established `data_checks.mjs` for validating model data and ensuring integrity of assets. - Created `prepare_export.py` to facilitate Blender GLB exports, maintaining material and node references. - Added `vendor_three.py` to download and configure a local version of Three.js for the project. --- locenice/index.php | 11 ++--------- {locenice => locenice2}/MANIFEST.json | 0 {locenice => locenice2}/README_CZ.md | 0 {locenice => locenice2}/TEST_REPORT.json | 0 {locenice => locenice2}/THIRD_PARTY.txt | 0 {locenice => locenice2}/app.html | 0 {locenice => locenice2}/assets/catalog/door0.jpg | Bin {locenice => locenice2}/assets/catalog/door1.jpg | Bin {locenice => locenice2}/assets/catalog/door2.jpg | Bin {locenice => locenice2}/assets/catalog/door3.jpg | Bin {locenice => locenice2}/assets/catalog/door4.jpg | Bin {locenice => locenice2}/assets/catalog/door5.jpg | Bin {locenice => locenice2}/assets/catalog/door6.jpg | Bin {locenice => locenice2}/assets/catalog/door7.jpg | Bin {locenice => locenice2}/assets/catalog/intsill0.jpg | Bin {locenice => locenice2}/assets/catalog/intsill1.jpg | Bin {locenice => locenice2}/assets/catalog/intsill2.jpg | Bin {locenice => locenice2}/assets/catalog/lam1.jpg | Bin {locenice => locenice2}/assets/catalog/lam2.jpg | Bin {locenice => locenice2}/assets/catalog/lam3.jpg | Bin {locenice => locenice2}/assets/catalog/lam4.jpg | Bin {locenice => locenice2}/assets/catalog/lam5.jpg | Bin {locenice => locenice2}/assets/catalog/lam6.jpg | Bin {locenice => locenice2}/assets/catalog/lam7.jpg | Bin {locenice => locenice2}/assets/catalog/lam8.jpg | Bin {locenice => locenice2}/assets/catalog/lam9.jpg | Bin {locenice => locenice2}/assets/catalog/page12.jpg | Bin {locenice => locenice2}/assets/catalog/page13.jpg | Bin {locenice => locenice2}/assets/catalog/page14.jpg | Bin {locenice => locenice2}/assets/catalog/page15.jpg | Bin {locenice => locenice2}/assets/catalog/page16.jpg | Bin {locenice => locenice2}/assets/catalog/page17.jpg | Bin {locenice => locenice2}/assets/catalog/page18.jpg | Bin {locenice => locenice2}/assets/catalog/page19.jpg | Bin {locenice => locenice2}/assets/catalog/page20.jpg | Bin {locenice => locenice2}/assets/catalog/page21.jpg | Bin {locenice => locenice2}/assets/catalog/page22.jpg | Bin {locenice => locenice2}/assets/catalog/page23.jpg | Bin {locenice => locenice2}/assets/catalog/page24.jpg | Bin {locenice => locenice2}/assets/catalog/page25.jpg | Bin {locenice => locenice2}/assets/catalog/prum.jpg | Bin .../assets/catalog/requestedDoor.jpg | Bin {locenice => locenice2}/assets/catalog/roof0.jpg | Bin {locenice => locenice2}/assets/catalog/roof1.jpg | Bin {locenice => locenice2}/assets/catalog/roof2.jpg | Bin {locenice => locenice2}/assets/catalog/roof3.jpg | Bin {locenice => locenice2}/assets/catalog/roof4.jpg | Bin {locenice => locenice2}/assets/catalog/tile1.jpg | Bin {locenice => locenice2}/assets/catalog/tile2.jpg | Bin {locenice => locenice2}/assets/catalog/tile3.jpg | Bin {locenice => locenice2}/assets/catalog/tile4.jpg | Bin {locenice => locenice2}/assets/catalog/tile5.jpg | Bin {locenice => locenice2}/assets/catalog/tile6.jpg | Bin {locenice => locenice2}/assets/catalog/tile7.jpg | Bin {locenice => locenice2}/assets/catalog/tile8.jpg | Bin {locenice => locenice2}/assets/catalog/tile9.jpg | Bin .../assets/references/kitchen1.jpg | Bin .../assets/references/kitchen2.jpg | Bin {locenice => locenice2}/assets/references/plan.jpg | Bin .../assets/references/survey.png | Bin {locenice => locenice2}/assets/references/view1.jpg | Bin {locenice => locenice2}/assets/references/view2.jpg | Bin {locenice => locenice2}/assets/ui/image-1.jpg | Bin {locenice => locenice2}/blender/prepare_model.py | 6 +++--- {locenice => locenice2}/css/app.css | 0 {locenice => locenice2}/css/web.css | 0 {locenice => locenice2}/data/app-config.json | 0 {locenice => locenice2}/data/assets.json | 0 {locenice => locenice2}/data/catalog.json | 0 {locenice => locenice2}/data/references.json | 0 {locenice => locenice2}/data/scene.json | 0 {locenice => locenice2}/data/site.json | 0 locenice2/index.php | 10 ++++++++++ {locenice => locenice2}/js/app.js | 0 {locenice => locenice2}/js/bootstrap.js | 0 {locenice => locenice2}/js/legacy-renderer.js | 0 {locenice => locenice2}/js/legacy-shaders.js | 0 {locenice => locenice2}/js/model-io.js | 0 {locenice => locenice2}/js/project-panel.js | 0 {locenice => locenice2}/js/solar.js | 0 {locenice => locenice2}/js/three-renderer.js | 0 {locenice => locenice2}/models/dum.glb | Bin {locenice => locenice2}/tests/data_checks.mjs | 6 +++--- {locenice => locenice2}/tools/prepare_export.py | 2 +- {locenice => locenice2}/tools/vendor_three.py | 4 ++-- 85 files changed, 21 insertions(+), 18 deletions(-) rename {locenice => locenice2}/MANIFEST.json (100%) rename {locenice => locenice2}/README_CZ.md (100%) rename {locenice => locenice2}/TEST_REPORT.json (100%) rename {locenice => locenice2}/THIRD_PARTY.txt (100%) rename {locenice => locenice2}/app.html (100%) rename {locenice => locenice2}/assets/catalog/door0.jpg (100%) rename {locenice => locenice2}/assets/catalog/door1.jpg (100%) rename {locenice => locenice2}/assets/catalog/door2.jpg (100%) rename {locenice => locenice2}/assets/catalog/door3.jpg (100%) rename {locenice => locenice2}/assets/catalog/door4.jpg (100%) rename {locenice => locenice2}/assets/catalog/door5.jpg (100%) rename {locenice => locenice2}/assets/catalog/door6.jpg (100%) rename {locenice => locenice2}/assets/catalog/door7.jpg (100%) rename {locenice => locenice2}/assets/catalog/intsill0.jpg (100%) rename {locenice => locenice2}/assets/catalog/intsill1.jpg (100%) rename {locenice => locenice2}/assets/catalog/intsill2.jpg (100%) rename {locenice => locenice2}/assets/catalog/lam1.jpg (100%) rename {locenice => locenice2}/assets/catalog/lam2.jpg (100%) rename {locenice => locenice2}/assets/catalog/lam3.jpg (100%) rename {locenice => locenice2}/assets/catalog/lam4.jpg (100%) rename {locenice => locenice2}/assets/catalog/lam5.jpg (100%) rename {locenice => locenice2}/assets/catalog/lam6.jpg (100%) rename {locenice => locenice2}/assets/catalog/lam7.jpg (100%) rename {locenice => locenice2}/assets/catalog/lam8.jpg (100%) rename {locenice => locenice2}/assets/catalog/lam9.jpg (100%) rename {locenice => locenice2}/assets/catalog/page12.jpg (100%) rename {locenice => locenice2}/assets/catalog/page13.jpg (100%) rename {locenice => locenice2}/assets/catalog/page14.jpg (100%) rename {locenice => locenice2}/assets/catalog/page15.jpg (100%) rename {locenice => locenice2}/assets/catalog/page16.jpg (100%) rename {locenice => locenice2}/assets/catalog/page17.jpg (100%) rename {locenice => locenice2}/assets/catalog/page18.jpg (100%) rename {locenice => locenice2}/assets/catalog/page19.jpg (100%) rename {locenice => locenice2}/assets/catalog/page20.jpg (100%) rename {locenice => locenice2}/assets/catalog/page21.jpg (100%) rename {locenice => locenice2}/assets/catalog/page22.jpg (100%) rename {locenice => locenice2}/assets/catalog/page23.jpg (100%) rename {locenice => locenice2}/assets/catalog/page24.jpg (100%) rename {locenice => locenice2}/assets/catalog/page25.jpg (100%) rename {locenice => locenice2}/assets/catalog/prum.jpg (100%) rename {locenice => locenice2}/assets/catalog/requestedDoor.jpg (100%) rename {locenice => locenice2}/assets/catalog/roof0.jpg (100%) rename {locenice => locenice2}/assets/catalog/roof1.jpg (100%) rename {locenice => locenice2}/assets/catalog/roof2.jpg (100%) rename {locenice => locenice2}/assets/catalog/roof3.jpg (100%) rename {locenice => locenice2}/assets/catalog/roof4.jpg (100%) rename {locenice => locenice2}/assets/catalog/tile1.jpg (100%) rename {locenice => locenice2}/assets/catalog/tile2.jpg (100%) rename {locenice => locenice2}/assets/catalog/tile3.jpg (100%) rename {locenice => locenice2}/assets/catalog/tile4.jpg (100%) rename {locenice => locenice2}/assets/catalog/tile5.jpg (100%) rename {locenice => locenice2}/assets/catalog/tile6.jpg (100%) rename {locenice => locenice2}/assets/catalog/tile7.jpg (100%) rename {locenice => locenice2}/assets/catalog/tile8.jpg (100%) rename {locenice => locenice2}/assets/catalog/tile9.jpg (100%) rename {locenice => locenice2}/assets/references/kitchen1.jpg (100%) rename {locenice => locenice2}/assets/references/kitchen2.jpg (100%) rename {locenice => locenice2}/assets/references/plan.jpg (100%) rename {locenice => locenice2}/assets/references/survey.png (100%) rename {locenice => locenice2}/assets/references/view1.jpg (100%) rename {locenice => locenice2}/assets/references/view2.jpg (100%) rename {locenice => locenice2}/assets/ui/image-1.jpg (100%) rename {locenice => locenice2}/blender/prepare_model.py (92%) rename {locenice => locenice2}/css/app.css (100%) rename {locenice => locenice2}/css/web.css (100%) rename {locenice => locenice2}/data/app-config.json (100%) rename {locenice => locenice2}/data/assets.json (100%) rename {locenice => locenice2}/data/catalog.json (100%) rename {locenice => locenice2}/data/references.json (100%) rename {locenice => locenice2}/data/scene.json (100%) rename {locenice => locenice2}/data/site.json (100%) create mode 100644 locenice2/index.php rename {locenice => locenice2}/js/app.js (100%) rename {locenice => locenice2}/js/bootstrap.js (100%) rename {locenice => locenice2}/js/legacy-renderer.js (100%) rename {locenice => locenice2}/js/legacy-shaders.js (100%) rename {locenice => locenice2}/js/model-io.js (100%) rename {locenice => locenice2}/js/project-panel.js (100%) rename {locenice => locenice2}/js/solar.js (100%) rename {locenice => locenice2}/js/three-renderer.js (100%) rename {locenice => locenice2}/models/dum.glb (100%) rename {locenice => locenice2}/tests/data_checks.mjs (91%) rename {locenice => locenice2}/tools/prepare_export.py (98%) rename {locenice => locenice2}/tools/vendor_three.py (93%) diff --git a/locenice/index.php b/locenice/index.php index b9a2a8c..013a633 100644 --- a/locenice/index.php +++ b/locenice/index.php @@ -1,10 +1,3 @@