%% %% This is file `pst-gr3d.tex', %% generated with the docstrip utility. %% %% The original source files were: %% %% pst-gr3d.dtx (with options: `pst-gr3d') %% %% IMPORTANT NOTICE: %% %% For the copyright see the source file. %% %% Any modified versions of this file must be renamed %% with new filenames distinct from pst-gr3d.tex. %% %% For distribution of the original source see the terms %% for copying and modification in the file pst-gr3d.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% %% Package `pst-gr3d.ins' %% %% Denis Girou (CNRS/IDRIS - France) %% September 16, 1998 %% %% %% Denis Girou, , 1998. %% %% This program can be redistributed and/or modified under the terms %% of the LaTeX Project Public License Distributed from CTAN %% archives in directory macros/latex/base/lppl.txt. %% %% DESCRIPTION: %% `pst-gr3d' is PSTricks package to draw three dimensional grids %% with various customizations. %% \def\fileversion{1.2} \def\filedate{98/09/16} \message{`PST-Grids3d v\fileversion, \filedate\space (Denis Girou)} \csname PSTGridsThreeD\endcsname \let\PSTGridsThreeD\endinput \ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi \ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi \ifx\PSTthreeDLoaded\endinput\else\input pst-3d.tex\fi \ifx\MultidoLoaded\endinput\else\input multido.tex\fi \input pst-key.tex \edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax \def\psset@PstDebug#1{\pst@getint{#1}\psk@PstDebug} \newif\ifPst@PstPicture \define@key{psset}{PstPicture}[true]{\@nameuse{Pst@PstPicture#1}} \newif\ifPst@GridThreeDNodes \define@key{psset}{GridThreeDNodes}[true]{\@nameuse{Pst@GridThreeDNodes#1}} \define@key{psset}{GridThreeDXUnit}{% \pst@cntg=#1\relax \edef\psk@GridThreeDXUnit{\the\pst@cntg}} \define@key{psset}{GridThreeDYUnit}{% \pst@cntg=#1\relax \edef\psk@GridThreeDYUnit{\the\pst@cntg}} \define@key{psset}{GridThreeDZUnit}{% \pst@cntg=#1\relax \edef\psk@GridThreeDZUnit{\the\pst@cntg}} \define@key{psset}{GridThreeDXPos}{% \pst@cntg=#1\relax \edef\psk@GridThreeDXPos{\the\pst@cntg}} \define@key{psset}{GridThreeDYPos}{% \pst@cntg=#1\relax \edef\psk@GridThreeDYPos{\the\pst@cntg}} \define@key{psset}{GridThreeDZPos}{% \pst@cntg=#1\relax \edef\psk@GridThreeDZPos{\the\pst@cntg}} \def\psset@Rx#1{\psset@XnodesepA{#1}} \def\psset@Ry#1{\psset@offsetA{#1}} \psset@viewpoint{1.2 -0.6 0.8} \setkeys{psset}{% PstDebug=0,PstPicture=true,GridThreeDNodes=false, GridThreeDXPos=1,GridThreeDYPos=1,GridThreeDZPos=1, GridThreeDXUnit=1,GridThreeDYUnit=1,GridThreeDZUnit=1} \def\PstGridThreeD{% \@ifnextchar[\@PstGridThreeD{\@PstGridThreeD[]}} \def\@PstGridThreeD[#1](#2,#3,#4){{% \psset{dimen=middle}% \setkeys{psset}{#1}% \pst@cnta=#2 \advance\pst@cnta\m@ne \pst@cnth=\pst@cnta \multiply\pst@cnth\psk@GridThreeDXUnit \divide\pst@cnth\tw@ \ifodd\pst@cnth \edef\Pst@PictureYmin{-\the\pst@cnth}% \else \edef\Pst@PictureYmin{-\the\pst@cnth.5}% \fi \pst@cntb=#3 \advance\pst@cntb\m@ne \pst@cntc=#4 \advance\pst@cntc\m@ne \pst@cntg=\pst@cntb \multiply\pst@cntg\psk@GridThreeDYUnit \divide\pst@cnta\tw@ \pst@cnth=\pst@cnta \multiply\pst@cnth\psk@GridThreeDXUnit \advance\pst@cntg\pst@cnth \pst@cnth=\pst@cntb \advance\pst@cnth\m@ne \multiply\pst@cnth\psk@GridThreeDYUnit \divide\pst@cnth\tw@ \pst@cntd=\pst@cntc \multiply\pst@cntd\psk@GridThreeDZUnit \advance\pst@cntd\pst@cnth \ifnum\pst@cnth=\z@ \edef\Pst@PictureYmax{\the\pst@cntd.5}% \else \edef\Pst@PictureYmax{\the\pst@cntd}% \fi \ifPst@PstPicture \ifnum\psk@PstDebug>\z@ \psframebox[framesep=0]{% \fi \pspicture(0,\Pst@PictureYmin)(\the\pst@cntg,\Pst@PictureYmax) \fi \pst@cntd=\psk@GridThreeDXPos \advance\pst@cntd\m@ne \multiply\pst@cntd\psk@GridThreeDXUnit \pst@cntg=\psk@GridThreeDYPos \advance\pst@cntg\m@ne \multiply\pst@cntg\psk@GridThreeDYUnit \pst@cnth=\psk@GridThreeDZPos \advance\pst@cnth\m@ne \multiply\pst@cnth\psk@GridThreeDZUnit \ifx\PstGridThreeDHookZFace\empty \else \multido{\iz=\pst@cntc+-\psk@GridThreeDZUnit}{#4}{% Z face hook \ThreeDput[normal=0 0 1](\pst@cntd,\pst@cntg,\iz){\PstGridThreeDHookZFace}} \fi \multido{\ix=\pst@cntd+\psk@GridThreeDXUnit}{#2}{% \ThreeDput[normal=1 0 0](\ix,\pst@cntg,\pst@cnth){% \PstGridThreeDHookXFace \psgrid[xunit=\psk@GridThreeDYUnit,yunit=\psk@GridThreeDZUnit, subgriddiv=0,gridlabels=0](\pst@cntb,\pst@cntc)}} \pst@cnta=#3 \advance\pst@cnta\m@ne \multiply\pst@cnta\psk@GridThreeDYUnit \advance\pst@cnta\pst@cntg \multido{\iy=\pst@cnta+-\psk@GridThreeDYUnit}{#3}{% \ThreeDput[normal=0 1 0](\pst@cntd,\iy,\pst@cnth){% \PstGridThreeDYFace{#2}{#4}{\iy}}} \PstGridThreeD@HookEnd \ifPst@PstPicture \endpspicture \ifnum\psk@PstDebug>\z@ } \fi \fi}} \def\PstGridThreeDYFace#1#2#3{% \pst@cnta=#1 \advance\pst@cnta\m@ne \pst@cntb=#2 \advance\pst@cntb\m@ne \PstGridThreeDHookYFace% \psgrid[xunit=\psk@GridThreeDXUnit,yunit=\psk@GridThreeDZUnit, subgriddiv=0,gridlabels=0](-\pst@cnta,\pst@cntb) \pst@cntg=#3% \advance\pst@cntg\@ne \multido{\ia=0+-\psk@GridThreeDXUnit}{#1}{% \pst@cnth=\multidocount \multido{\ib=0+\psk@GridThreeDZUnit}{#2}{% \ifPst@GridThreeDNodes \pnode(\ia,\ib){Gr3dNode\the\pst@cnth\the\pst@cntg\the\multidocount} \fi \ifx\PstGridThreeDHookNode\empty \else \rput(\ia,\ib){\PstGridThreeDHookNode} \fi}}} \def\PstGridThreeDHookNode{} \def\PstGridThreeDHookXFace{} \def\PstGridThreeDHookYFace{} \def\PstGridThreeDHookZFace{} \def\PstGridThreeDHookEnd{} \def\PstGridThreeD@HookEnd{% \def\PstGridThreeD@HookEnd{}% \PstGridThreeDHookEnd} \def\PstGridThreeDNodeProcessor#1{% \psset{unit=0.3} \pspicture(-0.5,-0.5)(0.5,0.5) \pscircle*[linecolor=#1]{0.5} \pscircle*[linecolor=white]{0.2} \endpspicture} \catcode`\@=\PstAtCode\relax \endinput %% %% End of file `pst-gr3d.tex'.