summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pst-shell/pst-shell.tex
blob: 0c1ecd3d5bbeb013f40990b6baecff1c45602100 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
%%
%% This is file `pst-shell.tex',
%%
%% IMPORTANT NOTICE:
%%
%% Package `pst-shell'
%%
%% Manuel Luque <manuel.luque27@gmail.com> (France)
%% Herbert Voss <hvoss@tug.org> (Germany)
%%
%% December 22, 2016
%%
%% 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-shell' is a PSTricks package to create sea shell
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname PSTSHELLLoaded\endcsname
\let\PSTSHELLLoaded\endinput
% Requires PSTricks, ps-solides3d, pst-xkey packages
\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
\ifx\PSTGradLoaded\endinput \else\input pst-solides3d.tex\fi
%\ifx\PSTXKeyLoaded\endinput \else\input pst-xkey.tex \fi
\def\fileversion{0.02}
\def\filedate{2016/12/23}
\message{`PST' v\fileversion, \filedate}

\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
\pst@addfams{pst-shell}
% 14 paramétres
% D, A,\alpha,\beta,\mu,\Omega,\phi, b, L, P, W1, W2,N
% JORGE PICADO
\define@key[psset]{pst-shell}{D}[1]{\def\pst@shell@D{#1 }} % sens de l'enroulement
\define@key[psset]{pst-shell}{A}[25]{\def\pst@shell@A{#1 }} % r(\theta=0)
\define@key[psset]{pst-shell}{alpha}[83]{\def\pst@shell@alpha{#1 }} %
\define@key[psset]{pst-shell}{beta}[42]{\def\pst@shell@beta{#1 }} %
\define@key[psset]{pst-shell}{mu}[10]{\def\pst@shell@mu{#1 }} %
\define@key[psset]{pst-shell}{Omega}[30]{\def\pst@shell@Omega{#1 }} %
\define@key[psset]{pst-shell}{phi}[70]{\def\pst@shell@phi{#1 }} %
\define@key[psset]{pst-shell}{a}[12]{\def\pst@shell@a{#1 }} %
\define@key[psset]{pst-shell}{b}[20]{\def\pst@shell@b{#1 }} %
\define@key[psset]{pst-shell}{L}[1]{\def\pst@shell@L{#1 }} %
\define@key[psset]{pst-shell}{P}[1]{\def\pst@shell@P{#1 }} %
\define@key[psset]{pst-shell}{W1}[1]{\def\pst@shell@Wi{#1 }} %
\define@key[psset]{pst-shell}{W2}[1]{\def\pst@shell@Wii{#1 }}
\define@key[psset]{pst-shell}{N}[0]{\def\pst@shell@N{#1 }}
%%%
\psset[pst-shell]{D=1,A=25,alpha=83,beta=42,mu=10,Omega=30,phi=70,a=12,b=20,L=1,P=1,W1=1,W2=1,N=0}
%
\pstheader{pst-shell.pro}
%
\def\pst@shell@variables{
  /shell@D \pst@shell@D def
  /shell@A \pst@shell@A def 
  /shell@alpha \pst@shell@alpha def
  /shell@beta \pst@shell@beta def
  /shell@mu \pst@shell@mu def
  /shell@Omega \pst@shell@Omega def
  /shell@phi \pst@shell@phi def
  /shell@a \pst@shell@a def
  /shell@b \pst@shell@b def
  /shell@L \pst@shell@L def
  /shell@P \pst@shell@P def
  /shell@Wi \pst@shell@Wi def
  /shell@Wii \pst@shell@Wii def
  /shell@N \pst@shell@N def
}
%
\newpsstyle[pst-shell]{Argonauta}{alpha=80,beta=90,phi=0,mu=0,Omega=0,A=2,a=2,b=1.5,
  L=0.3,W1=150,W2=20,P=5,N=30}%
\newpsstyle[pst-shell]{Epiteonium}{D=1,A=9.5,alpha=85.9,beta=9,mu=0,Omega=0,
  phi=81,a=2.1,b=1.6,L=1.3,P=-60,W1=200,W2=20,N=8.3}
\newpsstyle[pst-shell]{Lyria}{D=1,A=50,alpha=83.9,beta=-19,mu=1,Omega=-2,
  phi=45,a=40,b=14,L=4,P=0,W1=6,W2=27,N=8}
\newpsstyle[pst-shell]{Turritella}{D=1,A=22.2,alpha=88.9,beta=4,mu=0,Omega=0,
  phi=55,a=1.3,b=1.5,L=0,P=0,W1=1,W2=1,N=0}
\newpsstyle[pst-shell]{Tonna}{D=1,A=70,alpha=82.4,beta=0,mu=10,Omega=0,phi=0,
  a=58,b=50,L=0,P=0,W1=1,W2=1,N=0}
\newpsstyle[pst-shell]{Achatina}{D=1,A=109,alpha=86.6,beta=8.5,mu=0,Omega=0,
  phi=0,a=32,b=48,L=0,P=0,W1=1,W2=1,N=0}
\newpsstyle[pst-shell]{Oxystele}{D=1,A=47,alpha=84.9,beta=7,mu=0,Omega=0,phi=-36,
  a=40,b=19,L=0,P=0,W1=1,W2=1,N=0}
\newpsstyle[pst-shell]{Conus}{D=1,A=7,alpha=87,beta=7,mu=0,Omega=0,phi=78,
  a=4.3,b=1,L=0,P=0,W1=1,W2=1,N=0}
\newpsstyle[pst-shell]{Nautilus}{D=-1,A=2,alpha=80,beta=90,mu=0,Omega=0,phi=0,
  a=2,b=1.5,L=0,P=0,W1=0,W2=0,N=0}
%
\def\psShell{\pst@object{psShell}}
\def\psShell@i{\@ifnextchar(\psShell@ii{\psShell@ii(0,0,0)}}
\def\psShell@ii(#1){%
  \begin@SpecialObj
  \if$\pst@solides@file$
    \addto@pscode{ tx@ShellDict begin \pst@shell@variables }%
    \defFunction{pst@coquillage}(uu,vu){xShell}{yShell}{zShell}
    \psSolid[object=surfaceparametree,function=pst@coquillage](#1)
    \showpointsfalse
    \addto@pscode{ end }% of tx@ShellDict %
  \else
    \psSolid[object=datfile](#1)
  \fi
  \end@SpecialObj
  \ignorespaces}%
%
\catcode`\@=\TheAtCode\relax
%
\endinput