• 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