diff options
Diffstat (limited to 'graphics/pstricks/contrib/pst-solides3d/dvips/pst-solides3d.pro')
-rw-r--r-- | graphics/pstricks/contrib/pst-solides3d/dvips/pst-solides3d.pro | 124 |
1 files changed, 89 insertions, 35 deletions
diff --git a/graphics/pstricks/contrib/pst-solides3d/dvips/pst-solides3d.pro b/graphics/pstricks/contrib/pst-solides3d/dvips/pst-solides3d.pro index d65e081716..b797130a8d 100644 --- a/graphics/pstricks/contrib/pst-solides3d/dvips/pst-solides3d.pro +++ b/graphics/pstricks/contrib/pst-solides3d/dvips/pst-solides3d.pro @@ -1,18 +1,21 @@ %! % PostScript prologue for pst-solides3d.tex. -% Version 4.27, 2018/12/27 +% Version 4.29, 2023/11/02 % %% COPYRIGHT 2009-2017 by Jean-Paul Vignault -%% opacity changes and fixes by Herbert Voss +%% opacity changes and fixes by Herbert Voss C 2021 %% %% 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. % -/SolidesDict 100 dict def -/SolidesbisDict 100 dict def + +/SolidesDict 200 dict def SolidesDict begin +systemdict /charpath known not { /charpath { pop pop } def } if + + %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% les variables globales gerees par PSTricks %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -33,7 +36,7 @@ SolidesDict begin %% /hauteurlignedeniveau 1 def %% /couleurlignedeniveau {rouge} def %% /linewidthlignedeniveau 4 def -%% /solidgrid true def +%%/solidgrid false def /aretescachees true def /defaultsolidmode 2 def % @@ -4800,12 +4803,8 @@ end %% /couleurlignedeniveau {rouge} def %% /linewidthlignedeniveau 4 def -/solidgridOn { - /solidgrid true def -} def -/solidgridOff { - /solidgrid false def -} def +/solidgridOn { /solidgrid true def } def +/solidgridOff { /solidgrid false def } def %% syntaxe : solid i string solidputfcolor %% syntaxe : solid str outputcolors @@ -4852,7 +4851,7 @@ end %% syntaxe : solid table (couleur) solidaddface -> - %% on ne se preoccupe pas des faces internes /solidaddface { -6 dict begin +8 dict begin dup isstring { /lac@uleur exch def } { @@ -5598,11 +5597,11 @@ end %% syntaxe : solid array solidputoutcolors --> - /solidputoutcolors { -4 dict begin +8 dict begin /newcolorstable exch def /solid exch def solid issolid not { - (Error : mauvais type d argument dans solidputoutcolors) == + (Error : mauvais type d argument dans solidputoutcolors) == quit } if /n newcolorstable length def @@ -5938,7 +5937,7 @@ end %% array, le tableau des indices des faces a numeroter, est optionnel %% si bool=true, on ne numerote que les faces visibles /solidnumfaces { -5 dict begin +10 dict begin dup isbool { /bool exch def } { @@ -5954,13 +5953,12 @@ end currentdict /option known not { /option [0 1 n 1 sub {} for] def } if - 0 1 option length 1 sub { /i exch def /j option i get def j ( ) cvs sol j bool cctextp3d } for -end + end } def %%%%% ### creusesolid ### @@ -9239,7 +9237,7 @@ end %% syntaxe : z0 r0 z1 [n1 n2] newcone -> solid %% syntaxe : a b {f} {sommet} [n1 n2] newcone -> solid /newcone { -11 dict begin +25 dict begin [ [/n /N] [1 6] [1 8] [1 10] [3 12] [5 18] ] gestionsolidmode dup xcheck { %% cas general @@ -9757,6 +9755,56 @@ end solidfuz end } def +% +/newellipsoid { +14 dict begin +/CalcCoordinates{ + a v cos mul u cos mul + b v cos mul u sin mul + c v sin mul + } def + ngrid aload pop + /nv exch def + /nu exch def + base aload pop + /vmax exch def + /vmin exch def + /umax exch def + /umin exch def +1 setlinejoin +/du umax umin sub nu div def +/dv vmax vmin sub nv div def + /S [ + 0 1 nu { + /i exch def + 0 1 nv { + /j exch def + /u umin i du mul add def + /v vmin j dv mul add def + CalcCoordinates + } for + } for + ] def +% + /F [ + 0 1 nu 1 sub { + /i exch def + 0 1 nv 1 sub { + /j exch def + [ + j 1 add i nv 1 add mul add + j 0 ne { + j i nv 1 add mul add + } if + j nv 1 add add i nv 1 add mul add + j nv 2 add add i nv 1 add mul add + ] + } for + } for + ] def + S F generesolid +end +} def %%%%% ### readsolidfile ### %% syntaxe : str readsolidfile -> solid @@ -10237,12 +10285,12 @@ end %% syntaxe : str x y show_dim --> str x y llx lly wx wy %% attention, doit laisser la pile intacte /show_dim { - 3 copy pop pop - newpath - 0 0 moveto - true charpath flattenpath pathbbox - closepath - newpath + 3 copy pop pop + newpath + 0 0 moveto + true charpath flattenpath pathbbox + closepath + newpath } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -10261,13 +10309,9 @@ end end } def -/pstrickactionR2 { - exec exch exec exch -} def +/pstrickactionR2 { exec exch exec exch } def -/pstrickactionR { - exec -} def +/pstrickactionR { exec } def /gere_pst-deffunction { counttomark @@ -10987,13 +11031,13 @@ grestore } ifelse } def /pst-plan- {pst-plan-plantype} def - +% %x0 y0 z0 [normalvect] norm2plan /pst-plan-plantype { dup plan2eq /eqpl@n exch def /plan-@k true def } def - +% /pst-plan { % args definition args (pst-plan-) definition append cvx exec @@ -11048,14 +11092,13 @@ grestore solidshowbase {l@pl@n projectionsifacevisible planshowbase} if solidshowbase3d {l@pl@n projectionsifacevisible planshowbase3d} if } def - - +% /pst-plan-normalpoint { /plan-@k false def norm2plan dup plan2eq /eqpl@n exch def } def - +% /pst-plan-equation { /plan-@k false def dup isarray { @@ -11130,7 +11173,18 @@ gsave grestore end } def +% +/pst-ellipsoid { + 10 dict begin +% [a b c] bubblesort /abc exch def +% /c abc 0 get def /b abc 1 get def /a abc 2 get def newellipsoid + [a b c] /abc exch def + /c abc 2 get def /b abc 1 get def /a abc 0 get def newellipsoid + gere_pstricks_opt + end +} def +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% procedures pour \psProjection %%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |