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