add function to quad tree to turn items into strings (for later saving to file)
This commit is contained in:
35
fcore/parser/parse-grid.sml
Normal file
35
fcore/parser/parse-grid.sml
Normal file
@@ -0,0 +1,35 @@
|
||||
structure ParseGrid =
|
||||
struct
|
||||
fun make (canvasWidth, canvasHeight) =
|
||||
let
|
||||
val maxPoints = Int.max (canvasWidth, canvasHeight)
|
||||
val emptyYAxis = Vector.tabulate (maxPoints, fn _ => {r = 0, g = 0, b = 0, a = 0})
|
||||
in
|
||||
Vector.tabulate (maxPoints, fn _ => emptyYAxis)
|
||||
end
|
||||
|
||||
local
|
||||
fun loopY (yAxis, x, ex, y, ey, colour) =
|
||||
if y > ey then yAxis
|
||||
else
|
||||
let
|
||||
val yAxis = Vector.update (yAxis, y, colour)
|
||||
in
|
||||
loopY (yAxis, x, ex, y + 1, ey, colour)
|
||||
end
|
||||
|
||||
fun loopX (grid, x, ex, y, ey, colour) =
|
||||
if x > ex then grid
|
||||
else
|
||||
let
|
||||
val yAxis = Vector.sub (grid, x)
|
||||
val yAxis = loopY (yAxis, x, ex, y, ey, colour)
|
||||
val grid = Vector.update (grid, x, yAxis)
|
||||
in
|
||||
loopX (grid, x + 1, ex, y, ey, colour)
|
||||
end
|
||||
in
|
||||
fun applyItem (grid, x, y, ex, ey, colour) =
|
||||
loopX (grid, x, ex, y, ey, colour)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user