output from check_mat.c xmin=-2.000000, xmax=2.000000 ymin=-2.666667, ymax=2.666667 near=2.000000, far =200.000000 perspective pmatrix m[ 0.. 3] 1.000000, 0.000000, 0.000000, 0.000000 m[ 4.. 7] 0.000000, 0.750000, 0.000000, 0.000000 m[ 8..11] 0.000000, 0.000000, -1.020202, -4.040404 m[12..15] 0.000000, 0.000000, -1.000000, 0.000000 mmatrix identity m[ 0.. 3] 1.000000, 0.000000, 0.000000, 0.000000 m[ 4.. 7] 0.000000, 1.000000, 0.000000, 0.000000 m[ 8..11] 0.000000, 0.000000, 1.000000, 0.000000 m[12..15] 0.000000, 0.000000, 0.000000, 1.000000 mmatrix * p=0.500000, 1.500000, 2.500000, 1.000000 equals pp=0.500000, 1.500000, 2.500000, 1.000000 mmatrix 30 deg rotated about X m[ 0.. 3] 1.000000, 0.000000, 0.000000, 0.000000 m[ 4.. 7] 0.000000, 0.866026, -0.500000, 0.000000 m[ 8..11] 0.000000, 0.500000, 0.866026, 0.000000 m[12..15] 0.000000, 0.000000, 0.000000, 1.000000 mmatrix * p=0.500000, 1.500000, 2.500000, 1.000000 equals pp=0.500000, 0.049039, 2.915063, 1.000000 mmatrix rotated 30 deg about X and Y m[ 0.. 3] 0.866026, 0.000000, 0.500000, 0.000000 m[ 4.. 7] 0.250000, 0.866026, -0.433012, 0.000000 m[ 8..11] -0.433012, 0.500000, 0.750000, 0.000000 m[12..15] 0.000000, 0.000000, 0.000000, 1.000000 mmatrix * p=0.500000, 1.500000, 2.500000, 1.000000 equals pp=1.683012, 0.341507, 2.408494, 1.000000 mmatrix rotated 30 deg about X,Y, and Z m[ 0.. 3] 0.750000, -0.433012, 0.500000, 0.000000 m[ 4.. 7] 0.649519, 0.625001, -0.433012, 0.000000 m[ 8..11] -0.125000, 0.649519, 0.750000, 0.000000 m[12..15] 0.000000, 0.000000, 0.000000, 1.000000 mmatrix * p=0.500000, 1.500000, 2.500000, 1.000000 equals pp=0.975481, 0.179729, 2.786779, 1.000000 tmatrix m[ 0.. 3] 1.000000, 0.000000, 0.000000, 1.000000 m[ 4.. 7] 0.000000, 1.000000, 0.000000, 2.000000 m[ 8..11] 0.000000, 0.000000, 1.000000, -20.000000 m[12..15] 0.000000, 0.000000, 0.000000, 1.000000 mmatrix rotated and translated m[ 0.. 3] 0.750000, -0.433012, 0.500000, -10.116017 m[ 4.. 7] 0.649519, 0.625001, -0.433012, 10.559770 m[ 8..11] -0.125000, 0.649519, 0.750000, -13.825971 m[12..15] 0.000000, 0.000000, 0.000000, 1.000000 mmatrix * p=0.500000, 1.500000, 2.500000, 1.000000 equals pp=-9.140536, 10.739499, -11.039192, 1.000000 pmatrix * mmatrix * p=0.500000, 1.500000, 2.500000, 1.000000 equals pp=-9.140536, 8.054624, 7.221802, 11.039192 normal pp=-0.828008, 0.729639, 0.654197, 1.000000 x/z,y/z pp=-1.265686, 1.115320 x scr, y scr=25.798841, 345.927778 at relative z=0.827098) width, height =300.000000, 400.000000 from x=0, y=0 in lower left now check corners pmatrix * pll=-2.000000, -2.666667, -2.000000, 1.000000 pp=-2.000000, -2.000000, -2.000000, 2.000000, x/z=1.000000, y/z=1.000000 x scr, y scr=0.000000, 0.000000 at z=-0.000000 pmatrix * pur=2.000000, 2.666667, -2.000000, 1.000000 pp=2.000000, 2.000000, -2.000000, 2.000000, x/z=-1.000000, y/z=-1.000000 x scr, y scr=300.000000, 400.000000 at z=-0.000000 pmatrix * pll=200.000000, -266.666667, -200.000000, 1.000000 pp=200.000000, -200.000000, 200.000000, 200.000000, x/z=1.000000, y/z=-1.000000 x scr, y scr=300.000000, 0.000000 at z=1.000000 pmatrix * purf=-200.000000, 266.666667, -200.000000, 1.000000 pp=-200.000000, 200.000000, 200.000000, 200.000000, x/z=-1.000000, y/z=1.000000 x scr, y scr=0.000000, 400.000000 at z=1.000000