%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%                                                                   %%
%% This is file `pst-marble.tex'                                     %%
%%                                                                   %%
%% IMPORTANT NOTICE:                                                 %%
%%                                                                   %%
%% Package `pst-marble'                                              %%
%% Copyright (C) 2018  Aubrey Jaffer                                 %%
%%                                                                   %%
%% Aubrey Jaffers, with help of Manuel Luque, Jürgen Gilg            %%
%% Email address: agj@alum.mit.edu                                   %%
%%                                                                   %%
%% This program can redistributed and/or modified under              %%
%% the terms of the LaTeX Project Public License                     %%
%% Distributed from CTAN archives in directory                       %%
%% macros/latex/base/lppl.txt; either version 1.3c of                %%
%% the License, or (at your option) any later version.               %%
%%                                                                   %%
%% DESCRIPTION:                                                      %%
%%   `pst-marble' is a PSTricks package to draw marble-like patterns %%
%%                                                                   %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\csname PSTMARBLELoaded\endcsname
\let \PSTMARBLELoaded\endinput
\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
\ifx\PSTXKeyLoaded\endinput \else\input pst-xkey.tex\fi
\def\fileversion{1.0}
\def\filedate{2018/10/19}
\message{`PST' v\fileversion, \filedate}
%
\pstheader{pst-marble.pro}
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
\pst@addfams{pst-marble}
\define@key[psset]{pst-marble}{background}{\def\pst@marble@background{#1 }}
\define@key[psset]{pst-marble}{viscosity}{\def\pst@marble@visc{#1 }}
%\define@key[psset]{pst-marble}{resolution}{\def\pst@marble@resolution{#1 }} %
\define@key[psset]{pst-marble}{actions}{\def\pst@marble@actions{#1 }}
% colors are red, green, and blue components between 0 and 1.
\define@key[psset]{pst-marble}{colors}{\def\pst@marble@colors{#1 }}
\define@boolkey[psset]{pst-marble}[Pst@]{drawcontours}[true]{}
\define@boolkey[psset]{pst-marble}[Pst@]{bckg}[true]{}
\psset[pst-marble]{background=1 1 1,
    viscosity=1000,
    bckg=true,
    actions=0 0 40 colors length concentric-bands,
    colors={
[0.960 0.764 0.576]
[0.316 0.362 0.298]
[0.200 0.050 0.015]
[0.023 0.145 0.451]
[0.866 0.353 0.050]
[0.200 0.050 0.015]
},
    drawcontours=false
    }%
\def\psMarble{\def\pst@par{}\pst@object{psMarble}}
\def\psMarble@i{\@ifnextchar({\psMarble@ii}{\psMarble@ii(10,10)}}
\def\psMarble@ii(#1,#2){%
\begin@SpecialObj
\addto@pscode{%
/cm {\pst@number\psunit mul } bind def
/background [\pst@marble@background] def
/colors [\pst@marble@colors] def
/pagewidth #1 cm def % en cm
/pageheight #2 cm def % en cm
\pst@number\pslinewidth\space 1000 div setlinewidth
plotdict begin
/loy pageheight -2 div def
/hiy pageheight 2 div def
/hix pagewidth 2 div def
/lox pagewidth -2 div def
/orgx hix lox add 2 div def
/orgy hiy loy add 2 div def
orgx orgy translate
/actions [ \pst@marble@actions ] def
/acnt actions length def
\ifPst@drawcontours /Contours {stroke} def \else /Contours {fill} def \fi
\ifPst@bckg
gsave
    background aload pop setrgbcolor
    lox loy pagewidth pageheight rectfill
grestore
\fi
gsave
    lox loy pagewidth pageheight rectclip
    \pst@marble@visc  marble
grestore
end
 }% fin du code ps
 \end@SpecialObj
 }% % fin de la commande PSTricks
\catcode`\@=\PstAtCode\relax
\endinput 