Files
sml-projects/fonts/exclamation-mark.sml
2024-09-13 11:28:20 +01:00

147 lines
12 KiB
Standard ML

structure ExclamationMark =
struct
fun lerp (startX, startY, drawWidth, drawHeight, windowWidth, windowHeight) : Real32.real vector =
let
val startX = Real32.fromInt startX
val startY = Real32.fromInt startY
val endY = windowHeight - startY
val startY = windowHeight - (startY + drawHeight)
val endX = startX + drawWidth
val windowHeight = windowHeight / 2.0
val windowWidth = windowWidth / 2.0
in
#[ (((startX * (1.0 - 0.533333301544)) + (endX * 0.533333301544)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.173333376646)) + (endY * 0.173333376646)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.519999980927)) + (endX * 0.519999980927)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.186666697264)) + (endY * 0.186666697264)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.519999980927)) + (endX * 0.519999980927)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.173333376646)) + (endY * 0.173333376646)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.466666698456)) + (endX * 0.466666698456)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.173333376646)) + (endY * 0.173333376646)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.479999959469)) + (endX * 0.479999959469)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.173333376646)) + (endY * 0.173333376646)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.479999959469)) + (endX * 0.479999959469)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.186666697264)) + (endY * 0.186666697264)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.5)) + (endX * 0.5)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.19333332777)) + (endY * 0.19333332777)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.513333320618)) + (endX * 0.513333320618)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.19333332777)) + (endY * 0.19333332777)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.513333320618)) + (endX * 0.513333320618)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.186666697264)) + (endY * 0.186666697264)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.486666679382)) + (endX * 0.486666679382)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.186666697264)) + (endY * 0.186666697264)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.486666679382)) + (endX * 0.486666679382)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.19333332777)) + (endY * 0.19333332777)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.5)) + (endX * 0.5)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.19333332777)) + (endY * 0.19333332777)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.533333301544)) + (endX * 0.533333301544)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.120000034571)) + (endY * 0.120000034571)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.533333301544)) + (endX * 0.533333301544)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.126666724682)) + (endY * 0.126666724682)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.466666698456)) + (endX * 0.466666698456)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.126666724682)) + (endY * 0.126666724682)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.466666698456)) + (endX * 0.466666698456)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.126666724682)) + (endY * 0.126666724682)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.466666698456)) + (endX * 0.466666698456)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.120000034571)) + (endY * 0.120000034571)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.533333301544)) + (endX * 0.533333301544)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.120000034571)) + (endY * 0.120000034571)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.513333320618)) + (endX * 0.513333320618)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.106666684151)) + (endY * 0.106666684151)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.513333320618)) + (endX * 0.513333320618)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.113333374262)) + (endY * 0.113333374262)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.486666679382)) + (endX * 0.486666679382)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.113333374262)) + (endY * 0.113333374262)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.486666679382)) + (endX * 0.486666679382)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.113333374262)) + (endY * 0.113333374262)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.486666679382)) + (endX * 0.486666679382)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.106666684151)) + (endY * 0.106666684151)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.513333320618)) + (endX * 0.513333320618)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.106666684151)) + (endY * 0.106666684151)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.46250000596)) + (endX * 0.46250000596)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.137499988079)) + (endY * 0.137499988079)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.46250000596)) + (endX * 0.46250000596)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.125)) + (endY * 0.125)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.47499999404)) + (endX * 0.47499999404)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.125)) + (endY * 0.125)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.47499999404)) + (endX * 0.47499999404)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.175000011921)) + (endY * 0.175000011921)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.46250000596)) + (endX * 0.46250000596)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.175000011921)) + (endY * 0.175000011921)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.46250000596)) + (endX * 0.46250000596)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.16249999404)) + (endY * 0.16249999404)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.487500011921)) + (endX * 0.487500011921)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.1875)) + (endY * 0.1875)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.47499999404)) + (endX * 0.47499999404)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.1875)) + (endY * 0.1875)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.47499999404)) + (endX * 0.47499999404)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.175000011921)) + (endY * 0.175000011921)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.524999976158)) + (endX * 0.524999976158)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.175000011921)) + (endY * 0.175000011921)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.524999976158)) + (endX * 0.524999976158)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.1875)) + (endY * 0.1875)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.512499988079)) + (endX * 0.512499988079)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.1875)) + (endY * 0.1875)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.537500023842)) + (endX * 0.537500023842)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.16249999404)) + (endY * 0.16249999404)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.537500023842)) + (endX * 0.537500023842)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.175000011921)) + (endY * 0.175000011921)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.524999976158)) + (endX * 0.524999976158)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.175000011921)) + (endY * 0.175000011921)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.524999976158)) + (endX * 0.524999976158)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.125)) + (endY * 0.125)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.537500023842)) + (endX * 0.537500023842)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.125)) + (endY * 0.125)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.537500023842)) + (endX * 0.537500023842)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.137499988079)) + (endY * 0.137499988079)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.512499988079)) + (endX * 0.512499988079)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.112500011921)) + (endY * 0.112500011921)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.524999976158)) + (endX * 0.524999976158)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.112500011921)) + (endY * 0.112500011921)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.524999976158)) + (endX * 0.524999976158)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.125)) + (endY * 0.125)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.47499999404)) + (endX * 0.47499999404)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.112500011921)) + (endY * 0.112500011921)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.47499999404)) + (endX * 0.47499999404)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.125)) + (endY * 0.125)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.487500011921)) + (endX * 0.487500011921)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.112500011921)) + (endY * 0.112500011921)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.5)) + (endX * 0.5)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.199999988079)) + (endY * 0.199999988079)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.449999988079)) + (endX * 0.449999988079)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.149999946356)) + (endY * 0.149999946356)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.5)) + (endX * 0.5)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.0999999940395)) + (endY * 0.0999999940395)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.5)) + (endX * 0.5)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.0999999940395)) + (endY * 0.0999999940395)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.550000011921)) + (endX * 0.550000011921)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.149999946356)) + (endY * 0.149999946356)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.5)) + (endX * 0.5)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.199999988079)) + (endY * 0.199999988079)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.550000011921)) + (endX * 0.550000011921)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.300000011921)) + (endY * 0.300000011921)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.600000023842)) + (endX * 0.600000023842)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.75)) + (endY * 0.75)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.40000000596)) + (endX * 0.40000000596)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.75)) + (endY * 0.75)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.40000000596)) + (endX * 0.40000000596)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.75)) + (endY * 0.75)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.449999988079)) + (endX * 0.449999988079)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.300000011921)) + (endY * 0.300000011921)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.550000011921)) + (endX * 0.550000011921)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.300000011921)) + (endY * 0.300000011921)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.40000000596)) + (endX * 0.40000000596)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.75)) + (endY * 0.75)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.600000023842)) + (endX * 0.600000023842)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.75)) + (endY * 0.75)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.600000023842)) + (endX * 0.600000023842)) / windowWidth) - 1.0,
(((startY * (1.0 - 1.0)) + (endY * 1.0)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.40000000596)) + (endX * 0.40000000596)) / windowWidth) - 1.0,
(((startY * (1.0 - 1.0)) + (endY * 1.0)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.600000023842)) + (endX * 0.600000023842)) / windowWidth) - 1.0,
(((startY * (1.0 - 1.0)) + (endY * 1.0)) / windowHeight) - 1.0,
(((startX * (1.0 - 0.40000000596)) + (endX * 0.40000000596)) / windowWidth) - 1.0,
(((startY * (1.0 - 0.75)) + (endY * 0.75)) / windowHeight) - 1.0
]
end
end