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)

Uses (14)

Used by (1)