add function to quad tree to turn items into strings (for later saving to file)

This commit is contained in:
2025-07-12 03:38:20 +01:00
parent 21512cc979
commit 04bb7a18c0
15 changed files with 50 additions and 15 deletions

View 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