%% $Id: pst-thick.tex 170 2009-12-08 21:30:53Z herbert $
%%
%% This is file `pst-thick.tex',
%%
%% IMPORTANT NOTICE:
%%
%% Package `pst-thick.tex'
%%
%% MAnuel Luque
%% Herbert Voss
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory CTAN:/macros/latex/base/lppl.txt.
%%
%% DESCRIPTION:
%%   `pst-mirror' is a PSTricks package to view objects ob a spherical sphere
%%
%%
%
\ifx\PSTPlotLoaded\endinput\else\input pst-plot.tex\fi
\ifx\PSTNodeLoaded\endinput\else\input pst-node.tex\fi
\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey.tex\fi
%
\def\fileversion{1.0}
\def\filedate{2009/12/08}
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax

\definecolor{darkgreen}{cmyk}{1,0,1,0.5}
\newpsstyle{vide}{fillstyle=none}
\newpsstyle{thickline}{fillstyle=solid,fillcolor=red!25,linecolor=red,plotpoints=360}
\newpsstyle{onlythecurvered}{linecolor=red,plotpoints=360}
\newpsstyle{onlythecurveblue}{linecolor=blue,plotpoints=360}
\newpsstyle{thicklineblue}{fillstyle=solid,fillcolor=blue!25,linecolor=blue,plotpoints=360}
\newpsstyle{rainbow}{fillstyle=ccslopes,linecolor=red,plotpoints=360}
\newpsstyle{solide}{fillstyle=solid,fillcolor=black,plotpoints=360}
\newpsstyle{serpent}{fillstyle=gradient,gradbegin=darkgreen,gradend=yellow,gradmidpoint=0,linecolor=green,gradangle=90,plotpoints=360}
\newpsstyle{default}{}% lignes noires, rien � l'int�rieur

\pst@addfams{pst-thick}
%
\define@key[psset]{pst-thick}{E}[1]{\def\psk@thick@E{#1}}
\define@key[psset]{pst-thick}{K}[0]{\def\psk@thick@K{#1}}% K=0 => angle de rotation/normale � la courbe
\define@key[psset]{pst-thick}{stylethick}[thickline]{\def\psk@thick@stylethick{#1}}% style
\define@key[psset]{pst-thick}{stylecurve1}[onlythecurvered]{\def\psk@thick@stylecurveA{#1}}% style
\define@key[psset]{pst-thick}{stylecurve2}[onlythecurvered]{\def\psk@thick@stylecurveB{#1}}% style
\psset[pst-thick]{E=1,K=0,stylethick=thickline,stylecurve1=onlythecurvered,stylecurve2=onlythecurvered}

\define@boolkey[psset]{pst-thick}[Pst@]{curveonly}[true]{}
\psset[pst-thick]{curveonly=false}

\SpecialCoor

\def\CalculsCurves{%
   /ds dx dup mul dy dup mul add sqrt def
   /dx dx ds div def
   /dy dy ds div def
   /dx' K cos dx mul K sin dy mul sub def
   /dy' K sin dx mul K cos dy mul add def
   /nx E 2 div dy' mul neg def % normale x
   /ny E 2 div dx' mul def % normale y
   /x1 x0 nx add def
   /y1 y0 ny add def
     x1 y1 }

\def\psthick{\pst@object{psthick}}%
\def\psthick@i#1#2#3{{%
 \use@par
 \ifPst@curveonly
   \parametricplot[style=\psk@thick@stylecurveA]{#1}{#2}{%
     /E \psk@thick@E\space def /K \psk@thick@K\space def
     #3 \CalculsCurves }%
   \parametricplot[style=\psk@thick@stylecurveB]{#2}{#1}{%
     /E \psk@thick@E\space def
     /K \psk@thick@K\space def
     #3
     /ds dx dup mul dy dup mul add sqrt def
     /dx dx ds div def
     /dy dy ds div def
     /dx' K cos dx mul K sin dy mul sub def
     /dy' K sin dx mul K cos dy mul add def
     /nx E 2 div dy' mul neg def % normale x
     /ny E 2 div dx' mul def % normale y
     x0 nx add y0 ny add  }
 \else
   \pscustom[style=\psk@thick@stylethick]{%
     \parametricplot{#1}{#2}{%
       /E \psk@thick@E\space def
       /K \psk@thick@K\space def
       #3 \CalculsCurves }%
     \parametricplot{#2}{#1}{ #3 \CalculsCurves }
     \closepath
    }
  \fi}\ignorespaces}

\def\fonctionSinus#1#2{%
   /P #1 def % p�riode (10 unit�s)
   /A #2 def % amplitude
   /O 360 P div def % pulsation 2*pi/P
   /x0 t def
   /y0 t O mul sin A mul def % A*sin(O*t)
   /dx dt def
   /dy t dt add O mul sin
       t O mul sin
       sub
       A mul def }

\catcode`\@=\PstAtCode\relax
\endinput