add layer field to app type, as preparation for switching to layer tree
This commit is contained in:
@@ -47,6 +47,7 @@ struct
|
||||
, g = 0
|
||||
, b = 0
|
||||
, a = 1
|
||||
, layer = 0
|
||||
, modalNum = 0
|
||||
, undo = []
|
||||
, redo = []
|
||||
|
||||
@@ -33,6 +33,7 @@ struct
|
||||
, g: int
|
||||
, b: int
|
||||
, a: int
|
||||
, layer: int
|
||||
, modalNum: int
|
||||
, undo: square list
|
||||
, redo: square list
|
||||
|
||||
@@ -51,6 +51,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -80,6 +81,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = modalNum
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -110,6 +112,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -139,6 +142,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = modalNum
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -169,6 +173,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -195,6 +200,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = modalNum
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -225,6 +231,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -251,6 +258,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = modalNum
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -281,6 +289,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -307,6 +316,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = modalNum
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -337,6 +347,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -367,6 +378,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = modalNum
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -397,6 +409,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -423,6 +436,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = modalNum
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -453,6 +467,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -479,6 +494,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = modalNum
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -509,6 +525,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -535,6 +552,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = modalNum
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -565,6 +583,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -591,6 +610,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = modalNum
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -621,6 +641,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -647,6 +668,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = modalNum
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -677,6 +699,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum = prevNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -705,6 +728,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = newNum
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -735,6 +759,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -763,6 +788,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = 0
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -793,6 +819,7 @@ struct
|
||||
, g = _
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -821,6 +848,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = 0
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -851,6 +879,7 @@ struct
|
||||
, g
|
||||
, b = _
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -879,6 +908,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = 0
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -909,6 +939,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a = _
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -937,12 +968,73 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = 0
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
}
|
||||
end
|
||||
|
||||
fun layer (app: app_type) : app_type =
|
||||
let
|
||||
val
|
||||
{ mode
|
||||
, mouseX
|
||||
, mouseY
|
||||
, xClickPoints
|
||||
, yClickPoints
|
||||
, windowWidth
|
||||
, windowHeight
|
||||
, squares
|
||||
, arrowX
|
||||
, arrowY
|
||||
, canvasWidth
|
||||
, canvasHeight
|
||||
|
||||
, showGraph
|
||||
, openFilePath
|
||||
, fileBrowser
|
||||
, fileBrowserIdx
|
||||
, r
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer = _
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
} = app
|
||||
|
||||
val layer = modalNum
|
||||
in
|
||||
{ mode = mode
|
||||
, mouseX = mouseX
|
||||
, mouseY = mouseY
|
||||
, squares = squares
|
||||
, arrowX = arrowX
|
||||
, arrowY = arrowY
|
||||
, canvasWidth = canvasWidth
|
||||
, canvasHeight = canvasHeight
|
||||
, windowWidth = windowWidth
|
||||
, windowHeight = windowHeight
|
||||
, xClickPoints = xClickPoints
|
||||
, yClickPoints = yClickPoints
|
||||
|
||||
, showGraph = showGraph
|
||||
, openFilePath = openFilePath
|
||||
, fileBrowser = fileBrowser
|
||||
, fileBrowserIdx = fileBrowserIdx
|
||||
, r = r
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = modalNum
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
}
|
||||
end
|
||||
|
||||
fun canvasWidth (app: app_type, newCanvasWidth) =
|
||||
let
|
||||
val
|
||||
@@ -967,6 +1059,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -999,6 +1092,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = 0
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -1029,6 +1123,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -1061,6 +1156,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = 0
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -1091,6 +1187,7 @@ struct
|
||||
, g
|
||||
, b
|
||||
, a
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -1123,6 +1220,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = 0
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
@@ -1153,6 +1251,7 @@ struct
|
||||
, g = _
|
||||
, b = _
|
||||
, a = _
|
||||
, layer
|
||||
, modalNum
|
||||
, undo
|
||||
, redo
|
||||
@@ -1179,6 +1278,7 @@ struct
|
||||
, g = g
|
||||
, b = b
|
||||
, a = a
|
||||
, layer = layer
|
||||
, modalNum = 0
|
||||
, undo = undo
|
||||
, redo = redo
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
structure LayerTree =
|
||||
struct
|
||||
type square = {r: int, g: int, b: int, a: int}
|
||||
val emptyPixel = {r = 0, g = 0, b = 0, a = 0}
|
||||
|
||||
type grid = square vector vector
|
||||
|
||||
fun isBlank ({a, ...}: square) = a = 0
|
||||
|
||||
datatype tree =
|
||||
NODE of {key: int, value: grid, left: tree, right: tree}
|
||||
| LEAF
|
||||
|
||||
val emptyPixel = {r = 0, g = 0, b = 0, a = 0}
|
||||
|
||||
val emptyTree = LEAF
|
||||
|
||||
fun isBlank ({a, ...}: square) = a = 0
|
||||
|
||||
fun insert (newKey, newValue, tree) =
|
||||
case tree of
|
||||
LEAF => NODE {key = newKey, value = newValue, left = LEAF, right = LEAF}
|
||||
|
||||
Reference in New Issue
Block a user