customize default return value of matrix-get when peeking outside

This commit is contained in:
2021-12-11 10:49:04 +01:00
parent a1266ca648
commit f0d18d31ce
2 changed files with 22 additions and 13 deletions

View File

@@ -17,10 +17,10 @@
(lambda (y line)
(vector-for-each
(lambda (x altitude)
(let [(left (matrix-get heightmap (- x 1) y))
(right (matrix-get heightmap (+ x 1) y))
(up (matrix-get heightmap x (- y 1)))
(down (matrix-get heightmap x (+ y 1)))]
(let [(left (matrix-get heightmap (- x 1) y 9))
(right (matrix-get heightmap (+ x 1) y 9))
(up (matrix-get heightmap x (- y 1) 9))
(down (matrix-get heightmap x (+ y 1) 9))]
(when (and (< altitude left)
(< altitude right)
(< altitude up)
@@ -49,7 +49,7 @@
(let [(ofs (offset x y))]
(when (= (vector-ref visited ofs) 0)
(vector-set! visited ofs 1)
(when (< (matrix-get heightmap x y) 9)
(when (< (matrix-get heightmap x y 9) 9)
(closure x y)
(when (> x 0) (flood-fill (- x 1) y))
(when (< x width-1) (flood-fill (+ x 1) y))
@@ -103,7 +103,7 @@
(let y-loop [(y 0)]
(let x-loop [(x 0)]
(let [(ofs (offset x y))
(gray-level (* (matrix-get heightmap x y) 20))]
(gray-level (* (matrix-get heightmap x y 9) 20))]
; red channel
(vector-set! data ofs gray-level)
; green channel