Files
sml-projects/dotscape/fcore/ndc.sml
Humza Shahid f3a4e15ed5 Add 'dotscape/' from commit 'f306501a68a51b634e895c5fdac70788ae899d75'
git-subtree-dir: dotscape
git-subtree-mainline: 6b91d64fc3
git-subtree-split: f306501a68
2026-04-24 00:30:08 +01:00

39 lines
833 B
Standard ML

structure Ndc =
struct
(* ndc = normalised device coordinates *)
fun ltrbToVertex (left, top, right, bottom) =
#[ left, bottom
, right, bottom
, left, top
, left, top
, right, bottom
, right, top
]
fun ltrbToVertexRgb (startX, startY, endX, endY, r, g, b) =
#[ startX, endY, r, g, b
, endX, endY, r, g, b
, startX, startY, r, g, b
, startX, startY, r, g, b
, endX, endY, r, g, b
, endX, startY, r, g, b
]
fun fromPixelX (xpos, windowWidth, windowHeight) =
let
val halfWidth = Real32.fromInt windowWidth / 2.0
in
(xpos - halfWidth) / halfWidth
end
fun fromPixelY (ypos, windowWidth, windowHeight) =
let
val halfHeight = Real32.fromInt windowHeight / 2.0
in
~((ypos - halfHeight) / halfHeight)
end
end