CameraRec:
TYPE ~
RECORD [
data: REF ANY ← NIL, -- client data
proc: CameraProc ← NIL, -- client proc called when camera changed
view: Matrix ← NIL, -- tranformed matrix by viewport
matrix: Matrix ← NIL, -- camera matrix
fieldOfView: Control ← NIL, -- field of view
zDistance: Control ← NIL, -- distance of eye along negative z-axis
x: Control ← NIL, -- x coordinate of origin
y: Control ← NIL, -- y coordinate of origin
z: Control ← NIL, -- z coordinate of origin
xGlobal: Control ← NIL, -- rotation about global x-axis
yGlobal: Control ← NIL, -- rotation about global y-axis
zGlobal: Control ← NIL, -- rotation about global z-axis
xLocal: Control ← NIL, -- rotation about local x-axis
yLocal: Control ← NIL, -- rotation about local y-axis
zLocal: Control ← NIL, -- rotation about local z-axis
xMove: Control ← NIL, -- x-translation
yMove: Control ← NIL, -- y-translation
zMove: Control ← NIL, -- z-translation
scale: Control ← NIL, -- scale about local origin
hScreen: Control ← NIL, -- horizontal screen translation
vScreen: Control ← NIL, -- vertical screen translation
lastMoused: Control ← NIL -- last control moused
];