- 06 Oct, 2026 5 commits
-
-
Matthias Betz authored
- coordinates.js: scans posList/pos text directly; plain decimals up to 15 digits are converted exactly (integer / power of ten, bit-identical to parseFloat), everything else goes through parseFloat - triangulate.js (moved out of citygml.js): triangles and quadrilaterals without holes are split directly, concave ones at the reflex corner; self-intersecting, degenerate or holed polygons and corners that coincide in libtess's 2D projection stay with libtess On 156 test files vertex counts and colours are identical to before; total area differs by at most 1.7e-6 (other diagonal of non-planar quads). 274 MB LoD2 file: 7.2 s -> 5.8 s in Node. Co-Authored-By:Claude Opus 5.5 (1M context) <noreply@anthropic.com>
-
Matthias Betz authored
Zip archives are rejected again by the format check with a hint to unpack them. Removes the zip reader, its tests and helper, the zip path in loadFile and the zip-only layer renaming (finishLayer name, sourceName). The archive message no longer suggests packing files as .zip. The readStream test for always-ready streams moved to the parser tests. Co-Authored-By:Claude Opus 5.5 (1M context) <noreply@anthropic.com>
-
Matthias Betz authored
The parser only needs element names and coordinate text. The new tokenizer finds markup with native indexOf instead of sax's per-character state machine and slices text only while a LinearRing is read. - 274 MB LoD2 file: 20.1 s -> 6.9 s in Node, 23.3 s -> 8.3 s in the browser - identical output (hash over all vertex positions and colours) on 156 test files incl. CityGML 3.0 - element names are matched case-sensitively as local names - unterminated markup over 64 KB still fails; a truncated file still shows what was read - vendor/sax.js removed Co-Authored-By:Claude Opus 5.5 (1M context) <noreply@anthropic.com>
-
Matthias Betz authored
Co-Authored-By:Claude Opus 5.5 (1M context) <noreply@anthropic.com>
-
Matthias Betz authored
Co-Authored-By:Claude Opus 5.5 (1M context) <noreply@anthropic.com>
-