summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex')
-rw-r--r--Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex573
1 files changed, 6 insertions, 567 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex
index a6965b60e3b..fecbb7df710 100644
--- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex
+++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex
@@ -7,573 +7,12 @@
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.
-\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryshapes.code.tex,v 1.9 2006/10/11 15:22:26 tantau Exp $
-
-\pgfdeclareshape{ellipse}
-%
-% Draws a circle around the text
-%
-{
- \savedanchor\centerpoint{%
- \pgf@x=.5\wd\pgfnodeparttextbox%
- \pgf@y=.5\ht\pgfnodeparttextbox%
- \advance\pgf@y by-.5\dp\pgfnodeparttextbox%
- }
- \savedanchor\radius{%
- %
- % Caculate ``height radius''
- %
- \pgf@y=.5\ht\pgfnodeparttextbox%
- \advance\pgf@y by.5\dp\pgfnodeparttextbox%
- \setlength\pgf@yb{\pgfshapeinnerysep}%
- \advance\pgf@y by\pgf@yb%
- %
- % Caculate ``width radius''
- %
- \pgf@x=.5\wd\pgfnodeparttextbox%
- \setlength\pgf@xb{\pgfshapeinnerxsep}%
- \advance\pgf@x by\pgf@xb%
- %
- % Adjust
- %
- \pgf@x=1.4142136\pgf@x%
- \pgf@y=1.4142136\pgf@y%
- %
- % Adjust hieght, if necessary
- %
- \setlength\pgf@yc{\pgfshapeminheight}%
- \ifdim\pgf@y<.5\pgf@yc%
- \pgf@y=.5\pgf@yc%
- \fi%
- %
- % Adjust width, if necessary
- %
- \setlength\pgf@xc{\pgfshapeminwidth}%
- \ifdim\pgf@x<.5\pgf@xc%
- \pgf@x=.5\pgf@xc%
- \fi%
- %
- % Add outer sep
- %
- \setlength{\pgf@xb}{\pgfshapeouterxsep}%
- \setlength{\pgf@yb}{\pgfshapeouterysep}%
- \advance\pgf@x by\pgf@xb%
- \advance\pgf@y by\pgf@yb%
- }
-
- %
- % Anchors
- %
- \anchor{center}{\centerpoint}
- \anchor{mid}{\centerpoint\setlength\pgf@y{.5ex}}
- \anchor{base}{\centerpoint\pgf@y=0pt}
- \anchor{north}
- {
- \pgf@process{\radius}
- \pgf@ya=\pgf@y%
- \pgf@process{\centerpoint}
- \advance\pgf@y by\pgf@ya
- }
- \anchor{south}
- {
- \pgf@process{\radius}
- \pgf@ya=\pgf@y%
- \pgf@process{\centerpoint}
- \advance\pgf@y by-\pgf@ya
- }
- \anchor{west}
- {
- \pgf@process{\radius}
- \pgf@xa=\pgf@x%
- \pgf@process{\centerpoint}
- \advance\pgf@x by-\pgf@xa
- }
- \anchor{mid west}
- {%
- \pgf@process{\radius}
- \pgf@xa=\pgf@x%
- \pgf@process{\centerpoint}
- \advance\pgf@x by-\pgf@xa%
- \setlength\pgf@y{.5ex}
- }
- \anchor{base west}
- {%
- \pgf@process{\radius}
- \pgf@xa=\pgf@x%
- \pgf@process{\centerpoint}
- \advance\pgf@x by-\pgf@xa%
- \pgf@y=0pt
- }
- \anchor{north west}
- {
- \pgf@process{\radius}
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \pgf@process{\centerpoint}
- \advance\pgf@x by-0.707107\pgf@xa
- \advance\pgf@y by0.707107\pgf@ya
- }
- \anchor{south west}
- {
- \pgf@process{\radius}
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \pgf@process{\centerpoint}
- \advance\pgf@x by-0.707107\pgf@xa
- \advance\pgf@y by-0.707107\pgf@ya
- }
- \anchor{east}
- {%
- \pgf@process{\radius}
- \pgf@xa=\pgf@x%
- \pgf@process{\centerpoint}
- \advance\pgf@x by\pgf@xa
- }
- \anchor{mid east}
- {%
- \pgf@process{\radius}
- \pgf@xa=\pgf@x%
- \pgf@process{\centerpoint}
- \advance\pgf@x by\pgf@xa%
- \setlength\pgf@y{.5ex}
- }
- \anchor{base east}
- {%
- \pgf@process{\radius}
- \pgf@xa=\pgf@x%
- \pgf@process{\centerpoint}
- \advance\pgf@x by\pgf@xa%
- \pgf@y=0pt
- }
- \anchor{north east}
- {
- \pgf@process{\radius}
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \pgf@process{\centerpoint}
- \advance\pgf@x by0.707107\pgf@xa
- \advance\pgf@y by0.707107\pgf@ya
- }
- \anchor{south east}
- {
- \pgf@process{\radius}
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \pgf@process{\centerpoint}
- \advance\pgf@x by0.707107\pgf@xa
- \advance\pgf@y by-0.707107\pgf@ya
- }
- \anchorborder{
- \edef\pgf@marshal{%
- \noexpand\pgfpointborderellipse
- {\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}
- {\noexpand\radius}%
- }%
- \pgf@marshal%
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \centerpoint%
- \advance\pgf@x by\pgf@xa%
- \advance\pgf@y by\pgf@ya%
- }
-
- %
- % Background path
- %
- \backgroundpath
- {
- \pgf@process{\radius}%
- \@tempdima=\pgf@x%
- \@tempdimb=\pgf@y%
- \setlength{\pgf@xb}{\pgfshapeouterxsep}%
- \setlength{\pgf@yb}{\pgfshapeouterysep}%
- \advance\@tempdima by-\pgf@xb%
- \advance\@tempdimb by-\pgf@yb%
- \pgfpathellipse{\centerpoint}{\pgfpoint{\@tempdima}{0pt}}{\pgfpoint{0pt}{\@tempdimb}}%
- }
-}
-
-
-
-
-% Set the recommended shape aspect ratio
-%
-% #1 = aspect ratio
-%
-% Example:
-%
-% \pgfsetshapeminwidth{1.5}
-
-\def\pgfsetshapeaspect#1{%
- \def\pgfshapeaspect{#1}%
- % Invert
- \@tempdima=#1pt%
- \@tempdima=.125\@tempdima%
- \c@pgf@counta=\@tempdima\relax% 8192*determinant
- \@tempdima=8192pt%
- \divide\@tempdima by\c@pgf@counta%
- \edef\pgfshapeaspectinverse{\pgf@sys@tonumber{\@tempdima}}
-}
-\pgfsetshapeaspect{1}
-
-
-
-\pgfdeclareshape{diamond}
-{
- \savedanchor\outernortheast{%
- %
- % Calculate width and height of the inner rectangle
- %
- \pgf@xa=.5\wd\pgfnodeparttextbox%
- \setlength\pgf@xc{\pgfshapeinnerxsep}%
- \advance\pgf@xa by\pgf@xc%
- \pgf@ya=.5\ht\pgfnodeparttextbox%
- \advance\pgf@ya by.5\dp\pgfnodeparttextbox%
- \setlength\pgf@yc{\pgfshapeinnerysep}%
- \advance\pgf@ya by\pgf@yc%
- %
- % Calculate width and height of diamond
- %
- \pgf@x=\pgf@xa%
- \advance\pgf@x by\pgfshapeaspect\pgf@ya%
- \pgf@y=\pgfshapeaspectinverse\pgf@xa%
- \advance\pgf@y by\pgf@ya%
- %
- % Check against minimum height/width
- %
- \setlength\pgf@xb{\pgfshapeminwidth}%
- \ifdim\pgf@x<\pgf@xb%
- % yes, too small. Enlarge...
- \pgf@x=\pgf@xb%
- \fi%
- \setlength\pgf@yb{\pgfshapeminheight}%
- \ifdim\pgf@y<\pgf@yb%
- % yes, too small. Enlarge...
- \pgf@y=\pgf@yb%
- \fi%
- %
- % Add outer border
- %
- \setlength\pgf@xa{\pgfshapeouterxsep}%
- \advance\pgf@x by\pgf@xa%
- \setlength\pgf@ya{\pgfshapeouterysep}%
- \advance\pgf@y by\pgf@ya%
- }
- \savedanchor\text{%
- \pgf@x=-.5\wd\pgfnodeparttextbox%
- \pgf@y=-.5\ht\pgfnodeparttextbox%
- \advance\pgf@y by.5\dp\pgfnodeparttextbox%
- }
-
- %
- % Anchors
- %
- \anchor{text}{\text}%
- \anchor{center}{\pgfpointorigin}%
- \anchor{mid}{%
- \pgf@process{\text}%
- \pgf@x=0pt%
- \setlength\pgf@ya{.5ex}
- \advance\pgf@y by\pgf@ya%
- }
- \anchor{base}{\pgf@process{\text}\pgf@x=0pt }
- \anchor{north}{\pgf@process{\outernortheast}\pgf@x=0pt}
- \anchor{south}{\pgf@process{\outernortheast}\pgf@x=0pt\pgf@y=-\pgf@y}
- \anchor{west}{\pgf@process{\outernortheast}\pgf@x=-\pgf@x\pgf@y=0pt}
- \anchor{north west}{\pgf@process{\outernortheast}\pgf@x=-.5\pgf@x\pgf@y=.5\pgf@y}
- \anchor{south west}{\pgf@process{\outernortheast}\pgf@x=-.5\pgf@x\pgf@y=-.5\pgf@y}
- \anchor{east}{\pgf@process{\outernortheast}\pgf@y=0pt}
- \anchor{north east}{\pgf@process{\outernortheast}\pgf@x=.5\pgf@x\pgf@y=.5\pgf@y}
- \anchor{south east}{\pgf@process{\outernortheast}\pgf@x=.5\pgf@x\pgf@y=-.5\pgf@y}
- \anchorborder{%
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \pgf@process{\outernortheast}%
- \ifdim\pgf@xa>0pt%
- \else%
- \pgf@x=-\pgf@x%
- \fi%
- \ifdim\pgf@ya>0pt%
- \else%
- \pgf@y=-\pgf@y%
- \fi%
- \edef\pgf@marshal{%
- \noexpand\pgfpointintersectionoflines
- {\noexpand\pgfpointorigin}
- {\noexpand\pgfpoint{\the\pgf@xa}{\the\pgf@ya}}
- {\noexpand\pgfpoint{\the\pgf@x}{0pt}}
- {\noexpand\pgfpoint{0pt}{\the\pgf@y}}%
- }%
- \pgf@process{\pgf@marshal}%
- }
-
- %
- % Background path
- %
- \backgroundpath{
- \pgf@process{\outernortheast}%
- \pgf@xc=\pgf@x%
- \pgf@yc=\pgf@y%
- \setlength{\pgf@xa}{\pgfshapeouterxsep}%
- \setlength{\pgf@ya}{\pgfshapeouterysep}%
- \advance\pgf@xc by-1.414213\pgf@xa%
- \advance\pgf@yc by-1.414213\pgf@ya%
- \pgfpathmoveto{\pgfpoint{\pgf@xc}{0pt}}%
- \pgfpathlineto{\pgfpoint{0pt}{\pgf@yc}}%
- \pgfpathlineto{\pgfpoint{-\pgf@xc}{0pt}}%
- \pgfpathlineto{\pgfpoint{0pt}{-\pgf@yc}}%
- \pgfpathclose%
- }
-}
-
-
-
-\newbox\pgfnodepartlowerbox
-
-%
-% A circle that is split in the middle into an upper and a lower part.
-%
-% This node consists of two parts: The upper (main) part is shown in
-% the upper half of the circle. The second part is the (optional)
-% lower part.
-%
-% Parts: text, lower
-
-\pgfdeclareshape{circle split}
-{
- %
- % Node parts
- %
- \nodeparts{text,lower}
-
- %
- % Anchors
- %
- \savedanchor\centerpoint{%
- \pgf@x=.5\wd\pgfnodeparttextbox%
- \setlength{\pgf@y}{\pgfshapeinnerysep}%
- \pgf@y=-\pgf@y%
- \advance\pgf@y by-\dp\pgfnodeparttextbox%
- \advance\pgf@y by-.5\pgflinewidth%
- }%
- \savedanchor\loweranchor{%
- \pgf@x=-.5\wd\pgfnodepartlowerbox%
- \advance\pgf@x by.5\wd\pgfnodeparttextbox%
- \setlength{\pgf@y}{\pgfshapeinnerysep}%
- \pgf@y=-2\pgf@y%
- \advance\pgf@y by-\ht\pgfnodepartlowerbox%
- \advance\pgf@y by-.5\pgflinewidth%
- \advance\pgf@y by-\dp\pgfnodeparttextbox%
- \advance\pgf@y by-.5\pgflinewidth%
- }
-
- \saveddimen\radius{%
- %
- % Caculate ``height radius''
- %
- \pgf@ya=.5\ht\pgfnodeparttextbox%
- \advance\pgf@ya by.5\dp\pgfnodeparttextbox%
- \advance\pgf@ya by.5\ht\pgfnodepartlowerbox%
- \advance\pgf@ya by.5\dp\pgfnodepartlowerbox%
- \advance\pgf@ya by.5\pgflinewidth%
- \setlength\pgf@yb{\pgfshapeinnerysep}%
- \advance\pgf@ya by2\pgf@yb%
- %
- % Caculate ``width radius''
- %
- \pgf@xa=.5\wd\pgfnodeparttextbox%
- \ifdim\pgf@xa<.5\wd\pgfnodepartlowerbox%
- \pgf@xa=.5\wd\pgfnodepartlowerbox%
- \fi%
- \setlength\pgf@xb{\pgfshapeinnerxsep}%
- \advance\pgf@xa by\pgf@xb%
- %
- % Calculate length of radius vector:
- %
- \pgf@process{\pgfpointnormalised{\pgfpoint{\pgf@xa}{\pgf@ya}}}%
- \ifdim\pgf@x>\pgf@y%
- \c@pgf@counta=\pgf@x%
- \ifnum\c@pgf@counta=0\relax%
- \else%
- \divide\c@pgf@counta by 255\relax%
- \pgf@xa=16\pgf@xa\relax%
- \divide\pgf@xa by\c@pgf@counta%
- \pgf@xa=16\pgf@xa\relax%
- \fi%
- \else%
- \c@pgf@counta=\pgf@y%
- \ifnum\c@pgf@counta=0\relax%
- \else%
- \divide\c@pgf@counta by 255\relax%
- \pgf@ya=16\pgf@ya\relax%
- \divide\pgf@ya by\c@pgf@counta%
- \pgf@xa=16\pgf@ya\relax%
- \fi%
- \fi%
- \pgf@x=\pgf@xa%
- %
- % If necessary, adjust radius so that the size requirements are
- % met:
- %
- \setlength{\pgf@xb}{\pgfshapeminwidth}%
- \setlength{\pgf@yb}{\pgfshapeminheight}%
- \ifdim\pgf@x<.5\pgf@xb%
- \pgf@x=.5\pgf@xb%
- \fi%
- \ifdim\pgf@x<.5\pgf@yb%
- \pgf@x=.5\pgf@yb%
- \fi%
- %
- % Now, add larger of outer sepearations.
- %
- \setlength{\pgf@xb}{\pgfshapeouterxsep}%
- \setlength{\pgf@yb}{\pgfshapeouterysep}%
- \ifdim\pgf@xb<\pgf@yb%
- \advance\pgf@x by\pgf@yb%
- \else%
- \advance\pgf@x by\pgf@xb%
- \fi%
- }
-
- %
- % Anchors
- %
- \inheritanchorborder[from=circle]
- \inheritanchor[from=circle]{north}
- \inheritanchor[from=circle]{north west}
- \inheritanchor[from=circle]{north east}
- \inheritanchor[from=circle]{center}
- \inheritanchor[from=circle]{west}
- \inheritanchor[from=circle]{east}
- \inheritanchor[from=circle]{mid}
- \inheritanchor[from=circle]{mid west}
- \inheritanchor[from=circle]{mid east}
- \inheritanchor[from=circle]{base}
- \inheritanchor[from=circle]{base west}
- \inheritanchor[from=circle]{base east}
- \inheritanchor[from=circle]{south}
- \inheritanchor[from=circle]{south west}
- \inheritanchor[from=circle]{south east}
- \anchor{lower}{\loweranchor}
-
- %
- % Background path
- %
- \inheritbackgroundpath[from=circle]
- \beforebackgroundpath{
- \@tempdima=\radius%
- \setlength{\pgf@xb}{\pgfshapeouterxsep}%
- \setlength{\pgf@yb}{\pgfshapeouterysep}%
- \ifdim\pgf@xb<\pgf@yb%
- \advance\@tempdima by-\pgf@yb%
- \else%
- \advance\@tempdima by-\pgf@xb%
- \fi%
- \advance\@tempdima by-.5\pgflinewidth%
- \pgfsetshortenstart{0pt}%
- \pgfsetshortenend{0pt}%
- \pgfsetarrows{-}%
- \pgfpathmoveto{\pgfpointadd{\centerpoint}{\pgfpoint{-\@tempdima}{0pt}}}%
- \pgfpathlineto{\pgfpointadd{\centerpoint}{\pgfpoint{\@tempdima}{0pt}}}%
- \pgfusepath{stroke}%
- }
-}
-
-
-
-\pgfdeclareshape{cross out}
-{
- \inheritsavedanchors[from=rectangle] % this is nearly a rectangle
- \inheritanchorborder[from=rectangle]
- \inheritanchor[from=rectangle]{north}
- \inheritanchor[from=rectangle]{north west}
- \inheritanchor[from=rectangle]{north east}
- \inheritanchor[from=rectangle]{center}
- \inheritanchor[from=rectangle]{west}
- \inheritanchor[from=rectangle]{east}
- \inheritanchor[from=rectangle]{mid}
- \inheritanchor[from=rectangle]{mid west}
- \inheritanchor[from=rectangle]{mid east}
- \inheritanchor[from=rectangle]{base}
- \inheritanchor[from=rectangle]{base west}
- \inheritanchor[from=rectangle]{base east}
- \inheritanchor[from=rectangle]{south}
- \inheritanchor[from=rectangle]{south west}
- \inheritanchor[from=rectangle]{south east}
- \foregroundpath{
- % store lower right in xa/ya and upper right in xb/yb
- \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
- \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
- \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
- \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}
- \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@yb}}
- \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
- }
-}
-
-
-\pgfdeclareshape{strike out}
-{
- \inheritsavedanchors[from=rectangle] % this is nearly a rectangle
- \inheritanchorborder[from=rectangle]
- \inheritanchor[from=rectangle]{north}
- \inheritanchor[from=rectangle]{north west}
- \inheritanchor[from=rectangle]{north east}
- \inheritanchor[from=rectangle]{center}
- \inheritanchor[from=rectangle]{west}
- \inheritanchor[from=rectangle]{east}
- \inheritanchor[from=rectangle]{mid}
- \inheritanchor[from=rectangle]{mid west}
- \inheritanchor[from=rectangle]{mid east}
- \inheritanchor[from=rectangle]{base}
- \inheritanchor[from=rectangle]{base west}
- \inheritanchor[from=rectangle]{base east}
- \inheritanchor[from=rectangle]{south}
- \inheritanchor[from=rectangle]{south west}
- \inheritanchor[from=rectangle]{south east}
- \foregroundpath{
- \pgfpathmoveto{\southwest}
- \pgfpathlineto{\northeast}
- }
-}
-
-
-\pgfdeclareshape{forbidden sign}
-{
- \inheritsavedanchors[from=circle] % this is nearly a circle
- \inheritanchorborder[from=circle]
- \inheritanchor[from=circle]{north}
- \inheritanchor[from=circle]{north west}
- \inheritanchor[from=circle]{north east}
- \inheritanchor[from=circle]{center}
- \inheritanchor[from=circle]{west}
- \inheritanchor[from=circle]{east}
- \inheritanchor[from=circle]{mid}
- \inheritanchor[from=circle]{mid west}
- \inheritanchor[from=circle]{mid east}
- \inheritanchor[from=circle]{base}
- \inheritanchor[from=circle]{base west}
- \inheritanchor[from=circle]{base east}
- \inheritanchor[from=circle]{south}
- \inheritanchor[from=circle]{south west}
- \inheritanchor[from=circle]{south east}
- \inheritbackgroundpath[from=circle]
- \foregroundpath{
- \centerpoint%
- \pgf@xc=\pgf@x%
- \pgf@yc=\pgf@y%
- \@tempdima=\radius%
- \setlength{\pgf@xb}{\pgfshapeouterxsep}%
- \setlength{\pgf@yb}{\pgfshapeouterysep}%
- \ifdim\pgf@xb<\pgf@yb%
- \advance\@tempdima by-\pgf@yb%
- \else%
- \advance\@tempdima by-\pgf@xb%
- \fi%
- \pgfpathmoveto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}{\pgfpoint{-0.707107\@tempdima}{-0.707107\@tempdima}}}
- \pgfpathlineto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}{\pgfpoint{0.707107\@tempdima}{0.707107\@tempdima}}}
- }
-}
+\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryshapes.code.tex,v 1.12 2007/06/08 11:24:59 tantau Exp $
+\usepgflibrary{shapes.geometric}
+\usepgflibrary{shapes.misc}
+\usepgflibrary{shapes.symbols}
+\usepgflibrary{shapes.arrows}
+\usepgflibrary{shapes.multipart}
\endinput