def mask.box
gralha-coverage@0.1.0.1 · cover.bend:1171
import gralha-coverage@0.1.0.1/cover.bend as Cover
import Base
import gralha-text-scan@0.1.0.1/scan.bend as U
1171def mask.box(+xs: List<&2, CovLine>, +even: Bool, +width: U32, +height: U32, +sub: U32, box: CovBox, +trees: Bool) -> CovMask:
1172 CovBox{x0, y0, x1, y1} = box
1173 +gx = F32.to_u32(U.clamp(F32.floor(x0), 0.0, U32.to_f32(width)))
1174 +gy = F32.to_u32(U.clamp(F32.floor(y0), 0.0, U32.to_f32(height)))
1175 +ex = F32.to_u32(U.clamp(F32.ceil(x1), 0.0, U32.to_f32(width)))
1176 +ey = F32.to_u32(U.clamp(F32.ceil(y1), 0.0, U32.to_f32(height)))
1177 U.branch(CovMask, U32.is_ge(gx, ex) || U32.is_ge(gy, ey), _ => CovMask{0, 0, 0, 0, 0, 0n, CovTreed{CovFlat{0.0}}, True{}},
1178 _ => mask.build(xs, gx, gy, (ex - gx : U32), (ey - gy : U32), even, sub, trees))