Files
sml-projects/fonts/underscore.sml

48 lines
1.4 KiB
Standard ML
Raw Normal View History

2025-08-18 01:11:23 +01:00
structure Underscore =
2024-09-30 11:55:43 +01:00
struct
2025-08-18 01:11:23 +01:00
fun xToNdc (xOffset, xpos, scale, halfWidth) =
((xpos * scale + xOffset) - halfWidth) / halfWidth
fun yToNdc (yOffset, ypos, scale, halfHeight) =
~(((ypos * scale + yOffset) - halfHeight) / halfHeight)
fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight) =
2024-09-30 11:55:43 +01:00
let
2025-08-18 01:11:23 +01:00
val halfWidth = windowWidth / 2.0
val halfHeight = windowHeight / 2.0
2024-09-30 11:55:43 +01:00
in
2025-08-18 01:11:23 +01:00
#[
xToNdc (xOffset, 0.000000000000000, scale, halfWidth),
yToNdc (yOffset, 12.000000000000000, scale, halfHeight),
0.000000000000000,
0.000000000000000,
0.000000000000000,
xToNdc (xOffset, 5.000000000000000, scale, halfWidth),
yToNdc (yOffset, 12.000000000000000, scale, halfHeight),
0.000000000000000,
0.000000000000000,
0.000000000000000,
xToNdc (xOffset, 0.000000000000000, scale, halfWidth),
yToNdc (yOffset, 11.000000000000000, scale, halfHeight),
0.000000000000000,
0.000000000000000,
0.000000000000000,
xToNdc (xOffset, 0.000000000000000, scale, halfWidth),
yToNdc (yOffset, 11.000000000000000, scale, halfHeight),
0.000000000000000,
0.000000000000000,
0.000000000000000,
xToNdc (xOffset, 5.000000000000000, scale, halfWidth),
yToNdc (yOffset, 12.000000000000000, scale, halfHeight),
0.000000000000000,
0.000000000000000,
0.000000000000000,
xToNdc (xOffset, 5.000000000000000, scale, halfWidth),
yToNdc (yOffset, 11.000000000000000, scale, halfHeight),
0.000000000000000,
0.000000000000000,
0.000000000000000
]
end
end