1. 06 Oct, 2026 1 commit
    • Matthias Betz's avatar
      parse coordinates without split/parseFloat, triangulate simple quads directly · 4bdd547a
      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: default avatarClaude Opus 5.5 (1M context) <noreply@anthropic.com>
      4bdd547a