def mask.uniform.in
gralha-coverage@0.1.0.1 · cover.bend:141
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
141def mask.uniform.in(+m: CovMask, +x0: U32, +y0: U32, +x1: U32, +y1: U32) -> F32:
142 CovMask{x, y, w, h, size, depth, data, present} = m
143 +mx = x
144 +my = y
145 +sz = size
146 +outside = U32.is_lt(x0, mx) || U32.is_lt(y0, my) || U32.is_gt(x1, (mx + sz : U32)) || U32.is_gt(y1, (my + sz : U32))
147 +inside = data.uniform(data, mx, my, sz, U.max.u32(x0, mx), U.max.u32(y0, my), U.min.u32(x1, (mx + sz : U32)), U.min.u32(y1, (my + sz : U32)))
148 +v = U.choose(F32, F32.is_gt(inside, 1.5), 0.0, inside)
149 U.choose(F32, outside && F32.is_gt(v, 0.0), F32.neg(1.0), v)