summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/bez123
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:52:09 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:52:09 +0000
commit618290cc8302cc7c90bf5584387630fd78fb56b5 (patch)
tree8e7db010226723788a2154aed880709474f8e6d6 /Master/texmf-dist/tex/latex/bez123
parent2097b0896c3c541cda7c4b654f434aed8b38581d (diff)
bez123
git-svn-id: svn://tug.org/texlive/trunk@705 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/bez123')
-rw-r--r--Master/texmf-dist/tex/latex/bez123/bez123.sty375
-rw-r--r--Master/texmf-dist/tex/latex/bez123/multiply.sty77
2 files changed, 452 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/bez123/bez123.sty b/Master/texmf-dist/tex/latex/bez123/bez123.sty
new file mode 100644
index 00000000000..29d5c1bf6a9
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bez123/bez123.sty
@@ -0,0 +1,375 @@
+%%
+%% This is file `bez123.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% bez123.dtx (with options: `bez')
+%%
+%% Author: Peter Wilson (CUA and NIST)
+%% now at: peter.r.wilson@boeing.com
+%%
+%% Copyright 1998 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{bez123}[1998/10/14 v1.1 Bezier curves]
+\RequirePackage{multiply}[1998/10/14]
+\newcommand{\lbezier}[2][0]{\@lbez{#1}#2}
+\gdef\@lbez#1(#2,#3)(#4,#5){%
+%%%%\def\lbezier#1(#2,#3)(#4,#5){%
+ \ifnum #1<\@ne
+ \@ovxx = #4\unitlength
+ \advance\@ovxx by -#2\unitlength
+ \ifdim \@ovxx < \z@
+ \@ovxx = -\@ovxx
+ \fi
+ \@ovyy = #5\unitlength
+ \advance\@ovyy by -#3\unitlength
+ \ifdim \@ovyy < \z@
+ \@ovyy = -\@ovyy
+ \fi
+ \ifdim \@ovxx > \@ovyy
+ \@multicnt = \@ovxx
+ \else
+ \@multicnt = \@ovyy
+ \fi
+ \@ovxx = 0.5\@halfwidth
+ \divide\@multicnt by \@ovxx
+ \ifnum \qbeziermax < \@multicnt
+ \@multicnt = \qbeziermax\relax
+ \fi
+ \else
+ \@multicnt = #1\relax
+ \fi
+ \@tempcnta = \@multicnt
+ \advance\@tempcnta by \@ne
+ \@ovdx = #4\unitlength
+ \advance\@ovdx by -#2\unitlength
+ \divide\@ovdx by \@multicnt
+ \@ovdy = #5\unitlength
+ \advance\@ovdy by -#3\unitlength
+ \divide\@ovdy by \@multicnt
+ \setbox\@tempboxa\hbox{\vrule \@height\@halfwidth
+ \@depth \@halfwidth
+ \@width \@wholewidth}%
+ \put(#2,#3){%
+ \count@ = \z@
+ \@whilenum{\count@ < \@tempcnta}\do
+ {\@xdim = \count@\@ovdx
+ \@ydim = \count@\@ovdy
+ \raise \@ydim
+ \hb@xt@\z@{\kern\@xdim
+ \unhcopy\@tempboxa\hss}%
+ \advance\count@\@ne}}%
+}
+\newlength{\@wxc}
+\newlength{\@wyc}
+\newcommand{\cbezier}[2][0]{\@cbez{#1}#2}
+\gdef\@cbez#1(#2,#3)(#4,#5)(#6,#7)(#8,#9){%
+ \ifnum #1<\@ne
+ \@ovxx = #2\unitlength
+ \@ovdx = \@ovxx
+ \@ovdy = #4\unitlength
+ \ifdim \@ovdy > \@ovxx
+ \@ovxx = \@ovdy
+ \fi
+ \ifdim \@ovdy < \@ovdx
+ \@ovdx = \@ovdy
+ \fi
+ \@ovdy = #6\unitlength
+ \ifdim \@ovdy > \@ovxx
+ \@ovxx = \@ovdy
+ \fi
+ \ifdim \@ovdy < \@ovdx
+ \@ovdx = \@ovdy
+ \fi
+ \@ovdy = #8\unitlength
+ \ifdim \@ovdy > \@ovxx
+ \@ovxx = \@ovdy
+ \fi
+ \ifdim \@ovdy < \@ovdx
+ \@ovdx = \@ovdy
+ \fi
+ \advance\@ovxx by -\@ovdx
+ \@ovyy = #3\unitlength
+ \@ovdy = \@ovyy
+ \@ovdx = #5\unitlength
+ \ifdim \@ovdx > \@ovyy
+ \@ovyy = \@ovdx
+ \fi
+ \ifdim \@ovdx < \@ovdy
+ \@ovdy = \@ovdx
+ \fi
+ \@ovdx = #7\unitlength
+ \ifdim \@ovdx > \@ovyy
+ \@ovyy = \@ovdx
+ \fi
+ \ifdim \@ovdx < \@ovdy
+ \@ovdy = \@ovdx
+ \fi
+ \@ovdx = #9\unitlength
+ \ifdim \@ovdx > \@ovyy
+ \@ovyy = \@ovdx
+ \fi
+ \ifdim \@ovdx < \@ovdy
+ \@ovdy = \@ovdx
+ \fi
+ \advance\@ovyy by -\@ovdy
+ \ifdim \@ovxx > \@ovyy
+ \@multicnt = \@ovxx
+ \else
+ \@multicnt = \@ovyy
+ \fi
+ \@ovxx = 0.5\@halfwidth
+ \divide\@multicnt by \@ovxx
+ \ifnum \qbeziermax < \@multicnt
+ \@multicnt = \qbeziermax\relax
+ \fi
+ \else
+ \@multicnt = #1\relax
+ \fi
+ \@tempcnta = \@multicnt
+ \advance\@tempcnta by \@ne
+ \@ovdx = #4\unitlength \advance\@ovdx by -#2\unitlength
+ \@ovxx = #6\unitlength \advance\@ovxx by -\@ovdx
+ \multiply\@ovdx by \thr@@
+ \advance\@ovxx by -#4\unitlength \multiply\@ovxx by \thr@@
+ \@wxc = #4\unitlength \advance\@wxc by -#6\unitlength
+ \multiply\@wxc by \thr@@ \advance\@wxc by #8\unitlength
+ \advance\@wxc by -#2\unitlength \divide\@wxc by \@multicnt
+ \@ovdy = #5\unitlength \advance\@ovdy by -#3\unitlength
+ \@ovyy = #7\unitlength \advance\@ovyy by -\@ovdy
+ \multiply\@ovdy by \thr@@
+ \advance\@ovyy by -#5\unitlength \multiply\@ovyy by \thr@@
+ \@wyc = #5\unitlength \advance\@wyc by -#7\unitlength
+ \multiply\@wyc by \thr@@ \advance\@wyc by #9\unitlength
+ \advance\@wyc by -#3\unitlength \divide\@wyc by \@multicnt
+ \setbox\@tempboxa\hbox{\vrule \@height\@halfwidth
+ \@depth \@halfwidth
+ \@width \@wholewidth}%
+ \put(#2,#3){%
+ \count@ = \z@
+ \@whilenum{\count@ < \@tempcnta}\do
+ {\@xdim = \count@\@wxc
+ \advance\@xdim by \@ovxx
+ \divide\@xdim by \@multicnt
+ \multiply\@xdim by \count@
+ \advance\@xdim by \@ovdx
+ \divide\@xdim by \@multicnt
+ \multiply\@xdim by \count@
+ \@ydim = \count@\@wyc
+ \advance\@ydim by \@ovyy
+ \divide\@ydim by \@multicnt
+ \multiply\@ydim by \count@
+ \advance\@ydim by \@ovdy
+ \divide\@ydim by \@multicnt
+ \multiply\@ydim by \count@
+ \raise \@ydim
+ \hb@xt@\z@{\kern\@xdim
+ \unhcopy\@tempboxa\hss}%
+ \advance\count@\@ne}}%
+}
+\newlength{\@ww}
+\newlength{\@wwa}
+\newlength{\@wwb}
+\newlength{\@wwo}
+\newlength{\@wwi}
+\newcounter{@pntscale}
+\newcounter{weightscale}
+\newlength{\botscale}
+\newcommand{\setweightscale}[1]{\setcounter{weightscale}{#1}}
+\newcommand{\resetweightscale}{\setcounter{weightscale}{10000}}
+\resetweightscale
+\newcommand{\rqbezier}[2][0]{\@rqbez{#1}#2}
+\gdef\@rqbez#1(#2,#3)(#4,#5)(#6,#7)(#8){%
+ \@ovxx = #8\unitlength
+ \ifdim\@ovxx = \unitlength
+ \PackageWarning{bez123}{Rational quadratic denerates to quadratic}
+ \qbezier[#1](#2,#3)(#4,#5)(#6,#7)
+ \else
+ \ifdim\@ovxx = \z@
+ \PackageWarning{bez123}{Rational quadratic degenerates to linear}
+ \lbezier[#1](#2,#3)(#6,#7)
+ \else
+ \@ovxx = #4\unitlength
+ \advance\@ovxx by -#2\unitlength
+ \ifdim \@ovxx < \z@
+ \@ovxx = -\@ovxx
+ \fi
+ \@ovdx = #6\unitlength
+ \advance\@ovdx by -#4\unitlength
+ \ifdim \@ovdx < \z@
+ \@ovdx = -\@ovdx
+ \fi
+ \ifdim \@ovxx < \@ovdx
+ \@ovxx = \@ovdx
+ \fi
+ \@ovyy = #5\unitlength
+ \advance\@ovyy by -#3\unitlength
+ \ifdim \@ovyy < \z@
+ \@ovyy = -\@ovyy
+ \fi
+ \@ovdy = #7\unitlength
+ \advance\@ovdy by -#5\unitlength
+ \ifdim \@ovdy < \z@
+ \@ovdy = -\@ovdy
+ \fi
+ \ifdim \@ovyy < \@ovdy
+ \@ovyy = \@ovdy
+ \fi
+ \ifdim \@ovxx > \@ovyy
+ \@multicnt = \@ovxx
+ \else
+ \@multicnt = \@ovyy
+ \fi
+ \@wwi = \@multicnt sp
+ \ifnum #1<\@ne
+ \@ovxx = 0.5\@halfwidth
+ \divide\@multicnt by \@ovxx
+ \ifnum\qbeziermax < \@multicnt
+ \@multicnt = \qbeziermax\relax
+ \fi
+ \else
+ \@multicnt = #1\relax
+ \fi
+ \@tempcnta = \@multicnt
+ \advance\@tempcnta by \@ne
+ \divide\@tempcnta by \tw@
+ \advance\@tempcnta by \@ne
+ \@wwo = \maxdimen
+ \advance\@wwo by -\@wwi
+ \divide\@wwo by \tw@
+ \divide\@wwo by \@wwi
+ \@wwi = 10sp
+ \@wwi = #8\@wwi
+ \ifdim\@wwi < \z@
+ \@wwi = -\@wwi
+ \fi
+ \divide\@wwi by 10\relax
+ \ifdim\@wwi < \@wwo
+ \c@@pntscale = \@ne
+ \else
+ \divide\@wwi by \tw@
+ \ifdim\@wwi < \@wwo
+ \c@@pntscale = \tw@
+ \else
+ \divide\@wwi by \tw@
+ \ifdim\@wwi < \@wwo
+ \c@@pntscale = 4\relax
+ \else
+ \divide\@wwi by \tw@
+ \ifdim\@wwi < \@wwo
+ \c@@pntscale = 8\relax
+ \else
+ \c@@pntscale = 16\relax
+ \fi
+ \fi
+ \fi
+ \fi
+ \@ovxx = #4\unitlength \advance\@ovxx by -#2\unitlength
+ \multiply\@ovxx by \tw@
+ \divide\@ovxx by \c@@pntscale
+ \@ovdx = #8\@ovxx
+ \@ovxx = #6\unitlength \advance\@ovxx by -#2\unitlength
+ \divide\@ovxx by \c@@pntscale
+ \advance\@ovxx by -\@ovdx
+ \divide\@ovxx by \@multicnt
+ \@ovyy = #5\unitlength \advance\@ovyy by -#3\unitlength
+ \multiply\@ovyy by \tw@
+ \divide\@ovyy by \c@@pntscale
+ \@ovdy = #8\@ovyy
+ \@ovyy = #7\unitlength \advance\@ovyy by -#3\unitlength
+ \divide\@ovyy by \c@@pntscale
+ \advance\@ovyy by -\@ovdy
+ \divide\@ovyy by \@multicnt
+ \setlength{\botscale}{\c@weightscale sp}
+ \@wwo = \botscale
+ \@wwi = #8\@wwo
+ \@wwa = \@wwo \advance\@wwa by -\@wwi
+ \multiply\@wwa by \tw@
+ \@wwb = \@wwa
+ \divide\@wwb by \@multicnt
+ \@wwi = \botscale
+ \setbox\@tempboxa\hbox{\vrule \@height\@halfwidth
+ \@depth \@halfwidth
+ \@width \@wholewidth}%
+ \put(#2,#3){%
+ \count@ = \z@
+ \@whilenum{\count@ < \@tempcnta}\do
+ {\@xdim = \count@\@ovxx
+ \advance\@xdim by \@ovdx
+ \divide\@xdim by \@multicnt
+ \multiply\@xdim by \count@
+ \@ydim = \count@\@ovyy
+ \advance\@ydim by \@ovdy
+ \divide\@ydim by \@multicnt
+ \multiply\@ydim by \count@
+ \@ww = \count@\@wwb
+ \advance\@ww by -\@wwa
+ \divide\@ww by \@multicnt
+ \multiply\@ww by \count@
+ \advance\@ww by \@wwo
+ \divide\@ww by \c@@pntscale
+ \ifdim\@ww = \z@
+ \else
+ \divide\@xdim by \@ww
+ \divide\@ydim by \@ww
+ \fi
+ \multnooverflow{\@xdim}{\botscale}%
+ \multnooverflow{\@ydim}{\botscale}%
+ \raise \@ydim
+ \hb@xt@\z@{\kern\@xdim
+ \unhcopy\@tempboxa\hss}%
+ \advance\count@\@ne}}
+ \@ovxx = #4\unitlength \advance\@ovxx by -#6\unitlength
+ \multiply\@ovxx by \tw@
+ \divide\@ovxx by \c@@pntscale
+ \@ovdx = #8\@ovxx
+ \@ovxx = #2\unitlength \advance\@ovxx by -#6\unitlength
+ \divide\@ovxx by \c@@pntscale
+ \advance\@ovxx by -\@ovdx
+ \divide\@ovxx by \@multicnt
+ \@ovyy = #5\unitlength \advance\@ovyy by -#7\unitlength
+ \multiply\@ovyy by \tw@
+ \divide\@ovyy by \c@@pntscale
+ \@ovdy = #8\@ovyy
+ \@ovyy = #3\unitlength \advance\@ovyy by -#7\unitlength
+ \divide\@ovyy by \c@@pntscale
+ \advance\@ovyy by -\@ovdy
+ \divide\@ovyy by \@multicnt
+ \put(#6,#7){%
+ \count@ = \z@
+ \@whilenum{\count@ < \@tempcnta}\do
+ {\@xdim = \count@\@ovxx
+ \advance\@xdim by \@ovdx
+ \divide\@xdim by \@multicnt
+ \multiply\@xdim by \count@
+ \@ydim = \count@\@ovyy
+ \advance\@ydim by \@ovdy
+ \divide\@ydim by \@multicnt
+ \multiply\@ydim by \count@
+ \@ww = \count@\@wwb
+ \advance\@ww by -\@wwa
+ \divide\@ww by \@multicnt
+ \multiply\@ww by \count@
+ \advance\@ww by \@wwo
+ \divide\@ww by \c@@pntscale
+ \ifnum\@ww = \z@
+ \else
+ \divide\@xdim by \@ww
+ \divide\@ydim by \@ww
+ \fi
+ \multnooverflow{\@xdim}{\botscale}%
+ \multnooverflow{\@ydim}{\botscale}%
+ \raise \@ydim
+ \hb@xt@\z@{\kern\@xdim
+ \unhcopy\@tempboxa\hss}%
+ \advance\count@\@ne}}
+ \fi\fi}
+\endinput
+%%
+%% End of file `bez123.sty'.
diff --git a/Master/texmf-dist/tex/latex/bez123/multiply.sty b/Master/texmf-dist/tex/latex/bez123/multiply.sty
new file mode 100644
index 00000000000..14a76bef147
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bez123/multiply.sty
@@ -0,0 +1,77 @@
+%%
+%% This is file `multiply.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% bez123.dtx (with options: `mult')
+%%
+%% Author: Peter Wilson (CUA and NIST)
+%% now at: peter.r.wilson@boeing.com
+%%
+%% Copyright 1998 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+\ProvidesPackage{multiply}[1998/10/14 v1.1 Multiplication of lengths without overflow]
+\newlength{\n@fl@wa}
+\newlength{\n@fl@wb}
+\newlength{\n@fl@wc}
+\newif\ifch@nge
+\newcommand{\multnooverflow}[2]{%
+ \n@fl@wa = #1\relax%
+ \n@fl@wb = #2\relax%
+ \ch@ngefalse%
+ \ifnum\n@fl@wb = \@ne%
+ \else%
+ \ifnum\n@fl@wb = \z@%
+ \n@fl@wa = \z@%
+ \else%
+ \ifnum\n@fl@wb = \m@ne%
+ \ch@ngetrue%
+ \else%
+ \ifnum\n@fl@wa = \z@%
+ \else%
+ \ifnum\n@fl@wa = \@ne%
+ \n@fl@wa = \n@fl@wb%
+ \else%
+ \ifnum\n@fl@wa = \m@ne%
+ \n@fl@wa = -\n@fl@wb%
+ \else%
+ \ifnum\n@fl@wa < \z@%
+ \ch@ngetrue%
+ \n@fl@wa = -\n@fl@wa%
+ \fi%
+ \ifnum\n@fl@wb < \z@%
+ \n@fl@wb = -\n@fl@wb%
+ \ifch@nge%
+ \ch@ngefalse%
+ \else%
+ \ch@ngetrue%
+ \fi%
+ \fi%
+ \n@fl@wc = \maxdimen%
+ \divide\n@fl@wc by \n@fl@wb%
+ \advance\n@fl@wc by -1sp% \m@ne
+ \ifnum\n@fl@wa > \n@fl@wc%
+ \n@fl@wa = \maxdimen%
+ \PackageWarning{multiply}{Multiplication overflow}%
+ \else%
+ \multiply\n@fl@wa by \n@fl@wb%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \ifch@nge%
+ \n@fl@wa = -\n@fl@wa%
+ \fi%
+ #1 = \n@fl@wa%
+}
+\endinput
+%%
+%% End of file `multiply.sty'.