def filter.window.overlap

gralha-svg-render@0.1.0.1 · svg.bend:4765

import gralha-svg-render@0.1.0.1/svg.bend as Svg
import Base
import gralha-text-scan@0.1.0.1/scan.bend as U

4765def filter.window.overlap(region: Bounds, local: Bounds) -> F32:
4766  Bounds{x0, y0, x1, y1} = region
4767  Bounds{u0, v0, u1, v1} = local
4768  +a0 = u0
4769  +b0 = v0
4770  +a1 = u1
4771  +b1 = v1
4772  +w = U.max(0.0, (U.min(x1, a1) - U.max(x0, a0) : F32))
4773  +h = U.max(0.0, (U.min(y1, b1) - U.max(y0, b0) : F32))
4774  (w * h / U.max(((a1 - a0) * (b1 - b0) : F32), 0.000000001) : F32)

Uses (7)

Used by (1)