summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pst-3dplot
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-02-16 00:35:50 +0000
committerKarl Berry <karl@freefriends.org>2010-02-16 00:35:50 +0000
commit2ab1a7155c3306e7445bf3a2c76dfe07186ccb87 (patch)
tree2c20d8fcfcf5763a8cbd5f8c39701ac02efce6a9 /Master/texmf-dist/tex/generic/pst-3dplot
parent6ba76788b9f7516e9f9e0e7b507a42a2c7a2305a (diff)
pst-3dplot 1.89 (14feb10)
git-svn-id: svn://tug.org/texlive/trunk@17046 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pst-3dplot')
-rw-r--r--Master/texmf-dist/tex/generic/pst-3dplot/pst-3dplot.tex663
1 files changed, 345 insertions, 318 deletions
diff --git a/Master/texmf-dist/tex/generic/pst-3dplot/pst-3dplot.tex b/Master/texmf-dist/tex/generic/pst-3dplot/pst-3dplot.tex
index 395d95988b8..146b6fbf4ba 100644
--- a/Master/texmf-dist/tex/generic/pst-3dplot/pst-3dplot.tex
+++ b/Master/texmf-dist/tex/generic/pst-3dplot/pst-3dplot.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-3dplot.tex 136 2009-10-06 21:37:53Z herbert $
+%% $Id: pst-3dplot.tex 293 2010-02-14 17:11:57Z herbert $
%%
%% This is file `pst-3dplot.tex',
%%
@@ -20,58 +20,34 @@
\csname PSTThreeDplotLoaded\endcsname
\let\PSTThreeDplotLoaded\endinput
% Requires PSTricks, pst-node, pst-plot, multido packages
-\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
-\ifx\PSTnodesLoaded\endinput\else\input pst-3d.tex\fi
+\ifx\PSTricksLoaded\endinput\else \input pstricks.tex\fi
+\ifx\PSTnodesLoaded\endinput\else \input pst-3d.tex\fi
\ifx\PSTricksAddLoaded\endinput\else\input pstricks-add.tex\fi% loads node and plot
-\ifx\PSTMultidoLoaded\endinput\else\input multido.tex\fi
+\ifx\PSTMultidoLoaded\endinput\else \input multido.tex\fi
+\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi
%
-\def\fileversion{1.86}
-\def\filedate{2009/10/06}
+\def\fileversion{1.89}
+\def\filedate{2010/01/28}
\message{`PST-3dplot' v\fileversion, \filedate\space (HV,DL)}
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
-\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi
+
\pst@addfams{pst-3dplot}
\SpecialCoor
-%
-%%%%%%%%%%%%%%%%%% Macrolist %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% \def\pstThreeDPut
-% \def\pstThreeDLine
-% \def\pstThreeDDot
-% \def\pstThreeDNode
-% \def\pstUThreeDPut
-% \def\pstThreeDSquare
-% \def\pstThreeDBox
-% \def\pstThreeDSphere
-% \def\pstThreeDEllipse
-% \def\pstThreeDPlotFunc
-% \def\psplotThreeD
-% \def\parametricplotThreeD
-% \def\psThreeDPlot
-% \def\pstThreeDCoor
-% \def\fileplotThreeD
-% \def\dataplotThreeD
-% \def\listplotThreeD
-%
-%
+
\newdimen\pst@dimf
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% ---------------- the if's -----------------
%
\define@boolkey[psset]{pst-3dplot}[Pst@]{Debug}[true]{}%
\define@boolkey[psset]{pst-3dplot}[Pst@]{drawing}[true]{}% draw the coordinates?
\define@boolkey[psset]{pst-3dplot}[Pst@]{drawCoor}[true]{}% draw the coordinates of a dot?
\define@boolkey[psset]{pst-3dplot}[Pst@]{hiddenLine}[true]{}% emulate hidden line surface?
\define@boolkey[psset]{pst-3dplot}[Pst@]{SphericalCoor}[true]{}% (r,phi,theta)
-\define@boolkey[psset]{pst-3dplot}[Pst@]{showgrid}[true]{}% draw the coordinates of a dot?
-% \Pst@CylindricalCoorfalse}%
+\define@boolkey[psset]{pst-3dplot}[Pst@]{IIIDshowgrid}[true]{}% draw the coordinates of a dot?
+\define@boolkey[psset]{pst-3dplot}[Pst@]{CoorCheck}[true]{}% check the coordinates
\define@boolkey[psset]{pst-3dplot}[Pst@]{CylindricalCoor}[true]{}% (r,phi,z)
-% \Pst@SphericalCoorfalse}%
\define@boolkey[psset]{pst-3dplot}[Pst@]{leftHanded}[true]{}% left-Handed coor
\define@boolkey[psset]{pst-3dplot}[Pst@]{eulerRotation}[true]{}% Use Euler rotation definition
-\define@key[psset]{pst-3dplot}{coorType}{%
+\define@key[psset]{pst-3dplot}{coorType}[0]{%
\pst@getint{#1}\psk@ThreeDplot@coorType
\ifcase\psk@ThreeDplot@coorType
% 0 is the default
@@ -90,53 +66,53 @@
% 0 default
% 1 z y are orthogonal and angle x|y is Alpha, Beta has no meaning
% 1 z y are orthogonal and angle Alpha is always 135, x-axis shortened by 1/sqrt(2), Beta has no meaning
-\define@key[psset]{pst-3dplot}{SphericalCoorType}[0]{\pst@checknum{#1}\psk@ThreeDplot@SphericalCoorType}
+\define@key[psset]{pst-3dplot}{SphericalCoorType}[0]{\pst@getint{#1}{\psk@ThreeDplot@SphericalCoorType}}
\psset[pst-3dplot]{drawing,drawCoor,hiddenLine=false,SphericalCoor=false,SphericalCoorType=0,
- leftHanded=false,eulerRotation=false,coorType=0,showgrid}
+ leftHanded=false,eulerRotation=false,coorType=0,IIIDshowgrid}
%
% ------- the global definitions for the pspicture frame ------
%
-\define@key[psset]{pst-3dplot}{xMin}{\pst@checknum{#1}\psk@ThreeDplot@xMin }
-\define@key[psset]{pst-3dplot}{xMax}{\pst@checknum{#1}\psk@ThreeDplot@xMax }
-\define@key[psset]{pst-3dplot}{yMin}{\pst@checknum{#1}\psk@ThreeDplot@yMin }
-\define@key[psset]{pst-3dplot}{yMax}{\pst@checknum{#1}\psk@ThreeDplot@yMax }
-\define@key[psset]{pst-3dplot}{zMin}{\pst@checknum{#1}\psk@ThreeDplot@zMin }
-\define@key[psset]{pst-3dplot}{zMax}{\pst@checknum{#1}\psk@ThreeDplot@zMax }
-\define@key[psset]{pst-3dplot}{xThreeDunit}{\pst@checknum{#1}\psk@ThreeDplot@xThreeDunit }
-\define@key[psset]{pst-3dplot}{yThreeDunit}{\pst@checknum{#1}\psk@ThreeDplot@yThreeDunit }
-\define@key[psset]{pst-3dplot}{zThreeDunit}{\pst@checknum{#1}\psk@ThreeDplot@zThreeDunit }
-\define@key[psset]{pst-3dplot}{xRotVec}{\pst@checknum{#1}\psk@ThreeDplot@xRotVec } % Rotation vector x
-\define@key[psset]{pst-3dplot}{yRotVec}{\pst@checknum{#1}\psk@ThreeDplot@yRotVec } % Rotation vector y
-\define@key[psset]{pst-3dplot}{zRotVec}{\pst@checknum{#1}\psk@ThreeDplot@zRotVec } % Rotation vector z
-\define@key[psset]{pst-3dplot}{deltax}{\pst@checknum{#1}\psk@ThreeDplot@deltax }
-\define@key[psset]{pst-3dplot}{deltay}{\pst@checknum{#1}\psk@ThreeDplot@deltay }
-\define@key[psset]{pst-3dplot}{deltaz}{\pst@checknum{#1}\psk@ThreeDplot@deltaz }
-\define@key[psset]{pst-3dplot}{Deltax}{\pst@checknum{#1}\psk@ThreeDplot@Deltax }
-\define@key[psset]{pst-3dplot}{Deltay}{\pst@checknum{#1}\psk@ThreeDplot@Deltay }
-\define@key[psset]{pst-3dplot}{Deltaz}{\pst@checknum{#1}\psk@ThreeDplot@Deltaz }
+\define@key[psset]{pst-3dplot}{xMin}[-1]{\def\psk@ThreeDplot@xMin{#1}}
+\define@key[psset]{pst-3dplot}{xMax}[4]{\def\psk@ThreeDplot@xMax{#1}}
+\define@key[psset]{pst-3dplot}{yMin}[-1]{\def\psk@ThreeDplot@yMin{#1}}
+\define@key[psset]{pst-3dplot}{yMax}[4]{\def\psk@ThreeDplot@yMax{#1}}
+\define@key[psset]{pst-3dplot}{zMin}[-1]{\def\psk@ThreeDplot@zMin{#1}}
+\define@key[psset]{pst-3dplot}{zMax}[4]{\def\psk@ThreeDplot@zMax{#1}}
+\define@key[psset]{pst-3dplot}{xThreeDunit}[1.0]{\def\psk@ThreeDplot@xThreeDunit{#1}}
+%\define@key[psset]{pst-3dplot}{xThreeDunit}{\pst@checknum{#1}\psk@ThreeDplot@xThreeDunit }
+\define@key[psset]{pst-3dplot}{yThreeDunit}[1.0]{\def\psk@ThreeDplot@yThreeDunit{#1}}
+\define@key[psset]{pst-3dplot}{zThreeDunit}[1.0]{\def\psk@ThreeDplot@zThreeDunit{#1}}
+\define@key[psset]{pst-3dplot}{xRotVec}[0]{\pst@checknum{#1}\psk@ThreeDplot@xRotVec } % Rotation vector x
+\define@key[psset]{pst-3dplot}{yRotVec}[0]{\pst@checknum{#1}\psk@ThreeDplot@yRotVec } % Rotation vector y
+\define@key[psset]{pst-3dplot}{zRotVec}[0]{\pst@checknum{#1}\psk@ThreeDplot@zRotVec } % Rotation vector z
+\define@key[psset]{pst-3dplot}{deltax}[1.0]{\def\psk@ThreeDplot@deltax{#1}}
+%\define@key[psset]{pst-3dplot}{deltax}{\pst@checknum{#1}\psk@ThreeDplot@deltax}
+\define@key[psset]{pst-3dplot}{deltay}[1.0]{\def\psk@ThreeDplot@deltay{#1}}
+\define@key[psset]{pst-3dplot}{deltaz}[1.0]{\def\psk@ThreeDplot@deltaz{#1}}
+\define@key[psset]{pst-3dplot}{Deltax}[1.0]{\def\psk@ThreeDplot@Deltax{#1}}
+\define@key[psset]{pst-3dplot}{Deltay}[1.0]{\def\psk@ThreeDplot@Deltay{#1}}
+\define@key[psset]{pst-3dplot}{Deltaz}[1.0]{\def\psk@ThreeDplot@Deltaz{#1}}
%
% -------------- the angles and the plotpoints -------------
%
-\define@key[psset]{pst-3dplot}{Alpha}{\pst@getangle{#1}\psk@ThreeDplot@Alpha } % Horizontal turn
-\define@key[psset]{pst-3dplot}{Beta}{\pst@getangle{#1}\psk@ThreeDplot@Beta }% Vertical turn
-\define@key[psset]{pst-3dplot}{RotX}{\pst@getangle{#1}\psk@ThreeD@RotX }% x rotation
-\define@key[psset]{pst-3dplot}{RotY}{\pst@getangle{#1}\psk@ThreeD@RotY }% y rotation
-\define@key[psset]{pst-3dplot}{RotZ}{\pst@getangle{#1}\psk@ThreeD@RotZ }% z rotation
-\define@key[psset]{pst-3dplot}{RotAngle}{\pst@getangle{#1}\psk@ThreeD@RotAngle }% General rotation angle
-\define@key[psset]{pst-3dplot}{RotSequence}{\def\psk@ThreeD@RotS{#1 }}%
+\define@key[psset]{pst-3dplot}{Alpha}[45]{\pst@getangle{#1}\psk@ThreeDplot@Alpha } % Horizontal turn
+\define@key[psset]{pst-3dplot}{Beta}[30]{\pst@getangle{#1}\psk@ThreeDplot@Beta }% Vertical turn
+\define@key[psset]{pst-3dplot}{RotX}[0]{\pst@getangle{#1}\psk@ThreeD@RotX }% x rotation
+\define@key[psset]{pst-3dplot}{RotY}[0]{\pst@getangle{#1}\psk@ThreeD@RotY }% y rotation
+\define@key[psset]{pst-3dplot}{RotZ}[0]{\pst@getangle{#1}\psk@ThreeD@RotZ }% z rotation
+\define@key[psset]{pst-3dplot}{RotAngle}[0]{\pst@getangle{#1}\psk@ThreeD@RotAngle }% General rotation angle
+\define@key[psset]{pst-3dplot}{RotSequence}[xyz]{\def\psk@ThreeD@RotS{#1 }}%
% Set or Concat
-\define@key[psset]{pst-3dplot}{RotSet}{\def\psk@ThreeD@RotSet{#1 }}%
-\define@key[psset]{pst-3dplot}{PlaneSequence}{\def\psk@ThreeD@PlaneSequence{#1 }}%
-\define@key[psset]{pst-3dplot}{zCoor}{\pst@checknum{#1}\psk@ThreeDplot@zCoor }
+\define@key[psset]{pst-3dplot}{RotSet}[set]{\def\psk@ThreeD@RotSet{#1 }}%
+\define@key[psset]{pst-3dplot}{PlaneSequence}[{}]{\def\psk@ThreeD@PlaneSequence{#1 }}%
+\define@key[psset]{pst-3dplot}{zCoor}[0]{\pst@checknum{#1}\psk@ThreeDplot@zCoor }
\psset[pst-3dplot]{zCoor=0}
%
-%\define@boolkey[psset]{pst-3dplot}[Pst@]{algebraic}[true]{}% same as in pstricks-add
-%\psset[pst-3dplot]{algebraic=false}
\def\drawStyle@xLines{xLines}% 0
\def\drawStyle@yLines{yLines}% 1
\def\drawStyle@xyLines{xyLines}% 2
\def\drawStyle@yxLines{yxLines}% 3
-\define@key[psset]{pst-3dplot}{drawStyle}{% how to draw 3D functions
+\define@key[psset]{pst-3dplot}{drawStyle}[xLines]{% how to draw 3D functions
\def\pst@tempa{#1}%
\ifx\pst@tempa\drawStyle@xLines\let\psk@ThreeDplot@drawStyle\z@\else%
\ifx\pst@tempa\drawStyle@yLines\let\psk@ThreeDplot@drawStyle\@ne\else%
@@ -148,55 +124,49 @@
}
\psset[pst-3dplot]{drawStyle=xLines}
%
-\define@key[psset]{pst-3dplot}{xPlotpoints}{\def\psk@ThreeDplot@xPlotpoints{#1}}
-\define@key[psset]{pst-3dplot}{yPlotpoints}{\def\psk@ThreeDplot@yPlotpoints{#1}}
-\define@key[psset]{pst-3dplot}{beginAngle}{\def\psk@ThreeDplot@beginAngle{#1}}% for ellipse/circle arc
-\define@key[psset]{pst-3dplot}{endAngle}{\def\psk@ThreeDplot@endAngle{#1}}% for ellipse/circle arc
-\define@key[psset]{pst-3dplot}{linejoin}{\def\psk@ThreeDplot@linejoin{#1 }}% how lines come together 0,1,2
-\define@key[psset]{pst-3dplot}{plane}{\edef\psk@ThreeDplot@plane{#1}}% xy,xz,yz
+\define@key[psset]{pst-3dplot}{xPlotpoints}[25]{\def\psk@ThreeDplot@xPlotpoints{#1}}
+\define@key[psset]{pst-3dplot}{yPlotpoints}[25]{\def\psk@ThreeDplot@yPlotpoints{#1}}
+\define@key[psset]{pst-3dplot}{beginAngle}[0]{\def\psk@ThreeDplot@beginAngle{#1}}% for ellipse/circle arc
+\define@key[psset]{pst-3dplot}{endAngle}[360]{\def\psk@ThreeDplot@endAngle{#1}}% for ellipse/circle arc
+%\define@key[psset]{pst-3dplot}{linejoin}{\def\psk@ThreeDplot@linejoin{#1 }}% how lines come together 0,1,2
+\define@key[psset]{pst-3dplot}{plane}[xy]{\def\psk@ThreeDplot@plane{#1}}% xy,xz,yz
% must be expanded
-\define@key[psset]{pst-3dplot}{pOrigin}{\def\psk@ThreeDplot@pOrigin{#1}}% combination of (lr)(tBb)
-\define@key[psset]{pst-3dplot}{IIIDdAlpha}{\def\psk@IIIDdAlpha{#1 }}
+\define@key[psset]{pst-3dplot}{pOrigin}[c]{\def\psk@ThreeDplot@pOrigin{#1}}% combination of (lr)(tBb)
+\define@key[psset]{pst-3dplot}{IIIDdAlpha}[0]{\def\psk@IIIDdAlpha{#1 }}
\def\ThreeDplot@planeXY{xy}
\def\ThreeDplot@planeXZ{xz}
\def\ThreeDplot@planeYZ{yz}
%
% -------------- the length and node definitions -------------
%
-\define@key[psset]{pst-3dplot}{XO}{\def\psk@ThreeDplot@XO{#1}}% the X-offset
-\define@key[psset]{pst-3dplot}{YO}{\def\psk@ThreeDplot@YO{#1}}% the y-offset
-\define@key[psset]{pst-3dplot}{angleStep}{% for circles
- \def\psk@ThreeDplot@angleStep{#1}}
-\define@key[psset]{pst-3dplot}{posStart}{% where the arrows start
- \def\psk@ThreeDplot@posStart{#1}}
-\define@key[psset]{pst-3dplot}{length}{% the length of the before|outlines
- \def\psk@ThreeDplot@length{#1}}
-\define@key[psset]{pst-3dplot}{arrowOffset}{% offset for \arrowLine
- \def\psk@ThreeDplot@arrowOffset{#1}}
-\define@key[psset]{pst-3dplot}{visibleLineStyle}{% offset for \arrowLine
- \edef\psk@ThreeDplot@visibleLineStyle{#1}}
-\define@key[psset]{pst-3dplot}{invisibleLineStyle}{% offset for \arrowLine
- \edef\psk@ThreeDplot@invisibleLineStyle{#1}}
+\define@key[psset]{pst-3dplot}{XO}[0]{\def\psk@ThreeDplot@XO{#1}}% the X-offset
+\define@key[psset]{pst-3dplot}{YO}[0]{\def\psk@ThreeDplot@YO{#1}}% the y-offset
+\define@key[psset]{pst-3dplot}{angleStep}[1]{\def\psk@ThreeDplot@angleStep{#1}}% for circles
+\define@key[psset]{pst-3dplot}{posStart}[0]{\def\psk@ThreeDplot@posStart{#1}}% where the arrows start
+\define@key[psset]{pst-3dplot}{length}[2]{\def\psk@ThreeDplot@length{#1}}% the length of the before|outlines
+\define@key[psset]{pst-3dplot}{arrowOffset}[0]{\def\psk@ThreeDplot@arrowOffset{#1}}%offset for \arrowLine
+\define@key[psset]{pst-3dplot}{visibleLineStyle}[solid]{\def\psk@ThreeDplot@visibleLineStyle{#1}}% offset for \arrowLine
+\define@key[psset]{pst-3dplot}{invisibleLineStyle}[dashed]{\def\psk@ThreeDplot@invisibleLineStyle{#1}}%offset for \arrowLine
%
\define@boolkey[psset]{pst-3dplot}[Pst@]{IIIDticks}[true]{}
\define@boolkey[psset]{pst-3dplot}[Pst@]{IIIDlabels}[true]{}
-\define@key[psset]{pst-3dplot}{Dz}{\def\psk@Dz{#1}}
-\define@key[psset]{pst-3dplot}{IIIDxTicksPlane}{\def\psk@IIIDxTicksPlane{#1}}
-\define@key[psset]{pst-3dplot}{IIIDyTicksPlane}{\def\psk@IIIDyTicksPlane{#1}}
-\define@key[psset]{pst-3dplot}{IIIDzTicksPlane}{\def\psk@IIIDzTicksPlane{#1}}
-\define@key[psset]{pst-3dplot}{IIIDticksize}{\def\psk@IIIDticksize{#1}}
-\define@key[psset]{pst-3dplot}{IIIDxticksep}{\def\psk@IIIDxticksep{#1}}
-\define@key[psset]{pst-3dplot}{IIIDyticksep}{\def\psk@IIIDyticksep{#1}}
-\define@key[psset]{pst-3dplot}{IIIDzticksep}{\def\psk@IIIDzticksep{#1}}
-\define@key[psset]{pst-3dplot}{nameX}{\def\psk@ThreeDplot@nameX{#1}}% start of the object arrow
-\define@key[psset]{pst-3dplot}{spotX}{\def\psk@ThreeDplot@spotX{#1}}% where to draw the label
-\define@key[psset]{pst-3dplot}{nameY}{\def\psk@ThreeDplot@nameY{#1}}
-\define@key[psset]{pst-3dplot}{spotY}{\def\psk@ThreeDplot@spotY{#1}}
-\define@key[psset]{pst-3dplot}{nameZ}{\def\psk@ThreeDplot@nameZ{#1}}
-\define@key[psset]{pst-3dplot}{spotZ}{\def\psk@ThreeDplot@spotZ{#1}}
+\define@key[psset]{pst-3dplot}{Dz}[1]{\def\psk@Dz{#1}}
+\define@key[psset]{pst-3dplot}{IIIDxTicksPlane}[xy]{\def\psk@IIIDxTicksPlane{#1}}
+\define@key[psset]{pst-3dplot}{IIIDyTicksPlane}[yz]{\def\psk@IIIDyTicksPlane{#1}}
+\define@key[psset]{pst-3dplot}{IIIDzTicksPlane}[yz]{\def\psk@IIIDzTicksPlane{#1}}
+\define@key[psset]{pst-3dplot}{IIIDticksize}[0.1]{\def\psk@IIIDticksize{#1}}
+\define@key[psset]{pst-3dplot}{IIIDxticksep}[-0.2]{\def\psk@IIIDxticksep{#1}}
+\define@key[psset]{pst-3dplot}{IIIDyticksep}[-0.2]{\def\psk@IIIDyticksep{#1}}
+\define@key[psset]{pst-3dplot}{IIIDzticksep}[0.2]{\def\psk@IIIDzticksep{#1}}
+\define@key[psset]{pst-3dplot}{nameX}[$x$]{\def\psk@ThreeDplot@nameX{#1}}% start of the object arrow
+\define@key[psset]{pst-3dplot}{spotX}[180]{\def\psk@ThreeDplot@spotX{#1}}% where to draw the label
+\define@key[psset]{pst-3dplot}{nameY}[$y$]{\def\psk@ThreeDplot@nameY{#1}}
+\define@key[psset]{pst-3dplot}{spotY}[0]{\def\psk@ThreeDplot@spotY{#1}}
+\define@key[psset]{pst-3dplot}{nameZ}[$z$]{\def\psk@ThreeDplot@nameZ{#1}}
+\define@key[psset]{pst-3dplot}{spotZ}[90]{\def\psk@ThreeDplot@spotZ{#1}}
%
% ### begin Torsten Suhling
-\define@key[psset]{pst-3dplot}{planecorr}{\def\psk@ThreeDplot@planecorr{#1}}% make plane tags readable
+\define@key[psset]{pst-3dplot}{planecorr}[none]{\def\psk@ThreeDplot@planecorr{#1}}% make plane tags readable
\def\ThreeDplot@planecorrNone{none} % default
\def\ThreeDplot@planecorrNormal{normal} % make planes readable
\def\ThreeDplot@planecorrXYrot{xyrot} % and put tag for xy-plane
@@ -210,18 +180,14 @@
\newcount\pst@cntx \newcount\pst@cnty \newcount\pst@cntz
\newdimen\pst@dimx \newdimen\pst@dimy \newdimen\pst@dimz
%
-\define@key[psset]{pst-3dplot}{planeGrid}{\def\psk@planeGrid{#1}}
-\define@key[psset]{pst-3dplot}{planeGridOffset}{\def\psk@planeGridOffset{#1}}
-%\define@key[psset]{pst-3dplot}{subticks}{\def\psk@xsubticks{#1}\def\psk@ysubticks{#1}}
-%\define@key[psset]{pst-3dplot}{xsubticks}{\def\psk@xsubticks{#1}}
-%\define@key[psset]{pst-3dplot}{ysubticks}{\def\psk@ysubticks{#1}}
+\define@key[psset]{pst-3dplot}{planeGrid}[xy]{\def\psk@planeGrid{#1}}
+\define@key[psset]{pst-3dplot}{planeGridOffset}[0]{\def\psk@planeGridOffset{#1}}
%
\define@boolkey[psset]{pst-3dplot}[PstThreeDplot@]{showInside}[true]{}
\define@key[psset]{pst-3dplot}{SegmentColor}{\pst@getcolor{#1}\psk@ThreeDplot@SegmentColor}
-\define@key[psset]{pst-3dplot}{increment}{\pst@checknum{#1}\psk@ThreeDplot@increment}
-\define@key[psset]{pst-3dplot}{Hincrement}{\pst@checknum{#1}\psk@ThreeDplot@Hincrement}
-%\define@key[psset]{pst-3dplot}{CMYK}{\def\psk@ThreeDplot@CMYK{#1}}
-\define@key[psset]{pst-3dplot}{xyzLight}{\def\psk@ThreeDplot@xyzLight{#1 }}
+\define@key[psset]{pst-3dplot}{increment}[10]{\pst@checknum{#1}\psk@ThreeDplot@increment}
+\define@key[psset]{pst-3dplot}{Hincrement}[0.5]{\pst@checknum{#1}\psk@ThreeDplot@Hincrement}
+\define@key[psset]{pst-3dplot}{xyzLight}[1 1 2]{\def\psk@ThreeDplot@xyzLight{#1 }}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -246,17 +212,18 @@
%
%
\def\setIIIDplotDefaults{%
+ \psset[pstricks]{linejoin=1}%
\psset[pst-3dplot]{
- Debug=false,
+ Debug=false,CoorCheck=true,
drawing=true,hiddenLine=false,eulerRotation=false,
xMin=-1,xMax=4,yMin=-1,yMax=4,zMin=-1,zMax=4,
- xThreeDunit=1.0,yThreeDunit=1.0,zThreeDunit=1.0,Alpha=45,Beta=30,
- deltax=1,deltay=1,deltaz=1,Deltax=1,Deltay=1,Deltaz=1,
+ xThreeDunit=1,yThreeDunit=1.0,zThreeDunit=1.0,Alpha=45,Beta=30,
+ deltax=1,deltay=1.0,deltaz=1.0,Deltax=1.0,Deltay=1.0,Deltaz=1.0,
RotX=0,RotY=0,RotZ=0,RotSequence=xyz,RotSet=set,
xRotVec=1,yRotVec=0,zRotVec=0,RotAngle=0,
PlaneSequence={},
drawStyle=xLines,xPlotpoints=25,yPlotpoints=25,beginAngle=0,endAngle=360,
- linejoin=1,XO=0,YO=0,angleStep=1,posStart=0,length=2,arrowOffset=0,
+ XO=0,YO=0,angleStep=1,posStart=0,length=2,arrowOffset=0,
visibleLineStyle=solid,invisibleLineStyle=dashed,nameX=$x$,spotX=180,
nameY=$y$,spotY=0,nameZ=$z$,spotZ=90,plane=xy,pOrigin=c,
drawCoor=false,SphericalCoor=false, CylindricalCoor=false,
@@ -295,7 +262,7 @@
/Sin1Sin2 Sin1 Sin2 mul def
/Cos1Cos2 Cos1 Cos2 mul def
/Sin1Cos2 Sin1 Cos2 mul def
- /showgrid \ifPst@showgrid true \else false \fi def
+ /showgrid \ifPst@IIIDshowgrid true \else false \fi def
currentdict tx@3DPlotDict ne dup
{tx@3DPlotDict begin} if % Begin the correct dict if necessary
/eulerRotation \ifPst@eulerRotation true \else false \fi def
@@ -326,12 +293,22 @@
\let#4\pst@getValueY%
\let#5\pst@getValueZ%
}
+\def\pst@addThreeDVecPS(#1,#2,#3)(#4,#5,#6)#7#8#9{% (#1)+(#2)=(#7,#8,#9)
+ \def#7{ #1 #4 add }%
+ \def#8{ #2 #5 add }%
+ \def#9{ #3 #6 add }%
+}
\def\pst@subThreeDVec(#1)(#2,#3,#4)#5#6#7{% (#1)-(#2,#3,#4)=(#5,#6,#7)
\pst@calcThreeDVec(#1)(-#2,-#3,-#4)%
\let#5\pst@getValueX%
\let#6\pst@getValueY%
\let#7\pst@getValueZ%
}
+\def\pst@subThreeDVecPS(#1,#2,#3)(#4,#5,#6)#7#8#9{% (#1)-(#2)=(#7,#8,#9)
+ \def#7{ #1 #4 sub }%
+ \def#8{ #2 #5 sub }%
+ \def#9{ #3 #6 sub }%
+}
%
\def\pst@calcThreeDVec(#1,#2,#3)(#4,#5,#6){{% #1+#4; #2+#5; #3+#6
\pst@dima=#1 pt%
@@ -352,19 +329,26 @@
%
\def\psxyzlabel#1{\bgroup\footnotesize\textsf{#1}\egroup}
%
-\def\pstThreeDCoor{\pst@object{pstThreeDCoor}}
+\define@key[psset]{pst-3dplot}{IIIDOffset}{\def\psk@ThreeDplot@Offset{#1}}
+\define@key[psset]{pst-3dplot}{zlabelFactor}[\relax]{\def\psk@zlabelFactor{#1}}
+\psset[pst-3dplot]{IIIDOffset={(0,0,0)},zlabelFactor={}}% for coor axes
+%
+\def\pst@getIIIDValues(#1,#2,#3)#4#5#6\@nil{\def#4{#1}\def#5{#2}\def#6{#3}}
+%
+\def\pstThreeDCoor{\def\pst@par{}\pst@object{pstThreeDCoor}}
\def\pstThreeDCoor@i{%
\pst@killglue%
\begingroup%
\addbefore@par{linewidth=0.5pt,linecolor=red,arrows=->,dotstyle=|}%
\use@par%
- \pstThreeDNode(\psk@ThreeDplot@xMin,0,0){xMin}%
+ \expandafter\pst@getIIIDValues\psk@ThreeDplot@Offset{\pst@OffsetX}{\pst@OffsetY}{\pst@OffsetZ}\@nil
+ \pstThreeDNode(\psk@ThreeDplot@xMin,\pst@OffsetY,\pst@OffsetZ){xMin}%
\psset[pst-3dplot]{RotSet=keep}% Keep the current rotation matrix
- \pstThreeDNode(\psk@ThreeDplot@xMax,0,0){xMax}%
- \pstThreeDNode(0,\psk@ThreeDplot@yMin,0){yMin}%
- \pstThreeDNode(0,\psk@ThreeDplot@yMax,0){yMax}%
- \pstThreeDNode(0,0,\psk@ThreeDplot@zMin){zMin}%
- \pstThreeDNode(0,0,\psk@ThreeDplot@zMax){zMax}%
+ \pstThreeDNode(\psk@ThreeDplot@xMax,\pst@OffsetY,\pst@OffsetZ){xMax}%
+ \pstThreeDNode(\pst@OffsetX,\psk@ThreeDplot@yMin,\pst@OffsetZ){yMin}%
+ \pstThreeDNode(\pst@OffsetX,\psk@ThreeDplot@yMax,\pst@OffsetZ){yMax}%
+ \pstThreeDNode(\pst@OffsetX,\pst@OffsetY,\psk@ThreeDplot@zMin){zMin}%
+ \pstThreeDNode(\pst@OffsetX,\pst@OffsetY,\psk@ThreeDplot@zMax){zMax}%
\ifPst@drawing% ThreeDplot axes
\psline(xMin)(xMax)%
\psline(yMin)(yMax)%
@@ -374,85 +358,145 @@
\uput[\psk@ThreeDplot@spotZ](zMax){\psk@ThreeDplot@nameZ}%
\ifPst@IIIDticks%
%------------ x ticks and labels --------------------------
- \pst@dimx=\psk@ThreeDplot@xMax\p@
- \pst@dima=\psk@ThreeDplot@xThreeDunit\p@
- \pst@dima=\psk@ThreeDplot@deltax\pst@dima
- \divide\pst@dimx by \pst@dima
- \pst@cntx=\number\pst@dimx\advance\pst@cntx by -1%
- \multido{\rA=\psk@Dx+\psk@Dx,
- \rB=\psk@ThreeDplot@deltax+\psk@ThreeDplot@deltax}
- {\pst@cntx}{% the coor increment
- \pstThreeDLine[arrows=-](\rB,-\psk@IIIDticksize,0)(\rB,\psk@IIIDticksize,0)%
- \ifPst@IIIDlabels%
- \pstPlanePut[plane=\psk@IIIDxTicksPlane](\rB,\psk@IIIDxticksep,0){\psxyzlabel{\rA}}%
- \fi%
- }% end of multido
- \pst@dimx=\psk@ThreeDplot@xMin\p@
- \pst@dima=\psk@ThreeDplot@xThreeDunit\p@
- \divide\pst@dimx by \pst@dima
- \ifdim\psk@ThreeDplot@xMin pt<\p@ \pst@cntx=-\number\pst@dimx
- \else\pst@cntx=\number\pst@dimx
- \fi%
- \multido{\rA=-\psk@Dx+-\psk@Dx,
- \rB=-\psk@ThreeDplot@xThreeDunit+-\psk@ThreeDplot@xThreeDunit}
- {\pst@cntx}{%
- \pstThreeDLine[arrows=-](\rB,-\psk@IIIDticksize,0)(\rB,\psk@IIIDticksize,0)%
- \ifPst@IIIDlabels%
- \pstPlanePut[plane=\psk@IIIDxTicksPlane](\rB,\psk@IIIDxticksep,0){\psxyzlabel{\rA}}%
- \fi%
- }% end of multido and the x ticks and labels
+ \ifdim\psk@ThreeDplot@xMax pt>0pt % only for positive parts of the axes
+ \ifdim\psk@ThreeDplot@xMin pt>\z@
+ \pstFPadd\pst@tempC\psk@ThreeDplot@xMax{-\psk@ThreeDplot@xMin}
+ \else\let\pst@tempC\psk@ThreeDplot@xMax\fi
+ \pstFPadd\pst@tempC\pst@tempC{-\pst@OffsetX}
+ \pstFPDiv\pst@tempB\pst@tempC{\psk@ThreeDplot@deltax}
+ \pst@cntx=\pst@tempB \advance\pst@cntx by -1%
+ \pstFPdiv\pst@tempB\psk@IIIDticksize{\psk@ThreeDplot@yThreeDunit}
+ \pstFPadd\pst@tempA{-\pst@tempB}{\pst@OffsetY}
+ \pstFPadd\pst@tempB{\pst@tempB}{\pst@OffsetY}
+ \pstFPadd\pst@tempC\pst@OffsetX{\psk@ThreeDplot@deltax}
+ \pstFPadd\pst@tempD\pst@OffsetX{\psk@Dx}
+ \pst@dimm=\pst@tempD pt\edef\pst@tempD{\strip@pt\pst@dimm}% strip the 00... from fp
+ \pstFPadd\pst@tempE{\psk@IIIDxticksep}{\pst@OffsetY}
+ \pstFPdiv\pst@tempE\pst@tempE\psk@ThreeDplot@yThreeDunit
+ \multido{\nA=\pst@tempD+\psk@Dx,
+ \rB=\pst@tempC+\psk@ThreeDplot@deltax}
+ {\the\pst@cntx}{%
+ \pstThreeDLine[arrows=-](\rB,\pst@tempA,\pst@OffsetZ)(\rB,\pst@tempB,\pst@OffsetZ)%
+ \ifPst@IIIDlabels%
+ \pstPlanePut[plane=\psk@IIIDxTicksPlane](\rB,\pst@tempE,\pst@OffsetZ){\psxyzlabel{\nA\psk@xlabelFactor}}%
+ \fi%
+ }% end of multido
+ \fi%
+ \ifdim\psk@ThreeDplot@xMin pt<\z@\relax % only for negative parts of the axes
+ \pstFPadd\pst@tempB\psk@ThreeDplot@xMin{-\pst@OffsetX}
+ \pstFPDiv\pst@tempB\pst@tempB{\psk@ThreeDplot@deltax}%
+ \pst@cntx=-\pst@int{\pst@tempB}%
+ \pstFPdiv{\pst@tempB}{\psk@IIIDticksize}{\psk@ThreeDplot@yThreeDunit}
+ \pstFPadd{\pst@tempA}{-\pst@tempB}{\pst@OffsetY}
+ \pstFPadd{\pst@tempB}{\pst@tempB}{\pst@OffsetY}
+ \pstFPadd{\pst@tempC}{\pst@OffsetX}{-\psk@ThreeDplot@deltax}
+ \pstFPadd{\pst@tempD}{\pst@OffsetX}{-\psk@Dx}
+ \pst@dimm=\pst@tempD pt\edef\pst@tempD{\strip@pt\pst@dimm}% strip the 00... from fp
+ \pstFPadd\pst@tempE{\psk@IIIDxticksep}{\pst@OffsetY}
+ \pstFPdiv\pst@tempE\pst@tempE\psk@ThreeDplot@yThreeDunit
+ \multido{\nA=\pst@tempD+-\psk@Dx,
+ \rB=\pst@tempC+-\psk@ThreeDplot@deltax}
+ {\the\pst@cntx}{%
+ \pstThreeDLine[arrows=-](\rB,\pst@tempA,\pst@OffsetZ)(\rB,\pst@tempB,\pst@OffsetZ)%
+ \ifPst@IIIDlabels%
+ \pstPlanePut[plane=\psk@IIIDxTicksPlane](\rB,\pst@tempE,\pst@OffsetZ){\psxyzlabel{\nA\psk@xlabelFactor}}%
+ \fi%
+ }% end of multido and the x ticks and labels
+ \fi
%------------ y ticks and labels --------------------------
- \pst@dimy=\psk@ThreeDplot@yMax\p@
- \pst@dima=\psk@ThreeDplot@yThreeDunit\p@
- \pst@dima=\psk@ThreeDplot@deltay\pst@dima
- \divide\pst@dimy by \pst@dima
- \pst@cnty=\number\pst@dimy\advance\pst@cnty by -1
- \multido{\rA=\psk@Dy+\psk@Dy,\rB=\psk@ThreeDplot@deltay+\psk@ThreeDplot@deltay}{\pst@cnty}{% 0.0+\psk@ThreeDplot@yThreeDunit}{\pst@cnty}{%
- \pstThreeDLine[arrows=-](-\psk@IIIDticksize,\rB,0)(\psk@IIIDticksize,\rB,0)%
- \ifPst@IIIDlabels%
- \pstPlanePut[plane=\psk@IIIDyTicksPlane](\psk@IIIDyticksep,\rB,0){\psxyzlabel{\rA}}%
- \fi%
- }% end of multido
- \pst@dimy=\psk@ThreeDplot@yMin\p@%
- \pst@dima=\psk@ThreeDplot@yThreeDunit\p@%
- \divide\pst@dimy by \pst@dima%
- \ifdim\psk@ThreeDplot@yMin pt<\p@ \pst@cnty=-\number\pst@dimy%
- \else\pst@cnty=\number\pst@dimy
- \fi%
- \multido{\rA=-\psk@Dy+-\psk@Dy,%
- \rB=-\psk@ThreeDplot@yThreeDunit+-\psk@ThreeDplot@yThreeDunit}{\pst@cnty}{%
- \pstThreeDLine[arrows=-](-\psk@IIIDticksize,\rB,0)(\psk@IIIDticksize,\rB,0)%
- \ifPst@IIIDlabels%
- \pstPlanePut[plane=\psk@IIIDyTicksPlane](\psk@IIIDyticksep,\rB,0){\psxyzlabel{\rA}}%
- \fi
- }% end of multido and y ticks and labels
+ \ifdim\psk@ThreeDplot@yMax pt>0pt % only for positive parts of the axes
+ \ifdim\psk@ThreeDplot@yMin pt>\z@
+ \pstFPadd\pst@tempC\psk@ThreeDplot@yMax{-\psk@ThreeDplot@yMin}
+ \else\let\pst@tempC\psk@ThreeDplot@yMax\fi
+ \pstFPadd\pst@tempC\pst@tempC{-\pst@OffsetY}
+ \pstFPDiv\pst@tempB\pst@tempC{\psk@ThreeDplot@deltay}
+ \pst@cnty=\pst@tempB \advance\pst@cnty by -1%
+ \pstFPdiv\pst@tempB\psk@IIIDticksize{\psk@ThreeDplot@xThreeDunit}
+ \pstFPadd\pst@tempA{-\pst@tempB}{\pst@OffsetX}
+ \pstFPadd\pst@tempB{\pst@tempB}{\pst@OffsetX}
+ \pstFPadd\pst@tempC{\pst@OffsetY}{\psk@ThreeDplot@deltay}
+ \pstFPadd\pst@tempD{\pst@OffsetY}{\psk@Dy}
+ \pst@dimm=\pst@tempD pt\edef\pst@tempD{\strip@pt\pst@dimm}% strip the 00... from fp
+ \pstFPadd\pst@tempE{\psk@IIIDyticksep}{\pst@OffsetX}
+ \pstFPdiv\pst@tempE\pst@tempE\psk@ThreeDplot@xThreeDunit
+ \multido{\nA=\pst@tempD+\psk@Dy,
+ \rB=\pst@tempC+\psk@ThreeDplot@deltay}
+ {\the\pst@cnty}{%
+ \pstThreeDLine[arrows=-](\pst@tempA,\rB,\pst@OffsetZ)(\pst@tempB,\rB,\pst@OffsetZ)%
+ \ifPst@IIIDlabels%
+ \pstPlanePut[plane=\psk@IIIDyTicksPlane](\pst@tempE,\rB,\pst@OffsetZ){\psxyzlabel{\nA\psk@ylabelFactor}}%
+ \fi%
+ }% end of multido
+ \fi%
+ \ifdim\psk@ThreeDplot@yMin pt<\z@ % only for negative parts of the axes
+ \pstFPadd\pst@tempB\psk@ThreeDplot@yMin{-\pst@OffsetY}
+ \pstFPDiv\pst@tempB{\pst@tempB}{\psk@ThreeDplot@deltay}
+ \pst@cnty=-\pst@tempB
+ \pstFPdiv\pst@tempB{\psk@IIIDticksize}{\psk@ThreeDplot@yThreeDunit}
+ \pstFPadd\pst@tempA{-\pst@tempB}{\pst@OffsetX}
+ \pstFPadd\pst@tempB{\pst@tempB}{\pst@OffsetX}
+ \pstFPadd\pst@tempC{\pst@OffsetY}{-\psk@ThreeDplot@deltay}
+ \pstFPadd\pst@tempD{\pst@OffsetY}{-\psk@Dy}
+ \pst@dimm=\pst@tempD pt\edef\pst@tempD{\strip@pt\pst@dimm}% strip the 00... from fp
+ \pstFPadd\pst@tempE{\psk@IIIDyticksep}{\pst@OffsetX}
+ \pstFPdiv\pst@tempE\pst@tempE\psk@ThreeDplot@xThreeDunit
+ \multido{\nA=\pst@tempD+-\psk@Dy,%
+ \rB=\pst@tempC+-\psk@ThreeDplot@deltay}
+ {\the\pst@cnty}{%
+ \pstThreeDLine[arrows=-](\pst@tempA,\rB,\pst@OffsetZ)(\pst@tempB,\rB,\pst@OffsetZ)%
+ \ifPst@IIIDlabels%
+ \pstPlanePut[plane=\psk@IIIDyTicksPlane](\pst@tempE,\rB,\pst@OffsetZ){\psxyzlabel{\nA\psk@ylabelFactor}}%
+ \fi
+ }% end of multido and y ticks and labels
+ \fi
%------------ z ticks and labels --------------------------
- \pst@dimz=\psk@ThreeDplot@zMax\p@%
- \pst@dima=\psk@ThreeDplot@zThreeDunit\p@%
- \divide\pst@dimz by \pst@dima%
- \pst@cntz=\number\pst@dimz\advance\pst@cntz by -1%
- \multido{\rA=0.0+\psk@Dz,\rB=0.0+\psk@ThreeDplot@zThreeDunit}{\pst@cntz}{%
- \pstThreeDLine[arrows=-](0,-\psk@IIIDticksize,\rB)(0,\psk@IIIDticksize,\rB)%
- \ifPst@IIIDlabels%
- \pstPlanePut[plane=\psk@IIIDzTicksPlane](0,\psk@IIIDzticksep,\rB){\psxyzlabel{\rA}}%
- \fi%
- }%
- \pst@dimz=\psk@ThreeDplot@zMin\p@%
- \pst@dima=\psk@ThreeDplot@zThreeDunit\p@%
- \pst@dima=\psk@ThreeDplot@deltaz\pst@dima%
- \divide\pst@dimz by \pst@dima%
- \ifdim\psk@ThreeDplot@zMin pt<\p@ \pst@cntz=-\number\pst@dimz
- \else\pst@cntz=\number\pst@dimz
- \fi%
- \multido{\rA=-\psk@Dz+-\psk@Dz,%
- \rB=-\psk@ThreeDplot@zThreeDunit+-\psk@ThreeDplot@zThreeDunit}{\pst@cntz}{%
- \pstThreeDLine[arrows=-](0,-\psk@IIIDticksize,\rB)(0,\psk@IIIDticksize,\rB)%
- \ifPst@IIIDlabels%
- \pstPlanePut[plane=\psk@IIIDzTicksPlane](0,\psk@IIIDzticksep,\rB){\psxyzlabel{\rA}}%
+ \ifdim\psk@ThreeDplot@zMax pt>\z@ % only for positive parts of the axes
+ \ifdim\psk@ThreeDplot@zMin pt>\z@
+ \pstFPadd\pst@tempC\psk@ThreeDplot@zMax{-\psk@ThreeDplot@zMin}
+ \else\let\pst@tempC\psk@ThreeDplot@zMax
\fi%
- }%
- \fi
- \fi%
+ \pstFPadd\pst@tempC\pst@tempC{-\pst@OffsetZ}
+ \pstFPDiv\pst@tempB\pst@tempC{\psk@ThreeDplot@deltaz}
+ \pst@cntz=\pst@int{\pst@tempB} \advance\pst@cntz by -1%
+ \pstFPdiv\pst@tempB\psk@IIIDticksize{\psk@ThreeDplot@yThreeDunit}
+ \pstFPadd\pst@tempA{-\pst@tempB}{\pst@OffsetY}
+ \pstFPadd\pst@tempB{\pst@tempB}{\pst@OffsetY}
+ \pstFPadd\pst@tempC\pst@OffsetZ{\psk@ThreeDplot@deltaz}
+ \pstFPadd\pst@tempD\pst@OffsetZ{\psk@Dz}
+ \pst@dimm=\pst@tempD pt\edef\pst@tempD{\strip@pt\pst@dimm}% strip the 00... from fp
+ \pstFPadd\pst@tempE{\psk@IIIDzticksep}{\pst@OffsetY}
+ \pstFPdiv\pst@tempE\pst@tempE\psk@ThreeDplot@yThreeDunit
+ \multido{\nA=\pst@tempD+\psk@Dz,
+ \rB=\pst@tempC+\psk@ThreeDplot@deltaz}%
+ {\the\pst@cntz}{%
+ \pstThreeDLine[arrows=-](\pst@OffsetX,\pst@tempA,\rB)(\pst@OffsetX,\pst@tempB,\rB)%
+ \ifPst@IIIDlabels%
+ \pstPlanePut[plane=\psk@IIIDzTicksPlane](\pst@OffsetX,\pst@tempE,\rB){\psxyzlabel{\nA\psk@zlabelFactor}}%
+ \fi%
+ }%
+ \fi
+ \ifdim\psk@ThreeDplot@zMin pt<\z@ % only for negative parts of the axes
+ \pstFPadd\pst@tempB\psk@ThreeDplot@zMin{-\pst@OffsetZ}
+ \pstFPDiv\pst@tempB\pst@tempB{\psk@ThreeDplot@deltaz}
+ \pst@cntz=-\pst@tempB%
+ \pstFPdiv\pst@tempB\psk@IIIDticksize{\psk@ThreeDplot@yThreeDunit}
+ \pstFPadd\pst@tempA{-\pst@tempB}{\pst@OffsetY}
+ \pstFPadd\pst@tempB{\pst@tempB}{\pst@OffsetY}
+ \pstFPadd\pst@tempC\pst@OffsetZ{-\psk@ThreeDplot@deltaz}
+ \pstFPadd\pst@tempD\pst@OffsetZ{-\psk@Dz}
+ \pst@dimm=\pst@tempD pt\edef\pst@tempD{\strip@pt\pst@dimm}% strip the 00... from fp
+ \pstFPadd\pst@tempE{\psk@IIIDzticksep}{\pst@OffsetY}
+ \pstFPdiv\pst@tempE\pst@tempE\psk@ThreeDplot@yThreeDunit
+ \multido{\nA=\pst@tempD+-\psk@Dz,%
+ \rB=\pst@tempC+-\psk@ThreeDplot@deltaz}{\the\pst@cntz}{%
+ \pstThreeDLine[arrows=-](\pst@OffsetX,\pst@tempA,\rB)(\pst@OffsetX,\pst@tempB,\rB)%
+ \ifPst@IIIDlabels%
+ \pstPlanePut[plane=\psk@IIIDzTicksPlane](\pst@OffsetX,\pst@tempE,\rB){\psxyzlabel{\nA\psk@zlabelFactor}}%
+ \fi%
+ }% end \multido
+ \fi% end \ifdim\psk@ThreeDplot@zMin
+ \fi% end \ifPst@IIIDticks%
+ \fi% end \ifPst@drawing
\endgroup%
\ignorespaces%
}
@@ -460,7 +504,7 @@
% planeGrids
%
\newdimen\pst@dx\newdimen\pst@dy
-\def\pstThreeDPlaneGrid{\pst@object{pstThreeDPlaneGrid}}
+\def\pstThreeDPlaneGrid{\def\pst@par{}\pst@object{pstThreeDPlaneGrid}}
\def\pstThreeDPlaneGrid@i(#1,#2)(#3,#4){{%
\pst@killglue
\use@par
@@ -514,7 +558,7 @@
% transform the 3d coordinates of the point (#1,#2,#3)
% into a 2d and moveto
%
-\def\pstThreeDmoveto{\pst@object{pstThreeDmoveto}}
+\def\pstThreeDmoveto{\def\pst@par{}\pst@object{pstThreeDmoveto}}
\def\pstThreeDmoveto@i(#1,#2,#3){%
\pst@killglue
\begingroup
@@ -563,7 +607,7 @@
\def\psput@##1{\pst@@getcoor{##1}\leavevmode\psput@cartesian}%
}%
-\def\pstThreeDLine{\NormalIIIDCoor\pst@object{lineIIID}}
+\def\pstThreeDLine{\NormalIIIDCoor\def\pst@par{}\pst@object{lineIIID}}
\def\lineIIID@i{%
\pst@killglue%
\pst@getarrows{%
@@ -575,7 +619,7 @@
\addto@pscode{%
\pst@3ddict
\IIIDplot@variables
- \psk@ThreeDplot@linejoin setlinejoin
+% \psk@ThreeDplot@linejoin setlinejoin
/dxUnit \psk@ThreeDplot@xThreeDunit\space def
/dyUnit \psk@ThreeDplot@yThreeDunit\space def
/dzUnit \psk@ThreeDplot@zThreeDunit\space def
@@ -595,9 +639,8 @@
%
% set a 3d dot
%
-\def\pstThreeDDot{\pst@object{pstThreeDDot}}
+\def\pstThreeDDot{\def\pst@par{}\pst@object{pstThreeDDot}}
\def\pstThreeDDot@i(#1,#2,#3){%
- \def\pst@tempThreeDDot{#1 #2 #3 }
\begin@SpecialObj
\pstThreeDNode(#1,#2,#3){pst@A} % we need the parameters
\ifx\psk@dotstyle\@none\else\psdots(pst@A)\fi
@@ -606,8 +649,8 @@
\addto@pscode{
\pst@3ddict
\IIIDplot@variables
- \psk@ThreeDplot@linejoin setlinejoin
- \pst@tempThreeDDot
+% \psk@ThreeDplot@linejoin setlinejoin
+ #1 #2 #3
\ifPst@SphericalCoor
ConvertToCartesian
\else
@@ -653,14 +696,15 @@
% transform the 3d coordinates of the node (#1,#2,#3)
% into a 2d node with the name #4
%
-\def\pstThreeDNode{\pst@object{pstThreeDNode}}
+\def\pstThreeDNode{\def\pst@par{}\pst@object{pstThreeDNode}}
\def\pstThreeDNode@i(#1,#2,#3)#4{%
\begin@SpecialObj%
- \def\pst@tempThreeDNode{#1 #2 #3 }%
+% \def\pst@tempThreeDNode{#1 #2 #3 }%
\pnode(!
\pst@3ddict
\IIIDplot@variables
- \pst@tempThreeDNode
+ #1 #2 #3
+% \pst@tempThreeDNode
\ifPst@SphericalCoor
ConvertToCartesian
\else
@@ -674,8 +718,7 @@
%
%\define@key[psset]{pst-3dplot}{nodeType}{\pst@getint{#1}\pst@IIIDNodeType}
%\psset{nodeType=0}
-%
-\def\pstIIIDNode{\pst@object{pstIIIDNode}}
+\def\pstIIIDNode{\def\pst@par{}\pst@object{pstIIIDNode}}
\def\pstIIIDNode@i(#1)(#2)(#3)(#4)(#5){%
\@ifnextchar({\pstIIIDNode@iii(#1)(#2)(#3)(#4)(#5)}{\pstIIIDNode@ii(#1)(#2)(#3)(#4)(#5)}}
@@ -731,30 +774,25 @@
}\ignorespaces}
%
% Trangle [options](Point1)(Point2)(Point3)
-%
-%\def\pstThreeDTriangle{\@ifnextchar[{\do@ThreeDTriangle}{\do@ThreeDTriangle[]}}
-\def\pstThreeDTriangle{\pst@object{pst@ThreeDTriangle}}
-\def\pst@ThreeDTriangle@i(#1)(#2)(#3){%
+\def\pstThreeDTriangle{\def\pst@par{}\pst@object{pst@ThreeDTriangle}}
+\def\pst@ThreeDTriangle@i(#1,#2,#3)(#4,#5,#6)(#7,#8,#9){%
\begingroup
\use@par
\ifPst@drawCoor%
\bgroup
- \pstThreeDDot[style=showCoorStyle](#1)
- \pstThreeDDot[style=showCoorStyle](#2)
- \pstThreeDDot[style=showCoorStyle](#3)
+ \pstThreeDDot[style=showCoorStyle](#1,#2,#3)
+ \pstThreeDDot[style=showCoorStyle](#4,#5,#6)
+ \pstThreeDDot[style=showCoorStyle](#7,#8,#9)
\egroup
\fi%
- \getThreeDCoor{#1}\pst@tempAA
- \getThreeDCoor{#2}\pst@tempBB
- \getThreeDCoor{#3}\pst@tempCC
\begin@ClosedObj
\addto@pscode{%
\pst@3ddict
\IIIDplot@variables
- \psk@ThreeDplot@linejoin setlinejoin
- /P1 { \pst@tempAA } def % x y z or Radius longitude lattitude
- /P2 { \pst@tempBB } def %
- /P3 { \pst@tempCC } def %
+% \psk@ThreeDplot@linejoin setlinejoin
+ /P1 { #1 #2 #3 } def % x y z or Radius longitude lattitude
+ /P2 { #4 #5 #6 } def %
+ /P3 { #7 #8 #9 } def %
/SphericalCoor \ifPst@SphericalCoor true \else false \fi def %
/xUnit { \pst@number\psxunit\space mul } def
/yUnit { \pst@number\psyunit\space mul } def
@@ -775,16 +813,6 @@
end
}%
\end@ClosedObj%
-\iffalse
- \pstThreeDNode(#1){A}
- \pstThreeDNode(#2){B}
- \pstThreeDNode(#3){C}
- \ifx\psk@fillstyle\@none%
- \else\pscustom{\code{\psk@ThreeDplot@linejoin\space setlinejoin}\fi%
- \psline(A)(B)(C)(A)(B)%
- \ifx\psk@fillstyle\@none\else}\fi%
- \end@SpecialObj
-\fi
\endgroup
\ignorespaces}
%
@@ -795,30 +823,25 @@
% (#3) first direction vector ux,uy,uz
% (#4) second direction vector wx,wy,wz
%
-\def\pstThreeDSquare{\pst@object{pstThreeDSquare}}
-\def\pstThreeDSquare@i(#1)(#2)(#3){%
- \ifPst@drawCoor {%
- \pstThreeDDot[style=showCoorStyle](#1)%
- \pst@addThreeDVec(#1)(#2)\pst@tempAA\pst@tempBB\pst@tempCC
- \pstThreeDDot[style=showCoorStyle](\pst@tempAA,\pst@tempBB,\pst@tempCC)%
- \pst@addThreeDVec(#1)(#3)\pst@tempAA\pst@tempBB\pst@tempCC
- \pstThreeDDot[style=showCoorStyle](\pst@tempAA,\pst@tempBB,\pst@tempCC)%
- \pst@addThreeDVec(\pst@tempAA,\pst@tempBB,\pst@tempCC)%
- (#2)\pst@tempAA\pst@tempBB\pst@tempCC
- \pstThreeDDot[style=showCoorStyle](\pst@tempAA,\pst@tempBB,\pst@tempCC)%
- }%
- \fi
- \getThreeDCoor{#1}\pst@tempAA
- \getThreeDCoor{#2}\pst@tempBB
- \getThreeDCoor{#3}\pst@tempCC
+\def\pstThreeDSquare{\def\pst@par{}\pst@object{pstThreeDSquare}}
+\def\pstThreeDSquare@i(#1,#2,#3)(#4,#5,#6)(#7,#8,#9){%
+ \ifPst@drawCoor %
+ \pstThreeDDot[style=showCoorStyle](#1,#2,#3)%
+% \pst@addThreeDVecPS(#1,#2,#3)(#4,#5,#6)\pst@tempAA\pst@tempBB\pst@tempCC
+ \pstThreeDDot[style=showCoorStyle](#1 #4 add, #2 #5 add, #3 #6 add)%
+% \pst@addThreeDVecPS(#1,#2,#3)(#7,#8,#9)\pst@tempAA\pst@tempBB\pst@tempCC
+ \pstThreeDDot[style=showCoorStyle](#1 #7 add, #2 #8 add, #3 #9 add)%
+% \pst@addThreeDVecPS(\pst@tempAA,\pst@tempBB,\pst@tempCC)(#4,#5,#6)\pst@tempA\pst@tempB\pst@tempC
+ \pstThreeDDot[style=showCoorStyle](#1 #4 add #7 add, #2 #5 add #8 add, #3 #6 add #9 add)%
+ \fi%
\begin@ClosedObj
\addto@pscode{
\pst@3ddict
\IIIDplot@variables
- \psk@ThreeDplot@linejoin setlinejoin
- /P1 { \pst@tempAA } def % x y z or Radius longitude lattitude
- /P2 { \pst@tempBB } def %
- /P3 { \pst@tempCC } def %
+% \psk@ThreeDplot@linejoin setlinejoin
+ /P1 { #1 #2 #3 } def % x y z or Radius longitude lattitude
+ /P2 { #4 #5 #6 } def %
+ /P3 { #7 #8 #9 } def %
/SphericalCoor \ifPst@SphericalCoor true \else false \fi def %
/xUnit { \pst@number\psxunit\space mul } def
/yUnit { \pst@number\psyunit\space mul } def
@@ -844,7 +867,6 @@
}%
\end@ClosedObj%
}
-
%
% draws a threeD Box
% [#1] options
@@ -852,48 +874,48 @@
% (#3) second direction vector vx,vy,vz
% (#4) third direction vector wx,wy,wz
%
-\def\pstThreeDBox{\@ifnextchar[{\pstThreeDBox@i}{\pstThreeDBox@i[]}}
-\def\pstThreeDBox@i[#1](#2)(#3)(#4)(#5){%
+\def\pstThreeDBox{\pst@object{pstThreeDBox}}
+\def\pstThreeDBox@i(#1,#2,#3){%
\pst@killglue%
\begingroup%
- \psset{linestyle=\psk@ThreeDplot@invisibleLineStyle}%
- \psset{#1}%
-% \pstVerb{ \pst@3ddict \IIIDplot@variables\space end }%
+ \addbefore@par{linestyle=\psk@ThreeDplot@invisibleLineStyle}%
+ \use@par%
+ \def\pst@tempX{#1 }%
+ \def\pst@tempY{#2 }%
+ \def\pst@tempZ{#3 }%
+ \pstThreeDBox@ii%
+}
+\def\pstThreeDBox@ii(#1,#2,#3)(#4,#5,#6)(#7,#8,#9){%%\def\pstThreeDBox@i[#1](#2)(#3)(#4)(#5)
\iftrue
- \pstThreeDSquare[#1](#2)(#4)(#5) % lower square
- \pstThreeDSquare(#2)(#3)(#4)% back square
-%
+ \pstThreeDSquare(\pst@tempX,\pst@tempY,\pst@tempZ)(#4,#5,#6)(#7,#8,#9)% lower square
+ \pstThreeDSquare(\pst@tempX,\pst@tempY,\pst@tempZ)(#1,#2,#3)(#4,#5,#6)% back square
\psset{linestyle=\psk@ThreeDplot@visibleLineStyle}%
- \pst@addThreeDVec(#2)(#4)\pst@tempA\pst@tempB\pst@tempC
- \pstThreeDSquare[#1](\pst@tempA,\pst@tempB,\pst@tempC)(#3)(#5)% left square
- \pst@addThreeDVec(#2)(#3)\pst@tempA\pst@tempB\pst@tempC
- \pstThreeDSquare[#1](\pst@tempA,\pst@tempB,\pst@tempC)(#4)(#5)% top square
- \pst@addThreeDVec(#2)(#5)\pst@tempA\pst@tempB\pst@tempC
- \pstThreeDSquare[#1](\pst@tempA,\pst@tempB,\pst@tempC)(#3)(#4)% front square
+ \pstThreeDSquare(\pst@tempX #4 add,\pst@tempY #5 add,\pst@tempZ #6 add)(#1,#2,#3)(#7,#8,#9)% left square
+ \pstThreeDSquare(\pst@tempX #1 add,\pst@tempY #2 add,\pst@tempZ #3 add)(#4,#5,#6)(#7,#8,#9)% top square
+ \pstThreeDSquare(\pst@tempX #7 add,\pst@tempY #8 add,\pst@tempZ #9 add)(#1,#2,#3)(#4,#5,#6)% front square
\else% better support for hidden lines
- \pstThreeDSquare[#1](#2)(#4)(#5) % lower square
+ \pstThreeDSquare(\pst@tempX,\pst@tempY,\pst@tempZ)(#4,#5,#6)(#7,#8,#9) % lower square
\pst@absdim{\psk@ThreeDplot@Alpha pt}\pst@dimo
- \ifdim\pst@dimo<90pt \ifdim\pst@dimo>270pt
- \pstThreeDSquare(#2)(#3)(#4)% back square
- \else
- \pst@addThreeDVec(#2)(#5)\pst@tempA\pst@tempB\pst@tempC
- \pstThreeDSquare[#1](\pst@tempA,\pst@tempB,\pst@tempC)(#3)(#4)% front square
- \fi\fi
-%
+ \ifdim\pst@dimo<90pt
+ \ifdim\pst@dimo>270pt
+ \pstThreeDSquare(\pst@tempX,\pst@tempY,\pst@tempZ)(#1,#2,#3)(#4,#5,#6)% back square
+ \else
+ \pstThreeDSquare(\pst@tempX #7 add,\pst@tempY #8 add,\pst@tempZ #9 add)(#1,#2,#3)(#4,#5,#6)% front square
+ \fi%
+ \fi%
\psset{linestyle=\psk@ThreeDplot@visibleLineStyle}%
- \pst@addThreeDVec(#2)(#4)\pst@tempA\pst@tempB\pst@tempC
- \pstThreeDSquare[#1](\pst@tempA,\pst@tempB,\pst@tempC)(#3)(#5)% left square
- \pst@addThreeDVec(#2)(#3)\pst@tempA\pst@tempB\pst@tempC
- \pstThreeDSquare[#1](\pst@tempA,\pst@tempB,\pst@tempC)(#4)(#5)% top square
- \ifdim\pst@dimo<90pt \ifdim\pst@dimo>270pt
- \pst@addThreeDVec(#2)(#5)\pst@tempA\pst@tempB\pst@tempC
- \pstThreeDSquare[#1](\pst@tempA,\pst@tempB,\pst@tempC)(#3)(#4)% front square
- \else
- \pstThreeDSquare(#2)(#3)(#4)% back square
- \fi\fi
-\fi
- \endgroup%
- \ignorespaces%
+ \pstThreeDSquare(\pst@tempX #4 add,\pst@tempY #5 add,\pst@tempZ #6 add)(#1,#2,#3)(#7,#8,#9)% left square
+ \pstThreeDSquare(\pst@tempX #1 add,\pst@tempY #2 add,\pst@tempZ #3 add)(#4,#5,#6)(#7,#8,#9)% top square
+ \ifdim\pst@dimo<90pt
+ \ifdim\pst@dimo>270pt
+ \pstThreeDSquare(\pst@tempX #7 add,\pst@tempY #8 add,\pst@tempZ #9 add)(#1,#2,#3)(#4,#5,#6)% front square
+ \else
+ \pstThreeDSquare(\pst@tempX,\pst@tempY,\pst@tempZ)(#1,#2,#3)(#4,#5,#6)% back square
+ \fi%
+ \fi%
+\fi%
+ \endgroup%
+ \ignorespaces%
}
%
% set a 3d ellipse/circle
@@ -903,7 +925,7 @@
% #3 radius ax,ay,az
% #4 radius bx,by,bz
%
-\def\pstThreeDEllipse{\pst@object{pstThreeDEllipse}}
+\def\pstThreeDEllipse{\def\pst@par{}\pst@object{pstThreeDEllipse}}
\def\pstThreeDEllipse@i(#1)(#2)(#3){%
\addbefore@par{plotstyle=curve}%
\@nameuse{beginplot@\psplotstyle}%
@@ -912,7 +934,7 @@
\getThreeDCoor{#3}\pst@tempB% b
\addto@pscode{%
\pst@3ddict \IIIDplot@variables end
- \psk@ThreeDplot@linejoin setlinejoin
+% \psk@ThreeDplot@linejoin setlinejoin
\ifPst@SphericalCoor
\pst@tempC\space \tx@ConvertToCartesian
/zM \tx@Z def /yM \tx@Y def /xM \tx@X def % center
@@ -984,7 +1006,7 @@
}%
\@nameuse{endplot@\psplotstyle}}
%
-\def\pstThreeDCircle{\pst@object{pstThreeDCircle}}
+\def\pstThreeDCircle{\def\pst@par{}\pst@object{pstThreeDCircle}}
\def\pstThreeDCircle@i(#1)(#2)(#3){% (vec O)(vec a)(vec b)
\addbefore@par{plotstyle=curve}%
\@nameuse{beginplot@\psplotstyle}%
@@ -993,7 +1015,7 @@
\getThreeDCoor{#3}\pst@tempB% b
\addto@pscode{%
\pst@3ddict \IIIDplot@variables end
- \psk@ThreeDplot@linejoin setlinejoin
+% \psk@ThreeDplot@linejoin setlinejoin
\ifPst@SphericalCoor
\pst@tempC\space \tx@ConvertToCartesian
/zM \tx@Z def /yM \tx@Y def /xM \tx@X def % center
@@ -1048,7 +1070,7 @@
%
% cone[options](center)(radiusA vec)(radiusB vec){height}
%
-\def\pstThreeDCone{\pst@object{pstThreeDCone}}
+\def\pstThreeDCone{\def\pst@par{}\pst@object{pstThreeDCone}}
\def\pstThreeDCone@i(#1)(#2)(#3)#4{{%
\use@par
\pstThreeDEllipse(#1)(#2)(#3)%
@@ -1059,7 +1081,7 @@
\addto@pscode{
\pst@3ddict
\IIIDplot@variables
- \psk@ThreeDplot@linejoin setlinejoin
+% \psk@ThreeDplot@linejoin setlinejoin
/xUnit { \pst@number\psxunit\space mul } def
/yUnit { \pst@number\psyunit\space mul } def
/SphericalCoor \ifPst@SphericalCoor true \else false \fi def %
@@ -1076,7 +1098,7 @@
\end@OpenObj%
}\ignorespaces}
%
-\def\pstRotNodeIIID{\pst@object{RotNodeIIID}}
+\def\pstRotNodeIIID{\def\pst@par{}\pst@object{RotNodeIIID}}
\def\RotNodeIIID@i(#1,#2,#3)(#4,#5,#6)#7{%
\pst@killglue
\begingroup%
@@ -1102,7 +1124,9 @@
%
% Paraboloid (Idea is from Manuel ... )
%
-\def\pstParaboloid{\pst@object{pstParaboloid}}
+\def\tx@SetMatrixThreeD{tx@3Ddict begin SetMatrixThreeD end }
+
+\def\pstParaboloid{\def\pst@par{}\pst@object{pstParaboloid}}
\def\pstParaboloid@i{\@ifnextchar(\pstParaboloid@ii{\pstParaboloid@ii(0,0,0)}}
\def\pstParaboloid@ii(#1,#2,#3)#4#5{% #1:height #2:radius
\addto@par{viewpoint=0 0 0}%
@@ -1129,7 +1153,7 @@
viewpoint
\pst@3ddict /vZ ED /vY ED /vX ED
\IIIDplot@variables
- \psk@ThreeDplot@linejoin setlinejoin
+% \psk@ThreeDplot@linejoin setlinejoin
/pas 0.5 def
/pas10 pas 10 div def
/cmyk {} def % we need only the values
@@ -1165,13 +1189,13 @@
\ignorespaces}
%
% Sphere, the new one
-\def\pstThreeDSphere{\pst@object{pstSphereIIID}}
+\def\pstThreeDSphere{\def\pst@par{}\pst@object{pstSphereIIID}}
\def\pstSphereIIID@i(#1,#2,#3)#4{% #1:origin (x,y,z) #2:radius
\addto@par{viewpoint=0 0 0}% to make it compatible with pst-3dplot
\begin@SpecialObj%
\use@par
\addto@pscode{%
- \psk@ThreeDplot@linejoin setlinejoin
+% \psk@ThreeDplot@linejoin setlinejoin
/viewpoint {% to make it compatible with parallel projection
\psk@viewpoint
\ifcase\psk@ThreeDplot@coorType
@@ -1201,14 +1225,14 @@
\end@SpecialObj%
\ignorespaces}
%
-\def\pstIIIDCylinder{\pst@object{pstIIIDCylinder}}
+\def\pstIIIDCylinder{\def\pst@par{}\pst@object{pstIIIDCylinder}}
\def\pstIIIDCylinder@i{\@ifnextchar({\pstIIIDCylinder@ii}{\pstIIIDCylinder@ii(0,0,0)}}
\def\pstIIIDCylinder@ii(#1,#2,#3)#4#5{{%
\let\pst@parOrig\pst@par
\begin@ClosedObj
\addto@pscode{%
\pst@3ddict \IIIDplot@variables end
- \psk@ThreeDplot@linejoin setlinejoin
+% \psk@ThreeDplot@linejoin setlinejoin
/POrig {
#1 #2 #3 \ifPst@CylindricalCoor \tx@ConvCylToCartesian \fi
\pst@number\psunit mul 3 1 roll
@@ -1226,7 +1250,7 @@
\begin@SpecialObj
\addto@pscode{%
\pst@3ddict \IIIDplot@variables end
- \psk@ThreeDplot@linejoin setlinejoin
+% \psk@ThreeDplot@linejoin setlinejoin
/POrig {
#1 #2 #3 \ifPst@CylindricalCoor \tx@ConvCylToCartesian \fi
\pst@number\psunit mul 3 1 roll
@@ -1247,7 +1271,7 @@
\begin@ClosedObj
\addto@pscode{%
\pst@3ddict \IIIDplot@variables end
- \psk@ThreeDplot@linejoin setlinejoin
+% \psk@ThreeDplot@linejoin setlinejoin
/POrig {
#1 #2 #3 #5 add \ifPst@CylindricalCoor \tx@ConvCylToCartesian \fi
\pst@number\psunit mul 3 1 roll
@@ -1265,7 +1289,7 @@
%
%-------------------------- Cylinder ----------------------------
%
-\def\psCylinder{\pst@object{psCylinder}}
+\def\psCylinder{\def\pst@par{}\pst@object{psCylinder}}
\def\psCylinder@i{\@ifnextchar(\psCylinder@ii{\psCylinder@ii(0,0,0)}}
\def\psCylinder@ii(#1,#2,#3)#4#5{% #1,#2,#3: center of the bottom #4:radius #5:height
\addto@par{viewpoint=0 0 0}%
@@ -1292,7 +1316,7 @@
viewpoint
\pst@3ddict /vZ ED /vY ED /vX ED
\IIIDplot@variables end
- \psk@ThreeDplot@linejoin setlinejoin
+% \psk@ThreeDplot@linejoin setlinejoin
%
#1 #2 #3 \ifPst@CylindricalCoor \tx@ConvCylToCartesian \fi
\pst@number\pst@dima \pst@number\psxunit div % Radius
@@ -1328,7 +1352,7 @@
%
%-------------------------- Box ----------------------------
%
-\def\psBox{\pst@object{psBox}}
+\def\psBox{\def\pst@par{}\pst@object{psBox}}
\def\psBox@i{\@ifnextchar(\psBox@ii{\psBox@ii(0,0,0)}}
\def\psBox@ii(#1,#2,#3)#4#5#6{% #1,#2,#3: center of the lower left edge
% #4:width #5:height #6:depth
@@ -1355,7 +1379,7 @@
\tx@3DPlotDict
/vZ ED /vY ED /vX ED
\IIIDplot@variables
- \psk@ThreeDplot@linejoin setlinejoin
+% \psk@ThreeDplot@linejoin setlinejoin
%
#1 2 div #2 2 div #3 2 div % wieso 1/2 ????
\pst@number\pst@dima \pst@number\psxunit div % Width
@@ -1608,9 +1632,12 @@
}
\def\parametricPlotThreeD@ii(#1,#2)(#3,#4)#5{{%
\pst@killglue%
- \pst@dima=#3pt\pst@dimb=#4pt % #3=#4, then we have a 3d line
- \ifdim\pst@dima=\pst@dimb\psset{yPlotpoints=1}\fi% and set yPlotpoints=1
\use@par%
+ \ifPst@CoorCheck%
+ \pst@dima=#3pt\pst@dimb=#4pt % #3=#4, then we have a 3d line
+ \ifdim\pst@dima=\pst@dimb
+ \def\psk@ThreeDplot@yPlotpoints{1 }\fi% and set yPlotpoints=1
+ \fi%
\@pstfalse%
\@nameuse{beginplot@\psplotstyle}%
\@nameuse{testqp@\psplotstyle}% quick plot or something special
@@ -2226,7 +2253,7 @@
\edef#3{\UseCos#1}%
}
%
-\def\pstRotPointIIID{\pst@object{RotPointIIID}}% A real TeX solution
+\def\pstRotPointIIID{\def\pst@par{}\pst@object{RotPointIIID}}% A real TeX solution
\def\RotPointIIID@i(#1,#2,#3)#4#5#6{%
\pst@killglue%
\begingroup%