-+-+-+-+-+-+-+-+ START OF PART 126 -+-+-+-+-+-+-+-+ XFa(viewrefpoint\(2\))64 b Fq(view)11 b(reference)i(point.)25 X275 y(IN)91 b(REAL)119 b Fa(viewupvector\(2\))46 b Fq(view)11 Xb(up)g(vector)n(.)25 324 y(IN)91 b(INTEGER)50 b Fa(operation)149 Xb Fq(concatenation)11 b(operation.)25 374 y(OUT)50 b(REAL)119 Xb Fa(matrix\(3,)9 b(3\))119 b Fq(3x3)11 b(matrix.)25 424 y(OUT)50 Xb(INTEGER)g Fa(error)223 b Fq(error)11 b(code.)0 493 y(This)j(function)e X(computes)j(a)f(2D)g(PHIGS)g(view)g(orientation)e(matrix)i(on)f(the)h(basis) Vg X(of)g(a)h(speci\256ed)f(view)g(reference)i(point)0 543 y(\()p XFi(viewrefpoint)p Fq(\))d(and)e(a)h(view)f(up)g(vector)g(\()p XFi(viewupvector)p Fq(\).)17 b(If)11 b(the)g(function)f(succeeds,)j XFi(error)g Fq(is)e(set)g(to)g(0.)k(Otherwise,)0 593 y Fi(error)d XFq(is)f(63)g(if)g(the)g(view)g(up)g(vector)g(is)h(null.)p 1207 X690 660 2 v 1207 769 2 80 v 1221 744 a Fb(ptkf_evalvieworie)o(nta)o(ti)o(on3 V) Xp 1864 769 V 1207 771 660 2 v 11 845 a Fq(SUBROUTINE)g Fp X(ptkf_evalvieworientation3)d Fq(\(viewrefpoint,)21 b(viewplanenormal,)i X(viewupvector)n(,)g(opera-)761 895 y(tion,)10 b(matrix,)h(error\))25 X945 y(IN)91 b(REAL)119 b Fa(viewrefpoint\(3\))k Fq(view)11 Xb(reference)i(point.)25 995 y(IN)91 b(REAL)119 b Fa(viewplanenormal\(3)o(\)) X47 b Fq(view)11 b(plane)g(normal.)25 1045 y(IN)91 b(REAL)119 Xb Fa(viewupvector\(3\))105 b Fq(view)11 b(up)g(vector)n(.)25 X1095 y(IN)91 b(INTEGER)50 b Fa(operation)208 b Fq(concatenation)11 Xb(operation.)25 1145 y(OUT)50 b(REAL)119 b Fa(matrix\(4,)9 Xb(4\))178 b Fq(4x4)11 b(matrix.)25 1194 y(OUT)50 b(INTEGER)g XFa(error)282 b Fq(error)11 b(code.)0 1263 y(This)j(function)e(computes)j(a)f X(3D)g(PHIGS)g(view)g(orientation)e(matrix)i(on)f(the)h(basis)g(of)g(a)h X(speci\256ed)f(view)g(reference)i(point)0 1313 y(\()p Fi(viewrefpoint)p XFq(\),)d(a)f(view)f(plane)g(normal)f(\()p Fi(viewplanenormal)p XFq(\))k(and)d(a)g(view)g(up)g(vector)g(\()p Fi(viewupvector)p XFq(\).)17 b(If)11 b(the)g(func-)0 1363 y(tion)e(succeeds,)j XFi(error)e Fq(is)g(set)g(to)f(0.)15 b(Otherwise,)10 b Fi(error)h XFq(is)f(61)f(if)h(the)f(view)h(plane)g(normal)f(is)h(null,)f(63)g(if)h(the)f X(view)h(up)f(vector)0 1413 y(is)i(null,)f(and)i(58)f(if)g(the)g(cross)g X(product)g(of)g(the)g(view)g(up)g(vector)g(and)g(the)g(view)h(plane)f(normal V) Xg(is)g(null.)p 1230 1510 636 2 v 1230 1589 2 80 v 1244 1564 Xa Fb(ptkf_examinestac)o(km)o(atri)o(x)p 1864 1589 V 1230 1591 X636 2 v 11 1665 a Fq(SUBROUTINE)h Fp(ptkf_examinestackmatrix)d XFq(\(matrix\))25 1765 y(IN)50 b(REAL)g Fa(matrix\(3,)9 b(3\))49 Xb Fq(3x3)11 b(matrix.)0 1864 y(This)g(function)f(returns)h(the)g(top)f(entry V) Xh(on)g(the)g(transformation)f(stack.)16 b(The)c(stack)g(is)f(not)f X(disturbed.)p 1200 1961 666 2 v 1200 2040 2 80 v 1215 2015 Xa Fb(ptkf_examine)o(stac)o(kma)o(tri)o(x3)p 1864 2040 V 1200 X2042 666 2 v 11 2116 a Fq(SUBROUTINE)i Fp(ptkf_examinestackmatrix3)d XFq(\(matrix\))25 2216 y(IN)50 b(REAL)g Fa(matrix\(4,)9 b(4\))49 Xb Fq(4x4)11 b(matrix.)0 2316 y(This)g(function)f(returns)h(the)g(top)f(entry V) Xh(on)g(the)g(transformation)f(stack.)16 b(The)c(stack)g(is)f(not)f X(disturbed.)0 2956 y(13th)22 b(May)m(,)12 b(1992)626 b(171)828 Xb(2.01)p eop X%%Page: 172 173 Xbop 0 -137 a Fq(PHIGS)11 b(T)m(oolkit)f(User)i(Manual)1235 Xb(PTK/100)p 1416 -19 450 2 v 1416 60 2 80 v 1430 35 a Fb(ptkf_invertmatri)o X(x)p 1864 60 V 1416 62 450 2 v 11 136 a Fq(SUBROUTINE)12 b XFp(ptkf_invertmatrix)e Fq(\(a,)i(ainverse,)g(error\))25 225 Xy(IN)91 b(REAL)119 b Fa(a\(3,)10 b(3\))163 b Fq(3x3)11 b(matrix.)25 X275 y(OUT)50 b(REAL)119 b Fa(ainverse\(3,)8 b(3\))49 b Fq(3x3)11 Xb(matrix.)25 324 y(OUT)50 b(INTEGER)g Fa(error)191 b Fq(error)11 Xb(code.)0 393 y(This)16 b(function)g(computes)g(the)h(inverse)f(of)g(the)h(3 V) Xc Fl(\264)g Fq(3)k(matrix)f Fi(a)p Fq(,)i(returning)d(the)i(result)f(in)g XFi(ainverse)p Fq(.)32 b(If)17 b(matrix)f Fi(a)g Fq(is)0 443 Xy(singular)n(,)11 b(then)g Fi(error)h Fq(is)f(set)h(to)e Fl(-)p XFq(1,)i(and)f Fi(ainverse)i Fq(is)e(unde\256ned,)g(otherwise)g XFi(error)i Fq(is)e(set)g(to)g(0.)p 1386 540 480 2 v 1386 619 X2 80 v 1400 594 a Fb(ptkf_invertmatri)o(x3)p 1864 619 V 1386 X621 480 2 v 11 695 a Fq(SUBROUTINE)h Fp(ptkf_invertmatrix3)d XFq(\(a,)j(ainverse,)h(error\))25 784 y(IN)91 b(REAL)119 b Fa(a\(4,)10 Xb(4\))163 b Fq(4x4)11 b(matrix.)25 834 y(OUT)50 b(REAL)119 Xb Fa(ainverse\(4,)8 b(4\))49 b Fq(4x4)11 b(matrix.)25 884 y(OUT)50 Xb(INTEGER)g Fa(error)191 b Fq(error)11 b(code.)0 953 y(This)16 Xb(function)g(computes)g(the)h(inverse)f(of)g(the)h(4)c Fl(\264)g XFq(4)k(matrix)f Fi(a)p Fq(,)i(returning)d(the)i(result)f(in)g XFi(ainverse)p Fq(.)32 b(If)17 b(matrix)f Fi(a)g Fq(is)0 1003 Xy(singular)n(,)11 b(then)g Fi(error)h Fq(is)f(set)h(to)e Fl(-)p XFq(1,)i(and)f Fi(ainverse)i Fq(is)e(unde\256ned,)g(otherwise)g XFi(error)i Fq(is)e(set)g(to)g(0.)p 1599 1100 268 2 v 1599 1179 X2 80 v 1613 1154 a Fb(ptkf_limit)p 1864 1179 V 1599 1181 268 X2 v 11 1255 a Fq(SUBROUTINE)h Fp(ptkf_limit)d Fq(\(xmin,)i(xmax,)h(ymin,)f X(ymax,)h(lt\))25 1344 y(IN)91 b(REAL)50 b Fa(xmin)59 b Fq(minimum)11 Xb(x)g(coordinate.)25 1394 y(IN)91 b(REAL)50 b Fa(xmax)f Fq(maximum)12 Xb(x)f(coordinate.)25 1443 y(IN)91 b(REAL)50 b Fa(ymin)59 b XFq(minimum)11 b(y)g(coordinate.)25 1493 y(IN)91 b(REAL)50 b XFa(ymax)f Fq(maximum)12 b(y)f(coordinate.)25 1543 y(OUT)50 Xb(REAL)g Fa(lt\(4\))72 b Fq(real)12 b(array)m(.)0 1612 y(This)f(function)f X(puts)h(the)g(values)g Fi(\(xmin,xmax,ymin,ymax)q(\))j Fq(in)d(the)g(array)h XFi(lt)p Fq(.)p 1569 1709 298 2 v 1569 1788 2 80 v 1583 1763 Xa Fb(ptkf_limit3)p 1864 1788 V 1569 1790 298 2 v 11 1864 a XFq(SUBROUTINE)g Fp(ptkf_limit3)c Fq(\(xmin,)j(xmax,)h(ymin,)g(ymax,)g(zmin,) Vf X(zmax,)i(lt\))25 1953 y(IN)91 b(REAL)50 b Fa(xmin)59 b Fq(minimum)11 Xb(x)g(coordinate.)25 2003 y(IN)91 b(REAL)50 b Fa(xmax)f Fq(maximum)12 Xb(x)f(coordinate.)25 2053 y(IN)91 b(REAL)50 b Fa(ymin)59 b XFq(minimum)11 b(y)g(coordinate.)25 2102 y(IN)91 b(REAL)50 b XFa(ymax)f Fq(maximum)12 b(y)f(coordinate.)25 2152 y(IN)91 b(REAL)50 Xb Fa(zmin)59 b Fq(minimum)11 b(z)h(coordinate.)25 2202 y(IN)91 Xb(REAL)50 b Fa(zmax)f Fq(maximum)12 b(z)g(coordinate.)25 2252 Xy(OUT)50 b(REAL)g Fa(lt\(6\))72 b Fq(real)12 b(array)m(.)0 X2321 y(This)f(function)f(puts)h(the)g(values)g Fi(\(xmin,xmax,ymin,ymax)q X(,zmin,)q(zmax\))k Fq(in)c(the)g(array)g Fi(lt)p Fq(.)0 2956 Xy(13th)22 b(May)m(,)12 b(1992)626 b(172)828 b(2.01)p eop X%%Page: 173 174 Xbop 0 -137 a Fq(PHIGS)11 b(T)m(oolkit)f(User)i(Manual)1235 Xb(PTK/100)p 1323 -19 543 2 v 1323 60 2 80 v 1337 35 a Fb(ptkf_matrixtoma)o X(tri)o(x3)p 1864 60 V 1323 62 543 2 v 11 136 a Fq(SUBROUTINE)12 Xb Fp(ptkf_matrixtomatrix3)c Fq(\(mat,)k(mat3\))25 225 y(IN)91 Xb(REAL)50 b Fa(mat\(3,)10 b(3\))69 b Fq(3x3)10 b(matrix.)25 X274 y(OUT)50 b(REAL)g Fa(mat3\(4,)10 b(4\))49 b Fq(4x4)10 b(matrix.)0 X349 y(This)h(function)f(converts)h(the)g(3)e Fl(\264)g Fq(3)i(matrix)g XFi(mat)h Fq(to)f(the)g(4)e Fl(\264)g Fq(4)i(matrix)g Fi(mat3)p XFq(,)h(as)g(follows:)515 428 y Fg(0)515 502 y(@)573 461 y Fk(a)41 Xb(b)i(c)572 511 y(d)g(e)h Fl(\246)573 560 y Fk(g)d(h)46 b(j)739 X428 y Fg(1)739 502 y(A)782 511 y Fk(C)9 b Fl(*)g(*)i(\256)h XFk(C)d Fl(*)g(*)1029 403 y Fg(0)1029 476 y(B)1029 501 y(B)1029 X527 y(@)1086 436 y Fk(a)42 b(b)f Fq(0)h Fk(c)1086 486 y(d)h(e)g XFq(0)e Fl(\246)1086 536 y Fq(0)h(0)f(1)g(0)1086 585 y Fk(g)h(h)f XFq(0)46 b Fk(j)1315 403 y Fg(1)1315 476 y(C)1315 501 y(C)1315 X527 y(A)p 1576 743 291 2 v 1576 822 2 80 v 1590 797 a Fb(ptkf_modv)p X1864 822 V 1576 824 291 2 v 0 898 a Fq(REAL)12 b(FUNCTION)f XFp(ptkf_modv)f Fq(\(vec\))25 998 y(IN)50 b(REAL)g Fa(vec\(2\))e XFq(2D)11 b(vector)n(.)0 1097 y(This)g(function)f(returns)h(the)g(modulus)f X(of)h(the)g(2D)h(vector)f Fi(vec)p Fq(.)p 1546 1194 321 2 v X1546 1273 2 80 v 1560 1248 a Fb(ptkf_modv3)p 1864 1273 V 1546 X1275 321 2 v 0 1349 a Fq(REAL)h(FUNCTION)f Fp(ptkf_modv3)f XFq(\(vec\))25 1449 y(IN)50 b(REAL)g Fa(vec\(3\))e Fq(3D)11 Xb(vector)n(.)0 1548 y(Returns)g(the)g(modulus)f(of)h(the)g(vector)g XFi(vec)p Fq(.)p 1353 1646 514 2 v 1353 1725 2 80 v 1367 1699 Xa Fb(ptkf_multiplym)o(atri)o(x)p 1864 1725 V 1353 1727 514 X2 v 11 1801 a Fq(SUBROUTINE)h Fp(ptkf_multiplymat)o(rix)d Fq(\(matrix1,)h X(matrix2,)h(result\))25 1889 y(IN)91 b(REAL)50 b Fa(matrix1\(3,)9 Xb(3\))49 b Fq(3x3)11 b(matrix.)25 1939 y(IN)91 b(REAL)50 b XFa(matrix2\(3,)9 b(3\))49 b Fq(3x3)11 b(matrix.)25 1989 y(OUT)50 Xb(REAL)g Fa(result\(3,)8 b(3\))79 b Fq(3x3)11 b(matrix.)0 2058 Xy(This)f(function)f(makes)j Fi(result)f Fq(the)f(product)g(of)g(the)g(3)d XFl(\264)g Fq(3)i(matrices)i Fi(matrix1)h Fq(and)e Fi(matrix2)p XFq(,)j(with)c Fi(result)19 b Fl(\254)f Fi(matrix1)0 2108 y(*)g(matrix2)p XFq(.)f(Note)11 b(that)g Fi(result)h Fq(can)g(also)g(be)f Fi(matrix1)i XFq(or)e Fi(matrix2)h Fq(since)g(a)g(copy)f(is)g(made.)p 1323 X2205 544 2 v 1323 2284 2 80 v 1337 2259 a Fb(ptkf_multiplyma)o(tri)o(x3)p X1864 2284 V 1323 2286 544 2 v 11 2360 a Fq(SUBROUTINE)h Fp(ptkf_multiplymat) Vo X(rix3)c Fq(\(matrix1,)j(matrix2,)g(result\))25 2449 y(IN)91 Xb(REAL)50 b Fa(matrix1\(4,)9 b(4\))49 b Fq(4x4)11 b(matrix.)25 X2499 y(IN)91 b(REAL)50 b Fa(matrix2\(4,)9 b(4\))49 b Fq(4x4)11 Xb(matrix.)25 2549 y(OUT)50 b(REAL)g Fa(result\(4,)8 b(4\))79 Xb Fq(4x4)11 b(matrix.)0 2617 y(This)f(function)f(makes)j Fi(result)f XFq(the)f(product)g(of)g(the)g(4)d Fl(\264)g Fq(4)i(matrices)i XFi(matrix1)h Fq(and)e Fi(matrix2)p Fq(,)j(with)c Fi(result)19 Xb Fl(\254)f Fi(matrix1)0 2667 y(*)g(matrix2)p Fq(.)f(Note)11 Xb(that)g Fi(result)h Fq(can)g(also)g(be)f Fi(matrix1)i Fq(or)e XFi(matrix2)h Fq(since)g(a)g(copy)f(is)g(made.)0 2956 y(13th)22 Xb(May)m(,)12 b(1992)626 b(173)828 b(2.01)p eop X%%Page: 174 175 Xbop 0 -137 a Fq(PHIGS)11 b(T)m(oolkit)f(User)i(Manual)1235 Xb(PTK/100)p 1589 -19 278 2 v 1589 60 2 80 v 1603 35 a Fb(ptkf_nullv)p X1864 60 V 1589 62 278 2 v 0 136 a Fq(LOGICAL)12 b(FUNCTION)f XFp(ptkf_nullv)f Fq(\(vec\))25 235 y(IN)50 b(REAL)g Fa(vec\(2\))e XFq(2D)11 b(vector)n(.)0 335 y(This)16 b(function)e(returns)h XFi(TRUE)h Fq(if)f(the)h(modulus)f(of)g(the)g(2D)h(vector)f XFi(vec)i Fq(is)e(less)h(than)f(the)h(global)e(tolerance)i Fi(ptkpceps)p XFq(,)0 385 y(otherwise)11 b Fi(FALSE)p Fq(.)p 1559 482 308 X2 v 1559 561 2 80 v 1573 536 a Fb(ptkf_nullv3)p 1864 561 V X1559 563 308 2 v 0 637 a Fq(LOGICAL)h(FUNCTION)f Fp(ptkf_nullv3)f XFq(\(vec\))25 736 y(IN)50 b(REAL)g Fa(vec\(3\))e Fq(3D)11 b(vector)n(.)0 X836 y(This)17 b(function)e(returns)h Fi(TRUE)h Fq(if)f(the)g(modulus)g(of)g X(the)h(3D)f(vector)p Fi(vec)h Fq(is)g(less)f(than)h(the)f(global)g(tolerance V) Xg Fi(ptkpceps)p Fq(,)0 886 y(otherwise)11 b Fi(FALSE)p Fq(.)p X1559 983 V 1559 1062 2 80 v 1573 1037 a Fb(ptkf_oto3pt)p 1864 X1062 V 1559 1064 308 2 v 11 1138 a Fq(SUBROUTINE)h Fp(ptkf_oto3pt)e XFq(\(origin,)f(xdirn,)i(ydirn,)f(operation,)h(matrix\))25 1227 Xy(IN)91 b(REAL)119 b Fa(origin\(3\))98 b Fq(origin)9 b(of)i(axes.)25 X1277 y(IN)91 b(REAL)119 b Fa(xdirn\(3\))108 b Fq(x)11 b(direction.)25 X1326 y(IN)91 b(REAL)119 b Fa(y)11 b(dirn\(3\))97 b Fq(y)11 Xb(direction.)25 1376 y(IN)91 b(INTEGER)50 b Fa(operation)80 Xb Fq(concatenation)11 b(operation.)25 1426 y(OUT)50 b(REAL)119 Xb Fa(matrix\(4,)9 b(4\))50 b Fq(4x4)10 b(matrix.)0 1495 y(This)j(function)f X(performs)h(the)g(same)h(operation)e(as)i Fi(ptk_0to3pt)p Fq(,)i(except)d X(the)g(name)h(has)g(an)f Fi(o)g Fq(\(oh\))g(instead)g(of)f XFi(0)i Fq(\(zero\).)0 1545 y(This)d(function)f(is)h(provided)f(for)h(members V) Xh(of)f(the)h(Fumbly)e(Fingers)h(Club.)p 1373 1642 494 2 v 1373 X1721 2 80 v 1387 1696 a Fb(ptkf_outputmatri)o(x3)p 1864 1721 XV 1373 1723 494 2 v 11 1797 a Fq(SUBROUTINE)h Fp(ptkf_outputmatrix3)d XFq(\(\256leptr)n(,)i(matrix,)g(string\))25 1886 y(OUT)50 b(INTEGER)193 Xb Fa(\256leptr)142 b Fq(\256le)11 b(pointer)n(.)25 1936 y(IN)91 Xb(REAL)262 b Fa(matrix\(4,)9 b(4\))50 b Fq(4x4)10 b(matrix.)25 X1986 y(IN)91 b(CHARACTER*\(*\))48 b Fa(string)142 b Fq(character)12 Xb(string.)0 2054 y(This)f(function)f(outputs)g(the)h(4)e Fl(\264)g XFq(4)i(matrix)g Fi(matrix)h Fq(and)g(the)f(message)i Fi(string)f XFq(to)f(the)g(\256le)h(speci\256ed)g(by)e Fi(fileptr)p Fq(.)p X1589 2152 278 2 v 1589 2231 2 80 v 1603 2205 a Fb(ptkf_point)p X1864 2231 V 1589 2233 278 2 v 11 2306 a Fq(SUBROUTINE)i Fp(ptkf_point)e XFq(\(x,)h(y)m(,)h(pt\))25 2395 y(IN)91 b(REAL)50 b Fa(x)105 Xb Fq(x)11 b(coordinate.)25 2445 y(IN)91 b(REAL)50 b Fa(y)105 Xb Fq(y)11 b(coordinate.)25 2495 y(OUT)50 b(REAL)g Fa(pt\(2\))f XFq(real)11 b(array)m(.)0 2564 y(This)g(function)f(puts)h(the)g(values)g XFi(\(x,y\))h Fq(in)f(the)g(array)h Fi(pt)p Fq(.)0 2956 y(13th)22 Xb(May)m(,)12 b(1992)626 b(174)828 b(2.01)p eop X%%Page: 175 176 Xbop 0 -137 a Fq(PHIGS)11 b(T)m(oolkit)f(User)i(Manual)1235 Xb(PTK/100)p 1559 -19 308 2 v 1559 60 2 80 v 1573 35 a Fb(ptkf_point3)p X1864 60 V 1559 62 308 2 v 11 136 a Fq(SUBROUTINE)12 b Fp(ptkf_point3)e XFq(\(x,)h(y)m(,)h(z,)g(pt\))25 225 y(IN)91 b(REAL)50 b Fa(x)105 Xb Fq(x)11 b(coordinate.)25 274 y(IN)91 b(REAL)50 b Fa(y)105 Xb Fq(y)11 b(coordinate.)25 324 y(IN)91 b(REAL)50 b Fa(z)105 Xb Fq(z)11 b(coordinate.)25 374 y(OUT)50 b(REAL)g Fa(pt\(3\))f XFq(real)11 b(array)m(.)0 443 y(This)g(function)f(puts)h(the)g(values)g XFi(\(x,y,z\))i Fq(in)e(the)g(array)g Fi(pt)p Fq(.)p 1512 540 X354 2 v 1512 619 2 80 v 1527 594 a Fb(ptkf_pt3topt4)p 1864 X619 V 1512 621 354 2 v 11 695 a Fq(SUBROUTINE)h Fp(ptkf_pt3topt4)e XFq(\(pt,)h(pt4\))25 784 y(IN)91 b(REAL)50 b Fa(pt\(3\))68 b XFq(3D)11 b(point.)25 833 y(OUT)50 b(REAL)g Fa(pt4\(4\))e Fq(4D)11 Xb(point.)0 909 y(This)g(function)f(converts)h(the)g(3D)g(point)f XFi(pt)i Fq(to)f(a)g(4D)h(point,)e Fi(pt4)p Fq(.)16 b(The)c XFk(w)f Fq(coordinate)g(of)f(the)i(4D)f(point)f(is)h(set)g(to)g(1)p XFk(.)p Fq(0.)p 1512 1006 V 1512 1085 2 80 v 1527 1059 a Fb(ptkf_pt4topt3)p X1864 1085 V 1512 1087 354 2 v 11 1161 a Fq(SUBROUTINE)h Fp(ptkf_pt4topt3)e XFq(\(pt,)h(pt3\))25 1249 y(IN)91 b(REAL)50 b Fa(pt\(4\))68 Xb Fq(4D)11 b(point.)25 1299 y(OUT)50 b(REAL)g Fa(pt3\(3\))e XFq(3D)11 b(point.)0 1374 y(This)g(function)f(converts)h(the)g(4D)g(point)f XFi(pt)i Fq(to)f(a)g(3D)h(point)d Fi(pt3)p Fq(,)k(by)e(dividing)d(by)j XFk(w)p Fq(.)p 1576 1471 291 2 v 1576 1551 2 80 v 1590 1525 Xa Fb(ptkf_rotate)p 1864 1551 V 1576 1553 291 2 v 11 1627 a XFq(SUBROUTINE)h Fp(ptkf_r)o(otate)f Fq(\(rotation,)f(axis,)h(operation,)g X(matrix\))25 1715 y(IN)91 b(REAL)119 b Fa(rotation)110 b Fq(angle)11 Xb(in)g(degrees.)25 1765 y(IN)91 b(INTEGER)50 b Fa(axis)166 Xb Fq(x,)11 b(y)g(or)g(z)h(axis.)25 1815 y(IN)91 b(INTEGER)50 Xb Fa(operation)80 b Fq(concatenation)11 b(operation.)25 1865 Xy(OUT)50 b(REAL)119 b Fa(matrix\(3,)9 b(3\))50 b Fq(3x3)10 Xb(matrix.)0 1934 y(This)h(function)f(computes)i(a)f(matrix)g(to)g(perform)g X(the)g(speci\256ed)h(2D)f(rotation)f(and)h(concatenates)i(this)d(matrix)h X(with)f Fi(matrix)0 1984 y Fq(on)h(the)g(basis)h(of)e Fi(operation)p +-+-+-+-+-+-+-+- END OF PART 126 +-+-+-+-+-+-+-+-