From 6f6aa5e6636bc16066c6774099703fd26efd6330 Mon Sep 17 00:00:00 2001 From: Martin Read Date: Tue, 24 Sep 2013 20:43:33 +0100 Subject: [PATCH] Added inward spiral path --- fov.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/fov.c b/fov.c index a204260..e84471d 100644 --- a/fov.c +++ b/fov.c @@ -331,6 +331,66 @@ void resolve_radiance(Radiance *rad) } } break; + case Reo_spiral_in: + for (i = -(rad->radius), j = -(rad->radius), k = rad->radius; k >= 0; ) + { + if (rad->affected[MAX_FOV_RADIUS + i][MAX_FOV_RADIUS + j]) + { + rad->effect_fun(rad->centre_y + i, rad->centre_x + j, rad->pvt); + } + if ((i == 0) && (j == 0)) + { + k = -1; + } + else if (i == -k) + { + if (j == k) + { + ++i; + } + else + { + ++j; + } + } + else if (j == k) + { + if (i == k) + { + --j; + } + else + { + ++i; + } + } + else if (i == k) + { + if (j == -k) + { + --i; + } + else + { + --j; + } + } + else if (j == -k) + { + if (i == 1 - k) + { + --k; + i = -k; + j = -k; + } + else + { + --i; + } + } + } + break; + default: print_msg("FATAL: attempt to use unimplemented radiance evaluation order %d\n", rad->order); abort(); -- 2.11.0