/ / /
| 29 | /***************************************************************/ |
| 30 | /***************************************************************/ |
| 31 | static ivec vec2diel_floor(const vec &pt, double a, const ivec &equal_shift) { |
| 32 | ivec ipt(pt.dim); |
| 33 | LOOP_OVER_DIRECTIONS(pt.dim, d) { |
| 34 | ipt.set_direction(d, 1 + 2 * int(floor(pt.in_direction(d) * a - .5))); |
| 35 | if (ipt.in_direction(d) == pt.in_direction(d)) |
| 36 | ipt.set_direction(d, ipt.in_direction(d) + equal_shift.in_direction(d)); |
| 37 | } |
| 38 | return ipt; |
| 39 | } |
| 40 | static ivec vec2diel_ceil(const vec &pt, double a, const ivec &equal_shift) { |
| 41 | ivec ipt(pt.dim); |
| 42 | LOOP_OVER_DIRECTIONS(pt.dim, d) { |