35 {
38
39
41
42
43 for (int dy = -1; dy <= 1; ++dy) {
44 for (int dx = -1; dx <= 1; ++dx) {
45 i32 gx = cell_x + dx;
46 i32 gy = cell_y + dy;
47
48 i32 fx, fy;
49 feature_point(gx, gy, fx, fy);
50
51 i32 feature_x = (gx << 15) + fx;
52 i32 feature_y = (gy << 15) + fy;
53
54 i32 dx_q15 =
x - feature_x;
55 i32 dy_q15 =
y - feature_y;
56
57
58
59 i32 dist =
60 q15_abs(dx_q15) + q15_abs(dy_q15);
61
62 if (dist < min_dist)
63 min_dist = dist;
64 }
65 }
66
67
68 return (min_dist << 15) / (2 *
Q15_ONE);
69}
static constexpr T max() FL_NO_EXCEPT