Source PostScript (zzcamview.pps)

Retour Texte non formaté
%% /usezzcamview {} def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %%%% Positionnement de la caméra et du type de caméra %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /ScreenDist 0.1 def %% /ZoomFactor_x 100 def %% /ZoomFactor_y 100 def %% %% /representationtype (perspective) def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% choix du type de représentation %% /representationtype (perspective) def %% %/representationtype (ortho) def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Set Camera Position %% /SetCamPos { %% Cam_x Cam_y Cam_z %% /Cam_z@3d exch def %% /Cam_y@3d exch def %% /Cam_x@3d exch def %% /CamPos@3d {Cam_x@3d Cam_y@3d Cam_z@3d} def %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Get Camera Position %% /GetCamPos { %% CamPos@3d %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Set Camera Looking vector %% /SetCamVec { %% Cam_Vx Cam_Vy Cam_Vz %% /Cam_Vz@3d exch def %% /Cam_Vy@3d exch def %% /Cam_Vx@3d exch def %% /CamVec@3d {Cam_Vx@3d Cam_Vy@3d Cam_Vz@3d} def %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Get Camera Looking vector %% /GetCamVec { %% CamVec@3d %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Set Camera Up vector %% /SetCamUp { %% Cam_Ux Cam_Uy Cam_Uz %% /Cam_Uz@3d exch def %% /Cam_Uy@3d exch def %% /Cam_Ux@3d exch def %% /UpVec@3d {Cam_Ux@3d Cam_Uy@3d Cam_Uz@3d} def %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Get Camera Up vector %% /GetCamUp { %% UpVec@3d %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Compute vectors usefull to CamView %% /ComputeCamera { %% %% %% Calcule le vecteur directeur ZVecteur relatif à la caméra %% CamVec@3d dupp3d norme3d -1 exch div mulv3d %% /ZVec_z@3d exch def %% /ZVec_y@3d exch def %% /ZVec_x@3d exch def %% /ZVec@3d {ZVec_x@3d ZVec_y@3d ZVec_z@3d} def %% %% %% Calcule le vecteur directeur YVecteur relatif à la caméra %% ZVec@3d dupp3d UpVec@3d scalprod3d neg mulv3d UpVec@3d addv3d dupp3d norme3d 1 exch div mulv3d %% /YVec_z@3d exch def %% /YVec_y@3d exch def %% /YVec_x@3d exch def %% /YVec@3d {YVec_x@3d YVec_y@3d YVec_z@3d} def %% %% %% Calcule le vecteur directeur YVecteur relatif à la caméra %% YVec@3d ZVec@3d vectprod3d %% /XVec_z@3d exch def %% /XVec_y@3d exch def %% /XVec_x@3d exch def %% /XVec@3d {XVec_x@3d XVec_y@3d XVec_z@3d} def %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% On projete le point 3d sur le plan de représentation de la caméra, %% %% selon le mode de représentation %% /CamView { %% x y z %% 1 dict begin %% /M defpoint3d %% representationtype (ortho) eq %% {CamPos@3d M vecteur3d dupp3d %% ZVec@3d scalprod3d neg ZVec@3d lambdav3d %% addv3d dupp3d XVec@3d scalprod3d 0.01 ZoomFactor_x mul mul %% 4 1 roll YVec@3d scalprod3d 0.01 ZoomFactor_y mul mul %% } %% {CamPos@3d M vecteur3d dupp3d %% ZVec@3d scalprod3d neg ScreenDist exch div mulv3d %% dupp3d XVec@3d scalprod3d ZoomFactor_x mul %% 4 1 roll YVec@3d scalprod3d ZoomFactor_y mul %% } ifelse %% end %% } def %% %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% transforme un tableau de points 3d en tableau de points 2d %% /tab3dto2d { %% 2 dict begin %% /T exch def %% /n T length def %% [ T aload pop %% n 1 sub -1 n 3 idiv 2 mul %% { 1 dict begin %% /i exch def %% CamView i 2 roll %% end } for ] %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %%%% Version 3d des commandes jps TEXTE %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /bbtext3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} bbtext %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /bbtexlabel3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} bbtexlabel %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /bctext3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} bctext %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /bctexlabel3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} bctexlabel %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /bltext3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} bltext %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /bltexlabel3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} bltexlabel %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /brtext3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} brtext %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /brtexlabel3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} brtexlabel %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /cbtext3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} cbtext %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /cbtexlabel3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} cbtexlabel %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /cctext3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} cctext %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /cctexlabel3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} cctexlabel %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /cltext3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} cltext %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /cltexlabel3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} cltexlabel %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /crtext3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} crtext %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /crtexlabel3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} crtexlabel %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /dbtext3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} dbtext %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /dbtexlabel3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} dbtexlabel %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /dctext3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} dctext %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /dctexlabel3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} dctexlabel %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /dltext3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} dltext %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /dltexlabel3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} dltexlabel %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /ubtext3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} ubtext %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /ubtexlabel3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} ubtexlabel %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /uctext3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} uctext %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /uctexlabel3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} uctexlabel %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /ultext3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} ultext %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /ultexlabel3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} ultexlabel %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /urtext3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} urtext %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /urtexlabel3d { %% 2 dict begin %% /vect_echelle [1 1] def %% /angle_de_rot {0} def %% dup xcheck %% {/angle_de_rot exch def} %% if %% dup isarray %% {/vect_echelle exch def} %% if %% CamView vect_echelle {angle_de_rot} urtexlabel %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %%%% Version 3d des commandes jps GEOMETRIQUES %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /ligne3d { %% [tableau de points3d] option --> trace la ligne brisée %% 1 dict begin %% dup isstring %% {/option exch def} %% if %% tab3dto2d %% currentdict /option known %% {option} %% if %% ligne %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /plus3d { %% A %% CamView plus %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /point3d { %% A %% CamView point %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /points3d { %% tableau de points3d %% tab3dto2d points %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /polygone3d { %% tableau de points3d %% tab3dto2d polygone %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /polygone*3d { %% tableau de points3d %% tab3dto2d polygone* %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /surfaceparam3d { %% x_min pas_x x_max y_min pas_x y_max {Proc} %% 9 dict begin %% /z@xy exch def %% /y1 exch def %% /yp exch def %% /y0 exch def %% /x1 exch def %% /xp exch def %% /x0 exch def %% x0 xp x1 { %% /x exch def %% y0 y1 {x exch 2 copy z@xy CamView pop} {x exch 2 copy z@xy CamView exch pop} Courbeparam %% } for %% y0 yp y1 { %% /y exch def %% x0 x1 {y 2 copy z@xy CamView pop} {y 2 copy z@xy CamView exch pop} Courbeparam %% } for %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %%%% Commandes spécifiques 3d %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /qplanxy { %% trace un quadrillage du plan XY %% gsave %% 190 255 div 190 255 div 200 255 div setrgbcolor %% -5 1 5 { %% 1 dict begin %% /i exch def %% [i -5 0 i 5 0] (-) ligne3d %% [-5 i 0 5 i 0] (-) ligne3d %% end %% } for %% grestore } def %% %% /quadrilleXYZ { %% x_min x_max y_min y_max z_min z_max %% 9 dict begin %% /z1 exch def %% /z0 exch def %% /y1 exch def %% /y0 exch def %% /x1 exch def %% /x0 exch def %% x0 1 x1 { %% /i exch def %% y0 1 y1 { %% /j exch def %% [i j z0 i j z1] (-) ligne3d %% } for %% } for %% x0 1 x1 { %% /i exch def %% z0 1 z1 { %% /k exch def %% [i y0 k i y1 k] (-) ligne3d %% } for %% } for %% y0 1 y1 { %% /j exch def %% z0 1 z1 { %% /k exch def %% [x0 j k x1 j k] (-) ligne3d %% } for %% } for %% end %% } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /axeR { % x_min x_max lu (étendue du pointille, longueur du vecteur) %% 3 dict begin %% /lu exch def %% /x1 exch def %% /x0 exch def %% gsave %% continu %% rouge %% [0 0 0 lu 0 0] (->) ligne3d %% currentlinewidth 0.5 mul setlinewidth %% pointilles %% [x0 0 0 x1 0 0] (-) ligne3d %% grestore %% end } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /axeV { % y_min y_max lu (étendue du pointille, longueur du vecteur) %% 3 dict begin %% /lu exch def %% /y1 exch def %% /y0 exch def %% gsave %% continu %% vert %% [0 0 0 0 lu 0] (->) ligne3d %% currentlinewidth 0.5 mul setlinewidth %% pointilles %% [0 y0 0 0 y1 0] (-) ligne3d %% grestore %% end } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /axeB { % z_min z_max lu (étendue du pointille, longueur du vecteur) %% 3 dict begin %% /lu exch def %% /z1 exch def %% /z0 exch def %% gsave %% continu %% bleu %% [0 0 0 0 0 lu] (->) ligne3d %% currentlinewidth 0.5 mul setlinewidth %% pointilles %% [0 0 z0 0 0 z1] (-) ligne3d %% grestore %% end } def %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% /axesRVB { % xyz_min xyz_max lu (étendue du pointille, longueur des vecteurs) %% 3 dict begin %% /lu exch def %% /w1 exch def %% /w0 exch def %% w0 w1 lu axeR %% w0 w1 lu axeV %% w0 w1 lu axeB %% } def %% %% %% 6 -6 4 SetCamPos %% %% 1 1.1 -0.3 SetCamVec %% %% .03 0.03 1 SetCamUp %% %% ComputeCamera