summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pst-spinner/pst-spinner.tex
blob: bd49b270711e71748b73d7ea6ac7eea6bbc14a77 (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
%% $Id: pst-spinner.tex 469 2017-05-23 05:47:28Z herbert $
%% Package `pst-spinner.tex'
%%
%%
%% 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:
%%   dessiner les triple fidget spinner
%%
\let\PSTSPINNERLoaded\endinput
% Requires PSTricks, pst-xkey, pst-node  packages
\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey.tex \fi
\ifx\PSTnodeLoaded\endinput\else\input pst-node.tex\fi
%
\def\fileversion{1.02}
\let\pstspinnerFV\fileversion
\def\filedate{2017/05/23}
\message{`PST' v\fileversion, \filedate}

\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
\pst@addfams{pst-spinner}
%% prologue for postcript
\pstheader{pst-spinner.pro}%
%
\define@key[psset]{pst-spinner}{R}[3.9]{\def\pst@spinner@R{#1 }} % rayon de cercle circonscrit au spinner
\define@key[psset]{pst-spinner}{rotation}[0]{\def\pst@spinner@rotation{#1 }} % angle de rotation
%% couleurs definies par l'utilisateur
\definecolor{honeydew}{rgb}{0.94 1 0.94}
\define@key[psset]{pst-spinner}{color0}[honeydew]{\pst@getcolor{#1}\pscolor}
\define@key[psset]{pst-spinner}{color1}[red]{\pst@getcolor{#1}\pscolora}
\define@key[psset]{pst-spinner}{color2}[green]{\pst@getcolor{#1}\pscolorb}
\define@key[psset]{pst-spinner}{color3}[blue]{\pst@getcolor{#1}\pscolorc}
\define@key[psset]{pst-spinner}{colorMask}[honeydew]{\pst@getcolor{#1}\pscolorMask}
\define@boolkey[psset]{pst-spinner}[Pst@]{mask}[true]{} % cache du roulement à billes du centre
\define@boolkey[psset]{pst-spinner}[Pst@]{customize}[true]{} % personnaliser le fidget
\define@boolkey[psset]{pst-spinner}[Pst@]{customizeMask}[true]{} % personnaliser le capuchon de roulement central
\define@key[psset]{pst-spinner}{image}[]{\edef\psk@spinner@image{#1}} % chemin des dessins
%
\psset[pst-spinner]{R=3.9,rotation=0,color0=honeydew,color1=red,color2=green,
  color3=blue!75,colorMask=honeydew,mask,customize=false,customizeMask=false,
  image={}}
%
\def\psFidgetSpinner{\def\pst@par{}\pst@object{psFidgetSpinner}}
\def\psFidgetSpinner@i{\@ifnextchar(\psFidgetSpinner@ii{\psFidgetSpinner@ii(0,0)}}
\def\psFidgetSpinner@ii(#1){%
  \pst@getcoor{#1}\pst@tempA
  \begin@SpecialObj
  \addto@pscode{
    tx@spinnerDict begin 
    \pst@tempA translate
    /cm  {\pst@number\psunit mul} bind def
    /R1 \pst@spinner@R\space cm def
    /color0 {\pst@usecolor\pscolor } def
    /color1 {\pst@usecolor\pscolora } def
    /color2 {\pst@usecolor\pscolorb } def
    /color3 {\pst@usecolor\pscolorc } def
    /colorMask {\pst@usecolor\pscolorMask} def
    /spinnerROT \pst@spinner@rotation def
    /ifPst@customize \ifPst@customize true \else false \fi def
    /spinnerImage { (\psk@spinner@image) run } def
    /spinnerFillColor { \pst@usecolor\psfillcolor } def
    /spinnerLineColor { \pst@usecolor\pslinecolor } def
    /spinnerLW \pst@number\pslinewidth\space def
    /ifPst@mask \ifPst@mask true \else false \fi def
    /ifPst@customizeMask \ifPst@customizeMask true \else false \fi def
    makeSpinner 
    end
  }%
  \showpointsfalse
  \end@SpecialObj
  \ignorespaces}
%
\catcode`\@=\PstAtCode\relax
\endinput