summaryrefslogtreecommitdiff
path: root/tex/context/base/grph-trf.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/grph-trf.mkiv')
-rw-r--r--tex/context/base/grph-trf.mkiv764
1 files changed, 382 insertions, 382 deletions
diff --git a/tex/context/base/grph-trf.mkiv b/tex/context/base/grph-trf.mkiv
index 754ea70d8..0b603f1ba 100644
--- a/tex/context/base/grph-trf.mkiv
+++ b/tex/context/base/grph-trf.mkiv
@@ -28,36 +28,36 @@
% local:
-\newdimen\d_transforms_scale_x_size
-\newdimen\d_transforms_scale_y_size
-\newdimen\d_transforms_scale_x_offset
-\newdimen\d_transforms_scale_y_offset
+\newdimen\d_grph_scale_x_size
+\newdimen\d_grph_scale_y_size
+\newdimen\d_grph_scale_x_offset
+\newdimen\d_grph_scale_y_offset
-\newdimen\d_transforms_scale_h_size
-\newdimen\d_transforms_scale_v_size
+\newdimen\d_grph_scale_h_size
+\newdimen\d_grph_scale_v_size
-\newconditional\c_transforms_scale_done
-\newconditional\c_transforms_scale_scaling_done
+\newconditional\c_grph_scale_done
+\newconditional\c_grph_scale_scaling_done
-\newdimen\d_transforms_scale_wd
-\newdimen\d_transforms_scale_ht
-\newdimen\d_transforms_scale_dp
+\newdimen\d_grph_scale_wd
+\newdimen\d_grph_scale_ht
+\newdimen\d_grph_scale_dp
% global
-\newdimen\d_transforms_scale_used_x_size
-\newdimen\d_transforms_scale_used_y_size
+\newdimen\d_grph_scale_used_x_size
+\newdimen\d_grph_scale_used_y_size
-\newcount\c_transforms_scale_used_x_scale
-\newcount\c_transforms_scale_used_y_scale
+\newcount\c_grph_scale_used_x_scale
+\newcount\c_grph_scale_used_y_scale
-\newdimen\d_transforms_scale_outer_v_size % we cannot manipulate any global vsize !
+\newdimen\d_grph_scale_outer_v_size % we cannot manipulate any global vsize !
% scratch:
-\let\m_transforms_scale_temp \empty
-\let\m_transforms_scale_temp_x\empty
-\let\m_transforms_scale_temp_y\empty
+\let\m_grph_scale_temp \empty
+\let\m_grph_scale_temp_x\empty
+\let\m_grph_scale_temp_y\empty
% public:
@@ -94,11 +94,11 @@
\c!maxwidth=\scaleparameter\c!width,
\c!maxheight=\scaleparameter\c!height]
-\unexpanded\def\scale{\dodoubleempty\transforms_scale}
+\unexpanded\def\scale{\dodoubleempty\grph_scale}
% we could have: \freezeparameter\c!scale etc (less backtracking when used multiple)
-\def\transforms_scale[#1][#2]%
+\def\grph_scale[#1][#2]%
{\bgroup
% this is quite common so we might make this a helper
\ifsecondargument
@@ -113,9 +113,9 @@
\let\currentscale\empty
\fi\fi
%
- \dowithnextboxcs\transforms_scale_finish\hbox}
+ \dowithnextboxcs\grph_scale_finish\hbox}
-\def\transforms_scale_finish
+\def\grph_scale_finish
{% todo: p_scale_
\edef\p_scale {\scaleparameter\c!scale }%
\edef\p_xscale {\scaleparameter\c!xscale }%
@@ -135,19 +135,19 @@
\edef\p_equalwidth {\scaleparameter\c!equalwidth }%
\edef\p_equalheight{\scaleparameter\c!equalheight}%
%
- \d_transforms_scale_dp\dp\nextbox
- \ifx\p_depth\v!no \ifzeropt\d_transforms_scale_dp \else
- \setbox\nextbox\hbox{\raise\d_transforms_scale_dp\box\nextbox}% new
- \d_transforms_scale_dp\dp\nextbox
+ \d_grph_scale_dp\dp\nextbox
+ \ifx\p_depth\v!no \ifzeropt\d_grph_scale_dp \else
+ \setbox\nextbox\hbox{\raise\d_grph_scale_dp\box\nextbox}% new
+ \d_grph_scale_dp\dp\nextbox
\fi \fi
- \d_transforms_scale_wd\wd\nextbox
- \d_transforms_scale_ht\ht\nextbox
- \d_transforms_scale_dp\dp\nextbox
+ \d_grph_scale_wd\wd\nextbox
+ \d_grph_scale_ht\ht\nextbox
+ \d_grph_scale_dp\dp\nextbox
%
\global\let\finalscaleboxxscale \!!plusone
\global\let\finalscaleboxyscale \!!plusone
- \xdef \finalscaleboxwidth {\the\d_transforms_scale_wd}%
- \xdef \finalscaleboxheight{\the\d_transforms_scale_ht}%
+ \xdef \finalscaleboxwidth {\the\d_grph_scale_wd}%
+ \xdef \finalscaleboxheight{\the\d_grph_scale_ht}%
\global\let\finalscaleboxxfactor\!!hundred
\global\let\finalscaleboxyfactor\!!hundred
%
@@ -155,262 +155,262 @@
\dontshowcomposition
\dontcomplain
%
- \setfalse\c_transforms_scale_done
- \transforms_scale_calculate
- \ifconditional\c_transforms_scale_done
- \transforms_scale_apply
+ \setfalse\c_grph_scale_done
+ \grph_scale_calculate
+ \ifconditional\c_grph_scale_done
+ \grph_scale_apply
\fi
- \transforms_scale_position
+ \grph_scale_position
%
\box\nextbox
\egroup}
-\def\transforms_scale_apply
- {\d_transforms_scale_wd\finalscaleboxxscale\d_transforms_scale_wd
- \d_transforms_scale_ht\finalscaleboxyscale\d_transforms_scale_ht
- \d_transforms_scale_dp\finalscaleboxyscale\d_transforms_scale_dp
+\def\grph_scale_apply
+ {\d_grph_scale_wd\finalscaleboxxscale\d_grph_scale_wd
+ \d_grph_scale_ht\finalscaleboxyscale\d_grph_scale_ht
+ \d_grph_scale_dp\finalscaleboxyscale\d_grph_scale_dp
\setbox\nextbox\hbox
{\dostartscaling \finalscaleboxxscale \finalscaleboxyscale
\smashedbox\nextbox
\dostopscaling}%
- \wd\nextbox\d_transforms_scale_wd
- \ht\nextbox\d_transforms_scale_ht
- \dp\nextbox\d_transforms_scale_dp}
-
-\def\m_transforms_scale_stamp_c{11}
-
-\def\transforms_scale_calculate
- {\ifdim\d_transforms_scale_ht>\zeropoint \ifdim\d_transforms_scale_wd>\zeropoint
- \edef\m_transforms_scale_stamp_a{\p_scale\p_xscale\p_yscale\p_factor\p_wfactor\p_hfactor\p_lines\p_width\p_height}%
- \edef\m_transforms_scale_stamp_b{\p_sx\p_sy}%
- \ifx\m_transforms_scale_stamp_a\empty
- \ifx\m_transforms_scale_stamp_b\m_transforms_scale_stamp_c
+ \wd\nextbox\d_grph_scale_wd
+ \ht\nextbox\d_grph_scale_ht
+ \dp\nextbox\d_grph_scale_dp}
+
+\def\m_grph_scale_stamp_c{11}
+
+\def\grph_scale_calculate
+ {\ifdim\d_grph_scale_ht>\zeropoint \ifdim\d_grph_scale_wd>\zeropoint
+ \edef\m_grph_scale_stamp_a{\p_scale\p_xscale\p_yscale\p_factor\p_wfactor\p_hfactor\p_lines\p_width\p_height}%
+ \edef\m_grph_scale_stamp_b{\p_sx\p_sy}%
+ \ifx\m_grph_scale_stamp_a\empty
+ \ifx\m_grph_scale_stamp_b\m_grph_scale_stamp_c
% no scaling, don't change this (previous attempts failed anyway)
\insidefloattrue % trick
- \transforms_scale_calculations_yes
+ \grph_scale_calculations_yes
\else
- \transforms_scale_check_sx_sy
- \transforms_scale_calculations_nop
+ \grph_scale_check_sx_sy
+ \grph_scale_calculations_nop
\fi
\else
- \ifx\m_transforms_scale_stamp_b\empty
+ \ifx\m_grph_scale_stamp_b\empty
% no need to check further
\else
- \transforms_scale_check_sx_sy
+ \grph_scale_check_sx_sy
\fi
- \transforms_scale_calculations_yes
+ \grph_scale_calculations_yes
\fi
\fi \fi}
-\def\transforms_scale_check_sx_sy
- {\ifdim\p_sx\onepoint=\onepoint\else\edef\p_width {\the\dimexpr\p_sx\d_transforms_scale_wd}\fi
- \ifdim\p_sy\onepoint=\onepoint\else\edef\p_height{\the\dimexpr\p_sy\d_transforms_scale_ht}\fi}
+\def\grph_scale_check_sx_sy
+ {\ifdim\p_sx\onepoint=\onepoint\else\edef\p_width {\the\dimexpr\p_sx\d_grph_scale_wd}\fi
+ \ifdim\p_sy\onepoint=\onepoint\else\edef\p_height{\the\dimexpr\p_sy\d_grph_scale_ht}\fi}
-\def\transforms_scale_rounded#1%
- {\expandafter\expandafter\expandafter\transforms_scale_rounded_indeed
+\def\grph_scale_rounded#1%
+ {\expandafter\expandafter\expandafter\grph_scale_rounded_indeed
\expandafter\WITHOUTPT\the\dimexpr#1\points*100+32768sp\relax.\relax}
-\def\transforms_scale_rounded_indeed#1.#2\relax{#1}
+\def\grph_scale_rounded_indeed#1.#2\relax{#1}
-\def\transforms_scale_calculations_nop
- {\settrue\c_transforms_scale_done
- \xdef\finalscaleboxwidth {\the\dimexpr\p_sx\d_transforms_scale_wd\relax}%
- \xdef\finalscaleboxheight{\the\dimexpr\p_sy\d_transforms_scale_ht\relax}%
+\def\grph_scale_calculations_nop
+ {\settrue\c_grph_scale_done
+ \xdef\finalscaleboxwidth {\the\dimexpr\p_sx\d_grph_scale_wd\relax}%
+ \xdef\finalscaleboxheight{\the\dimexpr\p_sy\d_grph_scale_ht\relax}%
\glet\finalscaleboxxscale\p_sx
\glet\finalscaleboxyscale\p_sy
\ifx\finalscaleboxxscale\empty\let\finalscaleboxxscale\!!plusone\fi
\ifx\finalscaleboxyscale\empty\let\finalscaleboxyscale\!!plusone\fi
- \xdef\finalscaleboxxfactor{\transforms_scale_rounded\finalscaleboxxscale}%
- \xdef\finalscaleboxyfactor{\transforms_scale_rounded\finalscaleboxyscale}}
+ \xdef\finalscaleboxxfactor{\grph_scale_rounded\finalscaleboxxscale}%
+ \xdef\finalscaleboxyfactor{\grph_scale_rounded\finalscaleboxyscale}}
-\def\transforms_scale_calculations_yes
- {\settrue\c_transforms_scale_done
+\def\grph_scale_calculations_yes
+ {\settrue\c_grph_scale_done
% initial values
- \d_transforms_scale_x_offset\zeropoint
- \d_transforms_scale_y_offset\zeropoint
- \d_transforms_scale_x_size \d_transforms_scale_wd
- \d_transforms_scale_y_size \d_transforms_scale_ht % alleen ht wordt geschaald!
+ \d_grph_scale_x_offset\zeropoint
+ \d_grph_scale_y_offset\zeropoint
+ \d_grph_scale_x_size \d_grph_scale_wd
+ \d_grph_scale_y_size \d_grph_scale_ht % alleen ht wordt geschaald!
% final values
- \global\d_transforms_scale_used_x_size \zeropoint % see note * (core-fig)
- \global\d_transforms_scale_used_y_size \zeropoint % see note * (core-fig)
- \c_transforms_scale_used_x_scale \plusone % see note * (core-fig)
- \c_transforms_scale_used_y_scale \plusone % see note * (core-fig)
+ \global\d_grph_scale_used_x_size \zeropoint % see note * (core-fig)
+ \global\d_grph_scale_used_y_size \zeropoint % see note * (core-fig)
+ \c_grph_scale_used_x_scale \plusone % see note * (core-fig)
+ \c_grph_scale_used_y_scale \plusone % see note * (core-fig)
% preparations
- \setfalse\c_transforms_scale_scaling_done
- \transforms_scale_check_parameters
+ \setfalse\c_grph_scale_scaling_done
+ \grph_scale_check_parameters
% calculators
% beware, they operate in sequence, and calculate missing dimensions / messy
%setscaleboxbynature % when? needed?
- \ifconditional\c_transforms_scale_scaling_done\else\transforms_scale_by_factor \fi
- \ifconditional\c_transforms_scale_scaling_done\else\transforms_scale_by_scale \fi
- \ifconditional\c_transforms_scale_scaling_done\else\transforms_scale_by_dimension\fi
+ \ifconditional\c_grph_scale_scaling_done\else\grph_scale_by_factor \fi
+ \ifconditional\c_grph_scale_scaling_done\else\grph_scale_by_scale \fi
+ \ifconditional\c_grph_scale_scaling_done\else\grph_scale_by_dimension\fi
% finalizers / to be done (no longer needed this way, clean up)
- \transforms_scale_convert_large_scale\d_transforms_scale_h_size\figx\c_transforms_scale_used_x_scale\m_transforms_scale_temp_x
- \transforms_scale_convert_large_scale\d_transforms_scale_v_size\figy\c_transforms_scale_used_y_scale\m_transforms_scale_temp_y
+ \grph_scale_convert_large_scale\d_grph_scale_h_size\figx\c_grph_scale_used_x_scale\m_grph_scale_temp_x
+ \grph_scale_convert_large_scale\d_grph_scale_v_size\figy\c_grph_scale_used_y_scale\m_grph_scale_temp_y
% used in actual scaling
- \xdef\finalscaleboxwidth {\the\d_transforms_scale_used_x_size}%
- \xdef\finalscaleboxheight {\the\d_transforms_scale_used_y_size}%
- \xdef\finalscaleboxxfactor{\the\c_transforms_scale_used_x_scale}%
- \xdef\finalscaleboxyfactor{\the\c_transforms_scale_used_y_scale}%
- \xdef\finalscaleboxxscale {\withoutpt\the\dimexpr\m_transforms_scale_temp_x\points/\plushundred\relax}%
- \xdef\finalscaleboxyscale {\withoutpt\the\dimexpr\m_transforms_scale_temp_y\points/\plushundred\relax}}
-
-\setvalue{\??scalegrid\v!yes }{\getnoflines \d_transforms_scale_used_y_size\edef\p_height{\the\noflines\lineheight}}
-\setvalue{\??scalegrid\v!height }{\getrawnoflines\d_transforms_scale_used_y_size\edef\p_height{\the\dimexpr\noflines\lineheight+\strutdepth}}
-\setvalue{\??scalegrid\v!depth }{\getrawnoflines\d_transforms_scale_used_y_size\edef\p_height{\the\dimexpr\noflines\lineheight-\strutdepth}}
-\setvalue{\??scalegrid\v!halfline}{\getrawnoflines\d_transforms_scale_used_y_size\edef\p_height{\the\dimexpr\noflines\lineheight+.5\lineheight}}
-\setvalue{\??scalegrid\v!fit }{\getrawnoflines\d_transforms_scale_used_y_size\edef\p_height{\the\noflines\lineheight}}
+ \xdef\finalscaleboxwidth {\the\d_grph_scale_used_x_size}%
+ \xdef\finalscaleboxheight {\the\d_grph_scale_used_y_size}%
+ \xdef\finalscaleboxxfactor{\the\c_grph_scale_used_x_scale}%
+ \xdef\finalscaleboxyfactor{\the\c_grph_scale_used_y_scale}%
+ \xdef\finalscaleboxxscale {\withoutpt\the\dimexpr\m_grph_scale_temp_x\points/\plushundred\relax}%
+ \xdef\finalscaleboxyscale {\withoutpt\the\dimexpr\m_grph_scale_temp_y\points/\plushundred\relax}}
+
+\setvalue{\??scalegrid\v!yes }{\getnoflines \d_grph_scale_used_y_size\edef\p_height{\the\noflines\lineheight}}
+\setvalue{\??scalegrid\v!height }{\getrawnoflines\d_grph_scale_used_y_size\edef\p_height{\the\dimexpr\noflines\lineheight+\strutdepth}}
+\setvalue{\??scalegrid\v!depth }{\getrawnoflines\d_grph_scale_used_y_size\edef\p_height{\the\dimexpr\noflines\lineheight-\strutdepth}}
+\setvalue{\??scalegrid\v!halfline}{\getrawnoflines\d_grph_scale_used_y_size\edef\p_height{\the\dimexpr\noflines\lineheight+.5\lineheight}}
+\setvalue{\??scalegrid\v!fit }{\getrawnoflines\d_grph_scale_used_y_size\edef\p_height{\the\noflines\lineheight}}
\letvalue{\??scalegrid\empty }\donothing
-\def\transforms_scale_check_parameters % resolve self referencing loops
+\def\grph_scale_check_parameters % resolve self referencing loops
{\ifx\p_maxwidth \empty\else \edef\p_maxwidth {\the\dimexpr\p_maxwidth }\fi
\ifx\p_maxheight\empty\else \edef\p_maxheight{\the\dimexpr\p_maxheight }\fi
\ifx\p_lines \empty\else \edef\p_height {\the\dimexpr\p_lines\lineheight}\fi
\getvalue{\??scalegrid\scaleparameter\c!grid}}
-\def\transforms_scale_by_nature % where ! ! ! ! !
- {\ifx\p_width \empty\else \global\d_transforms_scale_used_x_size\p_width \fi
- \ifx\p_height\empty\else \global\d_transforms_scale_used_y_size\p_height\fi
- \ifx\p_scale \empty\else \c_transforms_scale_used_x_scale\p_scale
- \c_transforms_scale_used_y_scale\p_scale \fi
- \ifx\p_xscale\empty\else \c_transforms_scale_used_x_scale\p_xscale\fi
- \ifx\p_yscale\empty\else \c_transforms_scale_used_y_scale\p_yscale\fi}
+\def\grph_scale_by_nature % where ! ! ! ! !
+ {\ifx\p_width \empty\else \global\d_grph_scale_used_x_size\p_width \fi
+ \ifx\p_height\empty\else \global\d_grph_scale_used_y_size\p_height\fi
+ \ifx\p_scale \empty\else \c_grph_scale_used_x_scale\p_scale
+ \c_grph_scale_used_y_scale\p_scale \fi
+ \ifx\p_xscale\empty\else \c_grph_scale_used_x_scale\p_xscale\fi
+ \ifx\p_yscale\empty\else \c_grph_scale_used_y_scale\p_yscale\fi}
% \defineexternalfigure[width-6][factor=auto,maxwidth=\textheight,maxheight=\textwidth]
% \defineexternalfigure[width-7][factor=auto,maxwidth=\textwidth,maxheight=\textheight]
% \placefigure{none}{\rotate[frame=on,offset=overlay]{\externalfigure[t:/sources/cow.pdf][width-6]}} \page
% \placefigure{none}{\framed[frame=on,offset=overlay]{\externalfigure[t:/sources/cow.pdf][width-7]}}
-\def\m_transforms_scale_factor_set{\v!max,\v!fit,\v!broad,\v!auto} % can be an \edef
-
-\def\transforms_scale_by_factor
- {\doifinsetelse\p_factor\m_transforms_scale_factor_set
- \transforms_scale_by_factor_a
- {\doifinsetelse\p_hfactor\m_transforms_scale_factor_set
- \transforms_scale_by_factor_b
- {\doifinsetelse\p_wfactor\m_transforms_scale_factor_set
- \transforms_scale_by_factor_c
- \transforms_scale_by_factor_d}}}
-
-\def\transforms_scale_by_factor_a
- {\transforms_scale_apply_size
- \ifdim\d_transforms_scale_x_size>\d_transforms_scale_y_size
- \transforms_scale_calculate_norm \d_transforms_scale_used_x_size\p_factor\p_maxwidth\hsize\d_transforms_scale_h_size
- \transforms_scale_calculate_scales\d_transforms_scale_used_x_size\d_transforms_scale_x_size\d_transforms_scale_used_y_size\d_transforms_scale_y_size
+\def\m_grph_scale_factor_set{\v!max,\v!fit,\v!broad,\v!auto} % can be an \edef
+
+\def\grph_scale_by_factor
+ {\doifinsetelse\p_factor\m_grph_scale_factor_set
+ \grph_scale_by_factor_a
+ {\doifinsetelse\p_hfactor\m_grph_scale_factor_set
+ \grph_scale_by_factor_b
+ {\doifinsetelse\p_wfactor\m_grph_scale_factor_set
+ \grph_scale_by_factor_c
+ \grph_scale_by_factor_d}}}
+
+\def\grph_scale_by_factor_a
+ {\grph_scale_apply_size
+ \ifdim\d_grph_scale_x_size>\d_grph_scale_y_size
+ \grph_scale_calculate_norm \d_grph_scale_used_x_size\p_factor\p_maxwidth\hsize\d_grph_scale_h_size
+ \grph_scale_calculate_scales\d_grph_scale_used_x_size\d_grph_scale_x_size\d_grph_scale_used_y_size\d_grph_scale_y_size
\else
- \transforms_scale_calculate_norm \d_transforms_scale_used_y_size\p_factor\p_maxheight\d_transforms_scale_outer_v_size\d_transforms_scale_v_size
- \transforms_scale_calculate_scales\d_transforms_scale_used_y_size\d_transforms_scale_y_size\d_transforms_scale_used_x_size\d_transforms_scale_x_size
+ \grph_scale_calculate_norm \d_grph_scale_used_y_size\p_factor\p_maxheight\d_grph_scale_outer_v_size\d_grph_scale_v_size
+ \grph_scale_calculate_scales\d_grph_scale_used_y_size\d_grph_scale_y_size\d_grph_scale_used_x_size\d_grph_scale_x_size
\fi
- \transforms_scale_by_factor_indeed}
-
-\def\transforms_scale_by_factor_b
- {\transforms_scale_apply_size
- \transforms_scale_calculate_norm \d_transforms_scale_used_y_size\p_hfactor\p_maxheight\d_transforms_scale_outer_v_size\d_transforms_scale_v_size
- \transforms_scale_calculate_scales\d_transforms_scale_used_y_size\d_transforms_scale_y_size\d_transforms_scale_used_x_size\d_transforms_scale_x_size
- \transforms_scale_by_factor_indeed}
-
-\def\transforms_scale_by_factor_c
- {\transforms_scale_apply_size
- \transforms_scale_calculate_norm \d_transforms_scale_used_x_size\p_wfactor\p_maxwidth\hsize\d_transforms_scale_h_size
- \transforms_scale_calculate_scales\d_transforms_scale_used_x_size\d_transforms_scale_x_size\d_transforms_scale_used_y_size\d_transforms_scale_y_size
- \transforms_scale_by_factor_indeed}
-
-\def\transforms_scale_by_factor_d
- {\transforms_scale_calculate_norm\d_transforms_scale_used_y_size\p_factor \p_height \textheight\d_transforms_scale_v_size
- \transforms_scale_calculate_norm\d_transforms_scale_used_y_size\p_hfactor\p_height \textheight\d_transforms_scale_v_size
- \transforms_scale_calculate_norm\d_transforms_scale_used_x_size\p_wfactor\p_width \hsize \hsize}
-
-\def\transforms_scale_by_factor_indeed
- {\settrue\c_transforms_scale_scaling_done
- \ifdim\d_transforms_scale_used_x_size>\d_transforms_scale_h_size
- \global\d_transforms_scale_used_y_size\zeropoint
- \global\d_transforms_scale_used_x_size\d_transforms_scale_h_size
- \else\ifdim\d_transforms_scale_used_y_size>\d_transforms_scale_v_size
- \global\d_transforms_scale_used_x_size\zeropoint
- \global\d_transforms_scale_used_y_size\d_transforms_scale_v_size
+ \grph_scale_by_factor_indeed}
+
+\def\grph_scale_by_factor_b
+ {\grph_scale_apply_size
+ \grph_scale_calculate_norm \d_grph_scale_used_y_size\p_hfactor\p_maxheight\d_grph_scale_outer_v_size\d_grph_scale_v_size
+ \grph_scale_calculate_scales\d_grph_scale_used_y_size\d_grph_scale_y_size\d_grph_scale_used_x_size\d_grph_scale_x_size
+ \grph_scale_by_factor_indeed}
+
+\def\grph_scale_by_factor_c
+ {\grph_scale_apply_size
+ \grph_scale_calculate_norm \d_grph_scale_used_x_size\p_wfactor\p_maxwidth\hsize\d_grph_scale_h_size
+ \grph_scale_calculate_scales\d_grph_scale_used_x_size\d_grph_scale_x_size\d_grph_scale_used_y_size\d_grph_scale_y_size
+ \grph_scale_by_factor_indeed}
+
+\def\grph_scale_by_factor_d
+ {\grph_scale_calculate_norm\d_grph_scale_used_y_size\p_factor \p_height \textheight\d_grph_scale_v_size
+ \grph_scale_calculate_norm\d_grph_scale_used_y_size\p_hfactor\p_height \textheight\d_grph_scale_v_size
+ \grph_scale_calculate_norm\d_grph_scale_used_x_size\p_wfactor\p_width \hsize \hsize}
+
+\def\grph_scale_by_factor_indeed
+ {\settrue\c_grph_scale_scaling_done
+ \ifdim\d_grph_scale_used_x_size>\d_grph_scale_h_size
+ \global\d_grph_scale_used_y_size\zeropoint
+ \global\d_grph_scale_used_x_size\d_grph_scale_h_size
+ \else\ifdim\d_grph_scale_used_y_size>\d_grph_scale_v_size
+ \global\d_grph_scale_used_x_size\zeropoint
+ \global\d_grph_scale_used_y_size\d_grph_scale_v_size
\fi\fi
- \transforms_scale_by_dimension}
-
-\def\transforms_scale_by_scale
- {\edef\m_transforms_scale_temp{\p_scale\p_xscale\p_yscale}%
- \ifx\m_transforms_scale_temp\empty \else
- \transforms_scale_apply_scale\d_transforms_scale_used_x_size\d_transforms_scale_x_size\c_transforms_scale_used_x_scale\p_xscale
- \transforms_scale_apply_scale\d_transforms_scale_used_y_size\d_transforms_scale_y_size\c_transforms_scale_used_y_scale\p_yscale
- \global\d_transforms_scale_used_x_size\zeropoint
- \global\d_transforms_scale_used_y_size\zeropoint
+ \grph_scale_by_dimension}
+
+\def\grph_scale_by_scale
+ {\edef\m_grph_scale_temp{\p_scale\p_xscale\p_yscale}%
+ \ifx\m_grph_scale_temp\empty \else
+ \grph_scale_apply_scale\d_grph_scale_used_x_size\d_grph_scale_x_size\c_grph_scale_used_x_scale\p_xscale
+ \grph_scale_apply_scale\d_grph_scale_used_y_size\d_grph_scale_y_size\c_grph_scale_used_y_scale\p_yscale
+ \global\d_grph_scale_used_x_size\zeropoint
+ \global\d_grph_scale_used_y_size\zeropoint
\ifx\p_maxwidth\empty
\ifx\p_maxheight\empty
\else
- \ifdim\d_transforms_scale_y_size>\p_maxheight\relax
- \global\d_transforms_scale_used_y_size\p_maxheight
+ \ifdim\d_grph_scale_y_size>\p_maxheight\relax
+ \global\d_grph_scale_used_y_size\p_maxheight
\fi
\fi
\else
- \ifdim\d_transforms_scale_x_size>\p_maxwidth\relax
- \global\d_transforms_scale_used_x_size\p_maxwidth
+ \ifdim\d_grph_scale_x_size>\p_maxwidth\relax
+ \global\d_grph_scale_used_x_size\p_maxwidth
\fi
\fi
\fi}
-\def\transforms_scale_by_dimension
- {\ifdim\d_transforms_scale_used_x_size>\zeropoint
- \ifdim\d_transforms_scale_used_y_size>\zeropoint
- \transforms_scale_by_dimension_a
+\def\grph_scale_by_dimension
+ {\ifdim\d_grph_scale_used_x_size>\zeropoint
+ \ifdim\d_grph_scale_used_y_size>\zeropoint
+ \grph_scale_by_dimension_a
\else
- \transforms_scale_by_dimension_b
+ \grph_scale_by_dimension_b
\fi
\else
- \ifdim\d_transforms_scale_used_y_size>\zeropoint
- \transforms_scale_by_dimension_c
+ \ifdim\d_grph_scale_used_y_size>\zeropoint
+ \grph_scale_by_dimension_c
\else
- \transforms_scale_by_dimension_d
+ \grph_scale_by_dimension_d
\fi
\fi}
-\def\transforms_scale_by_dimension_a
- {\transforms_scale_by_dimension_indeed
- {\transforms_scale_calculate_scale\d_transforms_scale_used_y_size\d_transforms_scale_y_size\c_transforms_scale_used_y_scale
- \transforms_scale_calculate_scale\d_transforms_scale_used_x_size\d_transforms_scale_x_size\c_transforms_scale_used_x_scale}%
- {\transforms_scale_calculate_scale\d_transforms_scale_used_y_size\d_transforms_scale_y_size\c_transforms_scale_used_y_scale
- \transforms_scale_calculate_scale\d_transforms_scale_used_x_size\d_transforms_scale_x_size\c_transforms_scale_used_x_scale}%
- {\transforms_scale_calculate_scale\d_transforms_scale_used_y_size\d_transforms_scale_y_size\c_transforms_scale_used_y_scale
- \transforms_scale_calculate_scale\d_transforms_scale_used_x_size\d_transforms_scale_x_size\c_transforms_scale_used_x_scale}}
-
-\def\transforms_scale_by_dimension_b
- {\transforms_scale_by_dimension_indeed
- {\transforms_scale_calculate_scales\d_transforms_scale_used_x_size\d_transforms_scale_x_size\d_transforms_scale_used_y_size\d_transforms_scale_y_size}%
- {\transforms_scale_calculate_scales\d_transforms_scale_used_x_size\d_transforms_scale_x_size\d_transforms_scale_used_y_size\d_transforms_scale_y_size}%
- {\transforms_scale_calculate_scales\d_transforms_scale_used_x_size\d_transforms_scale_x_size\d_transforms_scale_used_y_size\d_transforms_scale_y_size}}
-
-\def\transforms_scale_by_dimension_c
- {\transforms_scale_by_dimension_indeed
- {\transforms_scale_calculate_scales\d_transforms_scale_used_y_size\d_transforms_scale_y_size\d_transforms_scale_used_x_size\d_transforms_scale_x_size}%
- {\transforms_scale_calculate_scales\d_transforms_scale_used_y_size\d_transforms_scale_y_size\d_transforms_scale_used_x_size\d_transforms_scale_x_size}%
- {\transforms_scale_calculate_scales\d_transforms_scale_used_y_size\d_transforms_scale_y_size\d_transforms_scale_used_x_size\d_transforms_scale_x_size}}
-
-\def\transforms_scale_by_dimension_d
- {\transforms_scale_by_dimension_indeed
- {\transforms_scale_apply_scale\d_transforms_scale_used_x_size\d_transforms_scale_x_size\c_transforms_scale_used_x_scale\p_xscale
- \transforms_scale_apply_scale\d_transforms_scale_used_y_size\d_transforms_scale_y_size\c_transforms_scale_used_y_scale\p_yscale}%
- {\transforms_scale_calculate_scales\d_transforms_scale_used_x_size\d_transforms_scale_x_size\d_transforms_scale_used_y_size\d_transforms_scale_y_size}%
- {\transforms_scale_calculate_scales\d_transforms_scale_used_y_size\d_transforms_scale_y_size\d_transforms_scale_used_x_size\d_transforms_scale_x_size}}
-
-\def\transforms_scale_by_dimension_indeed#1#2#3%
+\def\grph_scale_by_dimension_a
+ {\grph_scale_by_dimension_indeed
+ {\grph_scale_calculate_scale\d_grph_scale_used_y_size\d_grph_scale_y_size\c_grph_scale_used_y_scale
+ \grph_scale_calculate_scale\d_grph_scale_used_x_size\d_grph_scale_x_size\c_grph_scale_used_x_scale}%
+ {\grph_scale_calculate_scale\d_grph_scale_used_y_size\d_grph_scale_y_size\c_grph_scale_used_y_scale
+ \grph_scale_calculate_scale\d_grph_scale_used_x_size\d_grph_scale_x_size\c_grph_scale_used_x_scale}%
+ {\grph_scale_calculate_scale\d_grph_scale_used_y_size\d_grph_scale_y_size\c_grph_scale_used_y_scale
+ \grph_scale_calculate_scale\d_grph_scale_used_x_size\d_grph_scale_x_size\c_grph_scale_used_x_scale}}
+
+\def\grph_scale_by_dimension_b
+ {\grph_scale_by_dimension_indeed
+ {\grph_scale_calculate_scales\d_grph_scale_used_x_size\d_grph_scale_x_size\d_grph_scale_used_y_size\d_grph_scale_y_size}%
+ {\grph_scale_calculate_scales\d_grph_scale_used_x_size\d_grph_scale_x_size\d_grph_scale_used_y_size\d_grph_scale_y_size}%
+ {\grph_scale_calculate_scales\d_grph_scale_used_x_size\d_grph_scale_x_size\d_grph_scale_used_y_size\d_grph_scale_y_size}}
+
+\def\grph_scale_by_dimension_c
+ {\grph_scale_by_dimension_indeed
+ {\grph_scale_calculate_scales\d_grph_scale_used_y_size\d_grph_scale_y_size\d_grph_scale_used_x_size\d_grph_scale_x_size}%
+ {\grph_scale_calculate_scales\d_grph_scale_used_y_size\d_grph_scale_y_size\d_grph_scale_used_x_size\d_grph_scale_x_size}%
+ {\grph_scale_calculate_scales\d_grph_scale_used_y_size\d_grph_scale_y_size\d_grph_scale_used_x_size\d_grph_scale_x_size}}
+
+\def\grph_scale_by_dimension_d
+ {\grph_scale_by_dimension_indeed
+ {\grph_scale_apply_scale\d_grph_scale_used_x_size\d_grph_scale_x_size\c_grph_scale_used_x_scale\p_xscale
+ \grph_scale_apply_scale\d_grph_scale_used_y_size\d_grph_scale_y_size\c_grph_scale_used_y_scale\p_yscale}%
+ {\grph_scale_calculate_scales\d_grph_scale_used_x_size\d_grph_scale_x_size\d_grph_scale_used_y_size\d_grph_scale_y_size}%
+ {\grph_scale_calculate_scales\d_grph_scale_used_y_size\d_grph_scale_y_size\d_grph_scale_used_x_size\d_grph_scale_x_size}}
+
+\def\grph_scale_by_dimension_indeed#1#2#3%
{#1\relax
\ifx\p_maxwidth\empty \else
- \ifdim\d_transforms_scale_used_x_size>\p_maxwidth\relax
- \global\d_transforms_scale_used_x_size\p_maxwidth
+ \ifdim\d_grph_scale_used_x_size>\p_maxwidth\relax
+ \global\d_grph_scale_used_x_size\p_maxwidth
#2\relax
\fi
\fi
\ifx\p_maxheight\empty \else
- \ifdim\d_transforms_scale_used_y_size>\p_maxheight\relax
- \global\d_transforms_scale_used_y_size\p_maxheight
+ \ifdim\d_grph_scale_used_y_size>\p_maxheight\relax
+ \global\d_grph_scale_used_y_size\p_maxheight
#3\relax
\fi
\fi}
-\def\transforms_scale_calculate_norm#1#2% todo: swap 1 and 2 and pass one less
+\def\grph_scale_calculate_norm#1#2% todo: swap 1 and 2 and pass one less
{\csname\??scalenorm\ifcsname\??scalenorm#2\endcsname#2\else\s!unknown\fi\endcsname#1#2}
\setvalue{\??scalenorm\v!max }#1#2#3#4#5{\global#1#4}
@@ -421,16 +421,16 @@
\setvalue{\??scalenorm\empty }#1#2#3#4#5{\ifx#3\empty\else\global#1#3\fi}
\setvalue{\??scalenorm\s!default}#1#2#3#4#5{\ifx#3\empty\else\global#1#3\fi}
-\def\transforms_scale_calculate_scales#1#2#3#4%
+\def\grph_scale_calculate_scales#1#2#3#4%
{\scratchdimen\dimexpr#1/\dimexpr#2/\plusthousand\relax\relax
- \c_transforms_scale_used_x_scale\scratchdimen
- \c_transforms_scale_used_y_scale\scratchdimen
- #3\dimexpr\c_transforms_scale_used_x_scale\dimexpr#4/\plusthousand\relax\relax}
+ \c_grph_scale_used_x_scale\scratchdimen
+ \c_grph_scale_used_y_scale\scratchdimen
+ #3\dimexpr\c_grph_scale_used_x_scale\dimexpr#4/\plusthousand\relax\relax}
-\def\transforms_scale_calculate_scale#1#2#3%
+\def\grph_scale_calculate_scale#1#2#3%
{#3\dimexpr#1/\dimexpr#2/\plusthousand\relax\relax}
-\def\transforms_scale_apply_scale#1#2#3#4% #4 = parameter / scale can be empty
+\def\grph_scale_apply_scale#1#2#3#4% #4 = parameter / scale can be empty
{\ifcase0#4\relax
\ifcase0\p_scale\relax
#3=\plusthousand
@@ -444,45 +444,45 @@
\global#1\ifnum#3=\plusthousand#2\else\dimexpr#3\dimexpr#2/\plusthousand\relax\relax\fi
\relax}
-\def\transforms_scale_apply_size
+\def\grph_scale_apply_size
{\ifx\p_maxheight\empty
- \d_transforms_scale_outer_v_size\textheight
+ \d_grph_scale_outer_v_size\textheight
\ifinner
- \d_transforms_scale_outer_v_size \vsize % \textheight =\vsize
+ \d_grph_scale_outer_v_size \vsize % \textheight =\vsize
\scratchdimen\vsize % \scratchdimen=\textheight
\else\ifinsidefloat
- \d_transforms_scale_outer_v_size \vsize % \textheight =\vsize
+ \d_grph_scale_outer_v_size \vsize % \textheight =\vsize
\scratchdimen\vsize % \scratchdimen=\textheight
\else\ifinpagebody
- \d_transforms_scale_outer_v_size \vsize % \textheight =\vsize
+ \d_grph_scale_outer_v_size \vsize % \textheight =\vsize
\scratchdimen\vsize % \scratchdimen=\textheight
\else % hm, there should be an option to force this
\ifdim\pagegoal<\maxdimen
\ifdim\pagetotal<\pagegoal
\scratchdimen\dimexpr\pagegoal-\pagetotal\relax
\else
- \scratchdimen\d_transforms_scale_outer_v_size % \textheight
+ \scratchdimen\d_grph_scale_outer_v_size % \textheight
\fi
\else
- \scratchdimen\d_transforms_scale_outer_v_size % \textheight
+ \scratchdimen\d_grph_scale_outer_v_size % \textheight
\fi
\fi\fi\fi
\else
\scratchdimen\p_maxheight
- \d_transforms_scale_outer_v_size\scratchdimen
+ \d_grph_scale_outer_v_size\scratchdimen
\fi
\ifx\p_height\empty
- \d_transforms_scale_v_size\scratchdimen
+ \d_grph_scale_v_size\scratchdimen
\else
- \d_transforms_scale_v_size\p_height
+ \d_grph_scale_v_size\p_height
\fi
\ifx\p_width\empty
- \d_transforms_scale_h_size\hsize
+ \d_grph_scale_h_size\hsize
\else
- \d_transforms_scale_h_size\p_width
+ \d_grph_scale_h_size\p_width
\fi}
-\def\transforms_scale_convert_large_scale#1#2#3#4%
+\def\grph_scale_convert_large_scale#1#2#3#4%
{\scratchdimen#1\relax
\ifnum#3=\plusthousand
% == scale 1
@@ -508,37 +508,37 @@
% {\externalfigure[mill.png][frame=on,height=3cm,equalwidth=6cm]} {}
% \stopcombination
-\def\transforms_scale_position
+\def\grph_scale_position
{\ifx\p_equalwidth\empty \else
\scratchdimen\p_equalwidth\relax
- \ifdim\d_transforms_scale_wd<\scratchdimen
+ \ifdim\d_grph_scale_wd<\scratchdimen
\setbox\nextbox\hbox to \scratchdimen{\hss\box\nextbox\hss}%
\fi
\fi
\ifx\p_equalheight\empty \else
\scratchdimen\p_equalheight\relax
- \ifdim\d_transforms_scale_ht<\scratchdimen
+ \ifdim\d_grph_scale_ht<\scratchdimen
\setbox\nextbox\vbox to \scratchdimen{\vss\box\nextbox\vss}%
\fi
\fi}
\unexpanded\def\fastscale#1%
{\ifnum#1=1000\relax
- \expandafter\transforms_fast_scale_nop
+ \expandafter\grph_scale_fast_nop
\else
- \expandafter\transforms_fast_scale_yes
+ \expandafter\grph_scale_fast_yes
\fi{#1}}
-\def\transforms_fast_scale_nop#1%
+\def\grph_scale_fast_nop#1%
{\hbox}
-\def\transforms_fast_scale_yes#1%
- {\edef\finalscaleboxxscale{\withoutpt\the\dimexpr#1pt/1000\relax}%
+\def\grph_scale_fast_yes#1%
+ {\edef\finalscaleboxxscale{\withoutpt\the\dimexpr#1pt/1000\relax}% brrr
\let\finalscaleboxyscale\finalscaleboxxscale
- \dowithnextboxcs\transforms_fast_scale_finish\hbox}
+ \dowithnextboxcs\grph_scale_fast_finish\hbox}
-\def\transforms_fast_scale_finish
- {\transforms_scale_apply
+\def\grph_scale_fast_finish
+ {\grph_scale_apply
\box\nextbox
\endgroup}
@@ -577,21 +577,21 @@
{\dodoubleargument\getparameters[\??cp]}
\unexpanded\def\clip
- {\dosingleempty\transforms_clip}
+ {\dosingleempty\grph_clip}
-\def\transforms_clip[#1]% nb top->bottom left->right
+\def\grph_clip[#1]% nb top->bottom left->right
{\bgroup
\iffirstargument
\getparameters[\??cp][#1]%
\fi
- \dowithnextboxcs\transforms_clip_finish\hbox}
+ \dowithnextboxcs\grph_clip_finish\hbox}
-\def\transforms_clip_finish
+\def\grph_clip_finish
{\doifelse\@@cpstate\v!start
- \transforms_clip_yes_finish
- \transforms_clip_nop_finish}
+ \grph_clip_yes_finish
+ \grph_clip_nop_finish}
-\def\transforms_clip_yes_finish
+\def\grph_clip_yes_finish
{\ifdim\@@cpwidth>\zeropoint
\!!dimena\@@cpwidth
\!!dimenc\@@cphoffset
@@ -642,7 +642,7 @@
\box\nextbox
\egroup}
-\def\transforms_clip_nop_finish
+\def\grph_clip_nop_finish
{\box\nextbox
\egroup}
@@ -684,9 +684,9 @@
\unexpanded\def\mirror
{\bgroup
- \dowithnextboxcs\transforms_mirror_finish\hbox}
+ \dowithnextboxcs\grph_mirror_finish\hbox}
-\def\transforms_mirror_finish
+\def\grph_mirror_finish
{\dontshowcomposition
\scratchdimen\wd\nextbox
% better use an hbox (if no \forgetall, leftskip etc may creep in)
@@ -729,26 +729,26 @@
% maybe just \rotation_...
-\newdimen\d_transforms_rotation_x_size
-\newdimen\d_transforms_rotation_y_size
-\newdimen\d_transforms_rotation_x_offset
-\newdimen\d_transforms_rotation_y_offset
-\newdimen\d_transforms_rotation_x_position
-\newdimen\d_transforms_rotation_y_position
+\newdimen\d_grph_rotate_x_size
+\newdimen\d_grph_rotate_y_size
+\newdimen\d_grph_rotate_x_offset
+\newdimen\d_grph_rotate_y_offset
+\newdimen\d_grph_rotate_x_position
+\newdimen\d_grph_rotate_y_position
-\newdimen\d_transforms_rotation_used_height
+\newdimen\d_grph_rotate_used_height
-\let\d_transforms_rotation_width \!!widtha
-\let\d_transforms_rotation_height\!!heighta
-\let\d_transforms_rotation_depth \!!deptha
+\let\d_grph_rotate_width \!!widtha
+\let\d_grph_rotate_height\!!heighta
+\let\d_grph_rotate_depth \!!deptha
-\let\d_transforms_rotation_saved_width \!!widthb
-\let\d_transforms_rotation_saved_height\!!heightb
-\let\d_transforms_rotation_saved_depth \!!depthb
+\let\d_grph_rotate_saved_width \!!widthb
+\let\d_grph_rotate_saved_height\!!heightb
+\let\d_grph_rotate_saved_depth \!!depthb
-\newconditional\c_transforms_rotation_obey_depth
-\newconditional\c_transforms_rotation_not_fit
-\newconditional\c_transforms_rotation_center
+\newconditional\c_grph_rotate_obey_depth
+\newconditional\c_grph_rotate_not_fit
+\newconditional\c_grph_rotate_center
\installframedcommandhandler \??rotate {rotate} \??rotate
@@ -765,9 +765,9 @@
\unexpanded\def\rotate % \bgroup: \rotate kan argument zijn
{\bgroup
- \dosingleempty\transforms_rotate}
+ \dosingleempty\grph_rotate}
-\def\transforms_rotate[#1]%
+\def\grph_rotate[#1]%
{\iffirstargument
\setupcurrentrotate[#1]%
\fi
@@ -777,83 +777,83 @@
\ifcsname\??rotatelocation\p_rotation_location\endcsname\p_rotation_location\else\v!default\fi
\endcsname}
-\def\transforms_rotate_framed
+\def\grph_rotate_framed
{\resetrotateparameter\c!location
- \dowithnextboxcs\transforms_rotate_finish\vbox
+ \dowithnextboxcs\grph_rotate_finish\vbox
\inheritedrotateframed}
-\def\transforms_rotate_normal
- {\dowithnextboxcs\transforms_rotate_finish\vbox}
+\def\grph_rotate_normal
+ {\dowithnextboxcs\grph_rotate_finish\vbox}
-\def\transforms_rotate_finish
- {\transforms_rotation_finish_indeed
+\def\grph_rotate_finish
+ {\grph_rotate_finish_indeed
\egroup}
\setvalue{\??rotatelocation\v!depth}%
- {\setfalse\c_transforms_rotation_not_fit
- \setfalse\c_transforms_rotation_center
- \settrue \c_transforms_rotation_obey_depth
- \transforms_rotate_normal}
+ {\setfalse\c_grph_rotate_not_fit
+ \setfalse\c_grph_rotate_center
+ \settrue \c_grph_rotate_obey_depth
+ \grph_rotate_normal}
\setvalue{\??rotatelocation\v!fit}%
- {\settrue \c_transforms_rotation_not_fit
- \setfalse\c_transforms_rotation_center
- \settrue \c_transforms_rotation_obey_depth
- \transforms_rotate_normal}
+ {\settrue \c_grph_rotate_not_fit
+ \setfalse\c_grph_rotate_center
+ \settrue \c_grph_rotate_obey_depth
+ \grph_rotate_normal}
\setvalue{\??rotatelocation\v!broad}%
- {\setfalse\c_transforms_rotation_not_fit
- \setfalse\c_transforms_rotation_center
- \setfalse\c_transforms_rotation_obey_depth
- \transforms_rotate_normal}
+ {\setfalse\c_grph_rotate_not_fit
+ \setfalse\c_grph_rotate_center
+ \setfalse\c_grph_rotate_obey_depth
+ \grph_rotate_normal}
\setvalue{\??rotatelocation\v!high}%
- {\setfalse\c_transforms_rotation_not_fit
- \setfalse\c_transforms_rotation_center
- \setfalse\c_transforms_rotation_obey_depth
- \transforms_rotate_framed}
+ {\setfalse\c_grph_rotate_not_fit
+ \setfalse\c_grph_rotate_center
+ \setfalse\c_grph_rotate_obey_depth
+ \grph_rotate_framed}
\setvalue{\??rotatelocation\v!middle}%
- {\setfalse\c_transforms_rotation_not_fit
- \settrue \c_transforms_rotation_center
- \setfalse\c_transforms_rotation_obey_depth % hm, depth ?
- \transforms_rotate_normal}
+ {\setfalse\c_grph_rotate_not_fit
+ \settrue \c_grph_rotate_center
+ \setfalse\c_grph_rotate_obey_depth % hm, depth ?
+ \grph_rotate_normal}
\setvalue{\??rotatelocation\v!default}%
- {\setfalse\c_transforms_rotation_not_fit
- \setfalse\c_transforms_rotation_center
- \settrue \c_transforms_rotation_obey_depth
- \transforms_rotate_framed}
+ {\setfalse\c_grph_rotate_not_fit
+ \setfalse\c_grph_rotate_center
+ \settrue \c_grph_rotate_obey_depth
+ \grph_rotate_framed}
\def\dorotatebox#1% {angle} \hbox/\vbox/\vtop % a fast low level one
{\ifcase#1\relax
\expandafter\gobbleoneargument
\else
- \expandafter\transforms_rotation_box
+ \expandafter\grph_rotate_box
\fi{#1}}
-\def\transforms_rotation_box#1% {angle} \hbox/\vbox/\vtop
+\def\grph_rotate_box#1% {angle} \hbox/\vbox/\vtop
{\bgroup
\hbox\bgroup % compatibility hack
\edef\p_rotation_rotation{#1}%
- \dowithnextboxcs\transforms_rotation_finish}
+ \dowithnextboxcs\grph_rotate_finish}
-\def\transforms_rotation_finish
+\def\grph_rotate_finish
{\getvalue{\??rotatelocation\v!broad}%
- \transforms_rotation_finish_indeed
+ \grph_rotate_finish_indeed
\egroup
\egroup}
-\def\transforms_rotation_finish_indeed
+\def\grph_rotate_finish_indeed
{\hbox\bgroup
\ifx\p_rotation_rotation\empty
- \transforms_rotation_finish_nop
+ \grph_rotate_finish_nop
\else
- \transforms_rotation_finish_yes
+ \grph_rotate_finish_yes
\fi
\egroup}
-\def\transforms_rotation_finish_nop
+\def\grph_rotate_finish_nop
{\boxcursor\box\nextbox}
\setvalue{\??rotatepreset\v!left}%
@@ -873,133 +873,133 @@
\setvalue{\??rotatepreset\v!default}%
{\edef\p_rotation_rotation{\realnumber{\p_rotation_rotation}}}% get rid of leading zeros and spaces
-\def\transforms_rotation_finish_yes
+\def\grph_rotate_finish_yes
{\csname\??rotatepreset
\ifcsname\??rotatepreset\p_rotation_rotation\endcsname\p_rotation_rotation\else\v!default\fi
\endcsname
\setbox\nextbox\vbox{\box\nextbox}% not really needed
\dontshowcomposition
\dontcomplain
- \ifconditional\c_transforms_rotation_center
- \d_transforms_rotation_saved_width \wd\nextbox
- \d_transforms_rotation_saved_height\ht\nextbox
- \d_transforms_rotation_saved_depth \dp\nextbox
+ \ifconditional\c_grph_rotate_center
+ \d_grph_rotate_saved_width \wd\nextbox
+ \d_grph_rotate_saved_height\ht\nextbox
+ \d_grph_rotate_saved_depth \dp\nextbox
\setbox\nextbox\vbox{\vskip.5\ht\nextbox\hskip-.5\wd\nextbox\box\nextbox}%
\smashbox\nextbox
\fi
- \d_transforms_rotation_width \wd\nextbox
- \d_transforms_rotation_height\ht\nextbox
- \d_transforms_rotation_depth \dp\nextbox
+ \d_grph_rotate_width \wd\nextbox
+ \d_grph_rotate_height\ht\nextbox
+ \d_grph_rotate_depth \dp\nextbox
\setbox\nextbox\vbox{\hbox{\raise\dp\nextbox\box\nextbox}}%
- \d_transforms_rotation_used_height \ht\nextbox
+ \d_grph_rotate_used_height \ht\nextbox
% much of the next happens in lua (all the sin and cos) so we can do that in
% one go if needed
\setcalculatedcos\cos\p_rotation_rotation
\setcalculatedsin\sin\p_rotation_rotation
\ifdim\sin\points>\zeropoint
\ifdim\cos\points>\zeropoint
- \transforms_rotation_calculate_a
- \transforms_rotation_apply
+ \grph_rotate_calculate_a
+ \grph_rotate_apply
\else
- \transforms_rotation_calculate_b
- \transforms_rotation_apply
- \wd\nextbox\ifconditional\c_transforms_rotation_not_fit\sin\d_transforms_rotation_depth\else\d_transforms_rotation_x_size\fi
+ \grph_rotate_calculate_b
+ \grph_rotate_apply
+ \wd\nextbox\ifconditional\c_grph_rotate_not_fit\sin\d_grph_rotate_depth\else\d_grph_rotate_x_size\fi
\fi
\else
\ifdim\cos\points<\zeropoint
- \transforms_rotation_calculate_c
- \transforms_rotation_apply
- \wd\nextbox\ifconditional\c_transforms_rotation_not_fit\negated\sin\d_transforms_rotation_height\else\d_transforms_rotation_x_size\fi
+ \grph_rotate_calculate_c
+ \grph_rotate_apply
+ \wd\nextbox\ifconditional\c_grph_rotate_not_fit\negated\sin\d_grph_rotate_height\else\d_grph_rotate_x_size\fi
\else\ifdim\sin\points=\zeropoint
- \transforms_rotation_calculate_d
- \transforms_rotation_apply
+ \grph_rotate_calculate_d
+ \grph_rotate_apply
% no wd ?
\else
- \transforms_rotation_calculate_e
- \transforms_rotation_apply
- \wd\nextbox\ifconditional\c_transforms_rotation_not_fit\negated\sin\d_transforms_rotation_height\else\d_transforms_rotation_x_size\fi
+ \grph_rotate_calculate_e
+ \grph_rotate_apply
+ \wd\nextbox\ifconditional\c_grph_rotate_not_fit\negated\sin\d_grph_rotate_height\else\d_grph_rotate_x_size\fi
\fi\fi
\fi
- \ifconditional\c_transforms_rotation_center
- \setbox\nextbox\vbox{\vskip-.5\d_transforms_rotation_saved_height\hskip.5\d_transforms_rotation_saved_height\box\nextbox}%
- \wd\nextbox\d_transforms_rotation_saved_width
- \ht\nextbox\d_transforms_rotation_saved_height
- \dp\nextbox\d_transforms_rotation_saved_depth
+ \ifconditional\c_grph_rotate_center
+ \setbox\nextbox\vbox{\vskip-.5\d_grph_rotate_saved_height\hskip.5\d_grph_rotate_saved_height\box\nextbox}%
+ \wd\nextbox\d_grph_rotate_saved_width
+ \ht\nextbox\d_grph_rotate_saved_height
+ \dp\nextbox\d_grph_rotate_saved_depth
\fi
\boxcursor\box\nextbox}
-\def\transforms_rotation_calculate_a
- {\d_transforms_rotation_x_size\dimexpr\cos\d_transforms_rotation_width+\sin\d_transforms_rotation_used_height\relax
- \d_transforms_rotation_y_size\dimexpr\sin\d_transforms_rotation_width+\cos\d_transforms_rotation_used_height\relax
- \d_transforms_rotation_x_position\zeropoint
- \d_transforms_rotation_y_position\cos\d_transforms_rotation_used_height
- \ifconditional\c_transforms_rotation_not_fit
- \d_transforms_rotation_x_offset\dimexpr\negated\sin\d_transforms_rotation_used_height+\sin\d_transforms_rotation_depth\relax
+\def\grph_rotate_calculate_a
+ {\d_grph_rotate_x_size\dimexpr\cos\d_grph_rotate_width+\sin\d_grph_rotate_used_height\relax
+ \d_grph_rotate_y_size\dimexpr\sin\d_grph_rotate_width+\cos\d_grph_rotate_used_height\relax
+ \d_grph_rotate_x_position\zeropoint
+ \d_grph_rotate_y_position\cos\d_grph_rotate_used_height
+ \ifconditional\c_grph_rotate_not_fit
+ \d_grph_rotate_x_offset\dimexpr\negated\sin\d_grph_rotate_used_height+\sin\d_grph_rotate_depth\relax
\fi
- \ifconditional\c_transforms_rotation_obey_depth
- \d_transforms_rotation_y_offset\cos\d_transforms_rotation_depth
+ \ifconditional\c_grph_rotate_obey_depth
+ \d_grph_rotate_y_offset\cos\d_grph_rotate_depth
\fi}
-\def\transforms_rotation_calculate_b
- {\d_transforms_rotation_x_size\dimexpr\negated\cos\d_transforms_rotation_width+\sin\d_transforms_rotation_used_height\relax
- \d_transforms_rotation_y_size\dimexpr\sin\d_transforms_rotation_width+\negated\cos\d_transforms_rotation_used_height\relax
- \d_transforms_rotation_x_position\negated\cos\d_transforms_rotation_width
- \d_transforms_rotation_y_position\zeropoint
- \ifconditional\c_transforms_rotation_not_fit
- \d_transforms_rotation_x_offset\dimexpr-\d_transforms_rotation_x_size+\sin\d_transforms_rotation_depth\relax
+\def\grph_rotate_calculate_b
+ {\d_grph_rotate_x_size\dimexpr\negated\cos\d_grph_rotate_width+\sin\d_grph_rotate_used_height\relax
+ \d_grph_rotate_y_size\dimexpr\sin\d_grph_rotate_width+\negated\cos\d_grph_rotate_used_height\relax
+ \d_grph_rotate_x_position\negated\cos\d_grph_rotate_width
+ \d_grph_rotate_y_position\zeropoint
+ \ifconditional\c_grph_rotate_not_fit
+ \d_grph_rotate_x_offset\dimexpr-\d_grph_rotate_x_size+\sin\d_grph_rotate_depth\relax
\fi
- \ifconditional\c_transforms_rotation_obey_depth
- \d_transforms_rotation_y_offset\negated\cos\d_transforms_rotation_height
+ \ifconditional\c_grph_rotate_obey_depth
+ \d_grph_rotate_y_offset\negated\cos\d_grph_rotate_height
\fi}
-\def\transforms_rotation_calculate_c
- {\d_transforms_rotation_x_size\dimexpr\negated\cos\d_transforms_rotation_width+\negated\sin\d_transforms_rotation_used_height\relax
- \d_transforms_rotation_y_size\dimexpr\negated\sin\d_transforms_rotation_width+\negated\cos\d_transforms_rotation_used_height\relax
- \d_transforms_rotation_x_position\d_transforms_rotation_x_size
- \d_transforms_rotation_y_position\negated\sin\d_transforms_rotation_width
- \ifconditional\c_transforms_rotation_not_fit
- \d_transforms_rotation_x_offset\dimexpr-\d_transforms_rotation_x_size+\negated\sin\d_transforms_rotation_height\relax
+\def\grph_rotate_calculate_c
+ {\d_grph_rotate_x_size\dimexpr\negated\cos\d_grph_rotate_width+\negated\sin\d_grph_rotate_used_height\relax
+ \d_grph_rotate_y_size\dimexpr\negated\sin\d_grph_rotate_width+\negated\cos\d_grph_rotate_used_height\relax
+ \d_grph_rotate_x_position\d_grph_rotate_x_size
+ \d_grph_rotate_y_position\negated\sin\d_grph_rotate_width
+ \ifconditional\c_grph_rotate_not_fit
+ \d_grph_rotate_x_offset\dimexpr-\d_grph_rotate_x_size+\negated\sin\d_grph_rotate_height\relax
\fi
- \ifconditional\c_transforms_rotation_obey_depth
- \d_transforms_rotation_y_offset\dimexpr\d_transforms_rotation_y_size+\cos\d_transforms_rotation_depth\relax
+ \ifconditional\c_grph_rotate_obey_depth
+ \d_grph_rotate_y_offset\dimexpr\d_grph_rotate_y_size+\cos\d_grph_rotate_depth\relax
\fi}
-\def\transforms_rotation_calculate_d
- {\d_transforms_rotation_x_size\dimexpr\cos\d_transforms_rotation_width+\negated\sin\d_transforms_rotation_used_height\relax
- \d_transforms_rotation_y_size\dimexpr\negated\sin\d_transforms_rotation_width+\cos\d_transforms_rotation_used_height\relax
- \d_transforms_rotation_x_position\zeropoint
- \d_transforms_rotation_y_position\d_transforms_rotation_y_size
- \d_transforms_rotation_x_offset\zeropoint
- \ifconditional\c_transforms_rotation_obey_depth
- \d_transforms_rotation_y_offset\d_transforms_rotation_depth
+\def\grph_rotate_calculate_d
+ {\d_grph_rotate_x_size\dimexpr\cos\d_grph_rotate_width+\negated\sin\d_grph_rotate_used_height\relax
+ \d_grph_rotate_y_size\dimexpr\negated\sin\d_grph_rotate_width+\cos\d_grph_rotate_used_height\relax
+ \d_grph_rotate_x_position\zeropoint
+ \d_grph_rotate_y_position\d_grph_rotate_y_size
+ \d_grph_rotate_x_offset\zeropoint
+ \ifconditional\c_grph_rotate_obey_depth
+ \d_grph_rotate_y_offset\d_grph_rotate_depth
\fi}
-\def\transforms_rotation_calculate_e
- {\d_transforms_rotation_x_size\dimexpr\cos\d_transforms_rotation_width+\negated\sin\d_transforms_rotation_used_height\relax
- \d_transforms_rotation_y_size\dimexpr\negated\sin\d_transforms_rotation_width+\cos\d_transforms_rotation_used_height\relax
- \d_transforms_rotation_x_position\negated\sin\d_transforms_rotation_used_height
- \d_transforms_rotation_y_position\d_transforms_rotation_y_size
- \ifconditional\c_transforms_rotation_not_fit
- \d_transforms_rotation_x_offset\dimexpr-\d_transforms_rotation_x_size+\negated\sin\d_transforms_rotation_height\relax
+\def\grph_rotate_calculate_e
+ {\d_grph_rotate_x_size\dimexpr\cos\d_grph_rotate_width+\negated\sin\d_grph_rotate_used_height\relax
+ \d_grph_rotate_y_size\dimexpr\negated\sin\d_grph_rotate_width+\cos\d_grph_rotate_used_height\relax
+ \d_grph_rotate_x_position\negated\sin\d_grph_rotate_used_height
+ \d_grph_rotate_y_position\d_grph_rotate_y_size
+ \ifconditional\c_grph_rotate_not_fit
+ \d_grph_rotate_x_offset\dimexpr-\d_grph_rotate_x_size+\negated\sin\d_grph_rotate_height\relax
\fi
- \ifconditional\c_transforms_rotation_obey_depth
- \d_transforms_rotation_y_offset\negated\sin\d_transforms_rotation_depth
+ \ifconditional\c_grph_rotate_obey_depth
+ \d_grph_rotate_y_offset\negated\sin\d_grph_rotate_depth
\fi}
-\def\transforms_rotation_apply
- {\setbox\nextbox\vbox to \d_transforms_rotation_y_size
+\def\grph_rotate_apply
+ {\setbox\nextbox\vbox to \d_grph_rotate_y_size
{\vfill
- \hbox to \d_transforms_rotation_x_size
+ \hbox to \d_grph_rotate_x_size
{\dostartrotation\p_rotation_rotation
\wd\nextbox\zeropoint
\ht\nextbox\zeropoint
\box\nextbox
\dostoprotation
\hfill}%
- \kern\d_transforms_rotation_y_position}%
+ \kern\d_grph_rotate_y_position}%
\setbox\nextbox\hbox
- {\kern\dimexpr\d_transforms_rotation_x_position+\d_transforms_rotation_x_offset\relax
- \lower\d_transforms_rotation_y_offset\box\nextbox}}
+ {\kern\dimexpr\d_grph_rotate_x_position+\d_grph_rotate_x_offset\relax
+ \lower\d_grph_rotate_y_offset\box\nextbox}}
% \dostepwiserecurse{0}{360}{10}
% {\startlinecorrection[blank]