You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
2.5 KiB
101 lines
2.5 KiB
% Copyright 2006 by Till Tantau
|
|
%
|
|
% This file may be distributed and/or modified
|
|
%
|
|
% 1. under the LaTeX Project Public License and/or
|
|
% 2. under the GNU Public License.
|
|
%
|
|
% See the file doc/generic/pgf/licenses/LICENSE for more details.
|
|
|
|
\ProvidesFileRCS{pgfcoreobjects.code.tex}
|
|
|
|
|
|
% Object reuse
|
|
|
|
|
|
% Define a pgf object for reuse. Such objects will be stored
|
|
% efficiently internally.
|
|
%
|
|
% #1 = name for later reuse
|
|
% #2 = lower left corner point of bounding box
|
|
% #3 = upper right left corner point of bounding box
|
|
% #4 = pure pgf code (nothing too fancy!)
|
|
%
|
|
% Description:
|
|
%
|
|
% Used to define reusable objects. The object must be composed of
|
|
% basic pgf graphic primitives. Nothing fancy can be used. The
|
|
% created object will be stored as an xform object in pdf or as a
|
|
% postscript procedure in postscript.
|
|
%
|
|
% Example:
|
|
%
|
|
% \pgfdefobject{myrect}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{11pt}{11pt}}
|
|
% {\pgfpathqmoveto{0pt}{0pt}
|
|
% \pgfpathqmoveto{10pt}{0pt}
|
|
% \pgfpathqmoveto{10pt}{10pt}
|
|
% \pgfpathqmoveto{0pt}{10pt}
|
|
% \pgfpathclose
|
|
% \pgfusepath{stroke}}
|
|
%
|
|
% \begin{pgfpicture}{0cm}{0cm}{1cm}{1cm}
|
|
% \pgfuseobject{myrect}
|
|
% \end{pgfpicture}
|
|
|
|
\def\pgfdefobject#1#2#3#4{%
|
|
\pgfinterruptpath%
|
|
\pgf@relevantforpicturesizefalse%
|
|
\pgfsys@defobject{#1}{#2}{#3}{#4}%
|
|
\endpgfinterruptpath%
|
|
\ignorespaces%
|
|
}
|
|
|
|
|
|
% Use an object that was previously defined using pgfdefobject
|
|
%
|
|
% #1 = name of previously defined object
|
|
%
|
|
% Example:
|
|
%
|
|
% \pgfdefobject{myrect}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{11pt}{11pt}}
|
|
% {\pgfqmoveto{0}{0}
|
|
% \pgfqmoveto{10}{0}
|
|
% \pgfqmoveto{10}{10}
|
|
% \pgfqmoveto{0}{10}
|
|
% \pgfclosestroke}
|
|
%
|
|
% \begin{pgfpicture}{0cm}{0cm}{1cm}{1cm}
|
|
% \pgfuseobject{myrect}
|
|
% \end{pgfpicture}
|
|
|
|
\def\pgfuseobject#1{\pgfsys@beginscope\pgfsys@useobject{#1}{}\pgfsys@endscope}
|
|
|
|
|
|
% Use an object that was previously defined using pgfdefobject, but
|
|
% magnify the object by the current x and y register values
|
|
%
|
|
% #1 = name of previously defined object
|
|
%
|
|
% Example:
|
|
%
|
|
% \pgfdefobject{myrect}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{11pt}{11pt}}
|
|
% {\pgfqmoveto{0}{0}
|
|
% \pgfqmoveto{10}{0}
|
|
% \pgfqmoveto{10}{10}
|
|
% \pgfqmoveto{0}{10}
|
|
% \pgfclosestroke}
|
|
%
|
|
% \begin{pgfpicture}{0cm}{0cm}{1cm}{1cm}
|
|
% \pgf@x=2pt% Scale by factor two in x-direction
|
|
% \pgf@y=2pt% Scale by factor two in y-direction
|
|
% \pgfuseobjectmagnify{myrect}
|
|
% \end{pgfpicture}
|
|
|
|
\def\pgfuseobjectmagnify#1{%
|
|
\pgfsys@beginscope%
|
|
\pgfsys@useobject{#1}{\pgfsys@transformxyscale{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}}%
|
|
\pgfsys@endscope%
|
|
}
|
|
|
|
|
|
\endinput
|
|
|