24 image_size.
contains(uv),
"{} vs {}", image_size, uv.transpose());
27 float frac_u = std::modf(uv.x(), &iu);
28 float frac_v = std::modf(uv.y(), &iv);
32 bool u_corner_case = u == image_size.
width - 1;
33 bool v_corner_case = v == image_size.
height - 1;
35 TT val00 = image(u, v);
36 TT val01 = v_corner_case ? val00 : image(u, v + 1);
37 TT val10 = u_corner_case ? val00 : image(u + 1, v);
38 TT val11 = u_corner_case || v_corner_case ? val00 : image(u + 1, v + 1);
40 TT val = (1.f - frac_u) * (1.f - frac_v) * val00
41 + (1.f - frac_u) * frac_v * val01
42 + frac_u * (1.f - frac_v) * val10
43 + frac_u * frac_v * val11;