[latex3-commits] [git/LaTeX3-latex3-latex3] master: Split transform interface into shift/matrix (c326f9c)

Joseph Wright joseph.wright at morningstar2.co.uk
Fri Mar 2 22:49:39 CET 2018


Repository : https://github.com/latex3/latex3
On branch  : master
Link       : https://github.com/latex3/latex3/commit/c326f9cf44a99d44a048277c88e2fd2bdd346c8d

>---------------------------------------------------------------

commit c326f9cf44a99d44a048277c88e2fd2bdd346c8d
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Fri Mar 2 21:49:39 2018 +0000

    Split transform interface into shift/matrix
    
    This will fit better with some internals, but also
    the fact that the two areas are separate.


>---------------------------------------------------------------

c326f9cf44a99d44a048277c88e2fd2bdd346c8d
 l3experimental/l3draw/l3draw-points.dtx       |   27 ++-
 l3experimental/l3draw/l3draw-scopes.dtx       |    3 +-
 l3experimental/l3draw/l3draw-transforms.dtx   |  236 +++++++++++--------------
 l3experimental/l3draw/l3draw.dtx              |   57 +++---
 l3experimental/l3draw/testfiles/m3draw000.tlg |    4 +-
 l3experimental/l3draw/testfiles/m3draw002.lvt |   30 ++--
 l3experimental/l3draw/testfiles/m3draw002.tlg |   19 +-
 l3experimental/l3draw/testfiles/m3draw003.lvt |    9 +-
 8 files changed, 174 insertions(+), 211 deletions(-)

diff --git a/l3experimental/l3draw/l3draw-points.dtx b/l3experimental/l3draw/l3draw-points.dtx
index a0d8d49..4c8d29f 100644
--- a/l3experimental/l3draw/l3draw-points.dtx
+++ b/l3experimental/l3draw/l3draw-points.dtx
@@ -880,20 +880,20 @@
   }
 \cs_new:Npn \@@_point_transform:nn #1#2
   {
-    \bool_if:NTF \l_@@_transformcm_active_bool
+    \bool_if:NTF \l_@@_matrix_active_bool
       {
         \@@_point_to_dim:n
           {
             (
-                \l_@@_transformcm_aa_fp * #1
-              + \l_@@_transformcm_ba_fp * #2
-              + \l_@@_transformcm_xshift_dim
+                \l_@@_matrix_aa_fp * #1
+              + \l_@@_matrix_ba_fp * #2
+              + \l_@@_xshift_dim
             )
             ,
             (
-                \l_@@_transformcm_ab_fp * #1
-              + \l_@@_transformcm_bb_fp * #2
-              + \l_@@_transformcm_yshift_dim
+                \l_@@_matrix_ab_fp * #1
+              + \l_@@_matrix_bb_fp * #2
+              + \l_@@_yshift_dim
             )
         }
       }
@@ -901,8 +901,7 @@
         \@@_point_to_dim:n
           {
               (#1, #2)
-            + ( \l_@@_transformcm_xshift_dim ,
-                \l_@@_transformcm_yshift_dim )
+            + ( \l_@@_xshift_dim , \l_@@_yshift_dim )
           }
       }
   }
@@ -921,18 +920,18 @@
   }
 \cs_new:Npn \@@_point_transform_noshift:nn #1#2
   {
-    \bool_if:NTF \l_@@_transformcm_active_bool
+    \bool_if:NTF \l_@@_matrix_active_bool
       {
         \@@_point_to_dim:n
           {
             (
-                \l_@@_transformcm_aa_fp * #1
-              + \l_@@_transformcm_ba_fp * #2
+                \l_@@_matrix_aa_fp * #1
+              + \l_@@_matrix_ba_fp * #2
             )
             ,
             (
-                \l_@@_transformcm_ab_fp * #1
-              + \l_@@_transformcm_bb_fp * #2
+                \l_@@_matrix_ab_fp * #1
+              + \l_@@_matrix_bb_fp * #2
             )
         }
       }
diff --git a/l3experimental/l3draw/l3draw-scopes.dtx b/l3experimental/l3draw/l3draw-scopes.dtx
index 5e233c7..8e8f949 100644
--- a/l3experimental/l3draw/l3draw-scopes.dtx
+++ b/l3experimental/l3draw/l3draw-scopes.dtx
@@ -130,7 +130,8 @@
         \@@_reset_bb:
         \@@_path_reset_limits:
         \bool_set_true:N \l_@@_update_bb_bool
-        \draw_transform_reset:
+        \draw_transform_matrix_reset:
+        \draw_transform_shift_reset:
         \@@_softpath_clear:
         \draw_linewidth:n { \l_draw_default_linewidth_dim }
         \draw_color:n { . }
diff --git a/l3experimental/l3draw/l3draw-transforms.dtx b/l3experimental/l3draw/l3draw-transforms.dtx
index ad667e4..800f7cc 100644
--- a/l3experimental/l3draw/l3draw-transforms.dtx
+++ b/l3experimental/l3draw/l3draw-transforms.dtx
@@ -72,156 +72,143 @@
 %     use cases are encountered in other parts of the code.
 % \end{itemize}
 %
-% \begin{variable}{\l_@@_transformcm_active_bool}
+% \begin{variable}{\l_@@_matrix_active_bool}
 %   An internal flag to avoid redundant calculations.
 %    \begin{macrocode}
-\bool_new:N \l_@@_transformcm_active_bool
+\bool_new:N \l_@@_matrix_active_bool
 %    \end{macrocode}
 % \end{variable}
 %
 % \begin{variable}
 %   {
-%     \l_@@_transformcm_aa_fp, \l_@@_transformcm_ab_fp,
-%     \l_@@_transformcm_ba_fp, \l_@@_transformcm_aa_fp,
-%     \l_@@_transformcm_xshift_dim,
-%     \l_@@_transformcm_yshift_dim
+%     \l_@@_matrix_aa_fp, \l_@@_matrix_ab_fp,
+%     \l_@@_matrix_ba_fp, \l_@@_matrix_aa_fp,
+%     \l_@@_xshift_dim,
+%     \l_@@_yshift_dim
 %   }
-%   The active matrix itself.
+%   The active matrix and shifts.
 %    \begin{macrocode}
-\fp_new:N \l_@@_transformcm_aa_fp
-\fp_new:N \l_@@_transformcm_ab_fp
-\fp_new:N \l_@@_transformcm_ba_fp
-\fp_new:N \l_@@_transformcm_bb_fp
-\dim_new:N \l_@@_transformcm_xshift_dim
-\dim_new:N \l_@@_transformcm_yshift_dim
+\fp_new:N \l_@@_matrix_aa_fp
+\fp_new:N \l_@@_matrix_ab_fp
+\fp_new:N \l_@@_matrix_ba_fp
+\fp_new:N \l_@@_matrix_bb_fp
+\dim_new:N \l_@@_xshift_dim
+\dim_new:N \l_@@_yshift_dim
 %    \end{macrocode}
 % \end{variable}
 %
-% \begin{macro}{\draw_transform_reset:, \draw_transform_reset_retain_shift:}
+% \begin{macro}{\draw_transform_matrix_reset:, \draw_transform_shift_reset:}
 %   Fast resetting.
 %    \begin{macrocode}
-\cs_new_protected:Npn \draw_transform_reset:
+\cs_new_protected:Npn \draw_transform_matrix_reset:
   {
-    \fp_set:Nn \l_@@_transformcm_aa_fp { 1}
-    \fp_zero:N \l_@@_transformcm_ab_fp
-    \fp_zero:N \l_@@_transformcm_ba_fp
-    \fp_set:Nn \l_@@_transformcm_bb_fp { 1 }
-    \dim_zero:N \l_@@_transformcm_xshift_dim
-    \dim_zero:N \l_@@_transformcm_yshift_dim
+    \fp_set:Nn \l_@@_matrix_aa_fp { 1 }
+    \fp_zero:N \l_@@_matrix_ab_fp
+    \fp_zero:N \l_@@_matrix_ba_fp
+    \fp_set:Nn \l_@@_matrix_bb_fp { 1 }
   }
-\draw_transform_reset:
-\cs_new_protected:Npn \draw_transform_reset_retain_shift:
+\cs_new_protected:Npn \draw_transform_shift_reset:
   {
-    \fp_set:Nn \l_@@_transformcm_aa_fp { 1}
-    \fp_zero:N \l_@@_transformcm_ab_fp
-    \fp_zero:N \l_@@_transformcm_ba_fp
-    \fp_set:Nn \l_@@_transformcm_bb_fp { 1 }
+    \dim_zero:N \l_@@_xshift_dim
+    \dim_zero:N \l_@@_yshift_dim
   }
+\draw_transform_matrix_reset:
+\draw_transform_shift_reset:
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\draw_transform:nnnnn}
-% \begin{macro}{\@@_transform:nnnnnnn}
+% \begin{macro}{\draw_transform_matrix:nnnn}
+% \begin{macro}{\draw_transform_shift:n}
+% \begin{macro}{\@@_transform_shift:nn}
 %   Setting the transform matrix is straight-forward, with just a bit
 %   of expansion to sort out. With the mechanism active, the identity
 %   matrix is set.
 %    \begin{macrocode}
-\cs_new_protected:Npn \draw_transform:nnnnn #1#2#3#4#5
+\cs_new_protected:Npn \draw_transform_matrix:nnnn #1#2#3#4
   {
-    \@@_point_process:nn
-      { \@@_transform:nnnnnnn {#1} {#2} {#3} {#4} }
-      {#5}
-  }
-\cs_new_protected:Npn \@@_transform:nnnnnnn #1#2#3#4#5#6
-  {
-    \fp_set:Nn \l_@@_transformcm_aa_fp {#1}
-    \fp_set:Nn \l_@@_transformcm_ab_fp {#2}
-    \fp_set:Nn \l_@@_transformcm_ba_fp {#3}
-    \fp_set:Nn \l_@@_transformcm_bb_fp {#4}
-    \dim_set:Nn \l_@@_transformcm_xshift_dim {#5}
-    \dim_set:Nn \l_@@_transformcm_yshift_dim {#6}
+    \fp_set:Nn \l_@@_matrix_aa_fp {#1}
+    \fp_set:Nn \l_@@_matrix_ab_fp {#2}
+    \fp_set:Nn \l_@@_matrix_ba_fp {#3}
+    \fp_set:Nn \l_@@_matrix_bb_fp {#4}
     \bool_lazy_all:nTF
       {
-        { \fp_compare_p:nNn \l_@@_transformcm_aa_fp = \c_one_fp }
-        { \fp_compare_p:nNn \l_@@_transformcm_ab_fp = \c_zero_fp }
-        { \fp_compare_p:nNn \l_@@_transformcm_ba_fp = \c_zero_fp }
-        { \fp_compare_p:nNn \l_@@_transformcm_bb_fp = \c_one_fp }
+        { \fp_compare_p:nNn \l_@@_matrix_aa_fp = \c_one_fp }
+        { \fp_compare_p:nNn \l_@@_matrix_ab_fp = \c_zero_fp }
+        { \fp_compare_p:nNn \l_@@_matrix_ba_fp = \c_zero_fp }
+        { \fp_compare_p:nNn \l_@@_matrix_bb_fp = \c_one_fp }
       }
-      { \bool_set_false:N \l_@@_transformcm_active_bool }
-      { \bool_set_true:N \l_@@_transformcm_active_bool }
+      { \bool_set_false:N \l_@@_matrix_active_bool }
+      { \bool_set_true:N \l_@@_matrix_active_bool }
+  }
+\cs_new_protected:Npn \draw_transform_shift:n #1
+  {
+    \@@_point_process:nn
+      { \@@_transform_shift:nn } {#1}
+  }
+\cs_new_protected:Npn \@@_transform_shift:nn #1#2
+  {
+    \dim_set:Nn \l_@@_xshift_dim {#1}
+    \dim_set:Nn \l_@@_yshift_dim {#2}
   }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
+% \end{macro}
 %
-% \begin{macro}{\draw_transform_concat:nnnnn}
-% \begin{macro}{\@@_transform_concat:nnnnnn}
-% \begin{macro}{\@@_transform_concat_aux:nnnnnn}
-%   Much the same story for adding to an existing matrix. The part that is more
-%   complex is the calculations required: everything gets passed back to
-%   \cs{@@_transform_set:nnnnnn}, with pre-expansion just in case there are
-%   \emph{e.g}~random values. The final step is \texttt{x}-type expanded as
-%   otherwise later values affect earlier ones.
+% \begin{macro}{\draw_transform_matrix_concat:nnnn}
+% \begin{macro}{\@@_transform_concat:nnnn}
+% \begin{macro}{\draw_transform_shift_concat:n}
+% \begin{macro}{\@@_transform_shift_concat:nn}
+%   Much the same story for adding to an existing matrix, with a bit of
+%   pre-expansion so that the calculation uses \enquote{frozen} values.
 %    \begin{macrocode}
-\cs_new_protected:Npn \draw_transform_concat:nnnnn #1#2#3#4#5
-  {
-    \@@_point_process:nn
-      { \@@_transform_concat:nnnnnn {#1} {#2} {#3} {#4} }
-      {#5}
-  }
-\cs_new_protected:Npn \@@_transform_concat:nnnnnn #1#2#3#4#5#6
+\cs_new_protected:Npn \draw_transform_matrix_concat:nnnn #1#2#3#4
   {
     \use:x
       {
-        \@@_transform_concat_aux:nnnnnn
+        \@@_transform_concat:nnnn
           { \fp_eval:n {#1} }
           { \fp_eval:n {#2} }
           { \fp_eval:n {#3} }
           { \fp_eval:n {#4} }
-          {#5}
-          {#6}
       }
   }
-\cs_new_protected:Npn \@@_transform_concat_aux:nnnnnn #1#2#3#4#5#6
+\cs_new_protected:Npn \@@_transform_concat:nnnn #1#2#3#4
   {
     \use:x
       {
-        \@@_transform:nnnnnnn
-          { #1 * \l_@@_transformcm_aa_fp + #2 * \l_@@_transformcm_ba_fp }
-          { #1 * \l_@@_transformcm_ab_fp + #2 * \l_@@_transformcm_bb_fp }
-          { #3 * \l_@@_transformcm_aa_fp + #4 * \l_@@_transformcm_ba_fp }
-          { #3 * \l_@@_transformcm_ab_fp + #4 * \l_@@_transformcm_bb_fp }
-          {
-            \fp_to_dim:n
-              {
-                  \l_@@_transformcm_xshift_dim
-                + \l_@@_transformcm_aa_fp * #5
-                + \l_@@_transformcm_ba_fp * #6
-              }
-          }
-          {
-            \fp_to_dim:n
-              {
-                  \l_@@_transformcm_yshift_dim
-                + \l_@@_transformcm_ab_fp * #5
-                + \l_@@_transformcm_bb_fp * #6
-              }
-          }
+        \draw_transform_matrix:nnnn
+          { #1 * \l_@@_matrix_aa_fp + #2 * \l_@@_matrix_ba_fp }
+          { #1 * \l_@@_matrix_ab_fp + #2 * \l_@@_matrix_bb_fp }
+          { #3 * \l_@@_matrix_aa_fp + #4 * \l_@@_matrix_ba_fp }
+          { #3 * \l_@@_matrix_ab_fp + #4 * \l_@@_matrix_bb_fp }
         }
   }
+\cs_new_protected:Npn \draw_transform_shift_concat:n #1
+  {
+    \@@_point_process:nn
+      { \@@_transform_shift_concat:nn } {#1}
+  }
+\cs_new_protected:Npn \@@_transform_shift_concat:nn #1#2
+  {
+    \dim_set:Nn \l_@@_xshift_dim { \l_@@_xshift_dim + #1 }
+    \dim_set:Nn \l_@@_yshift_dim { \l_@@_yshift_dim + #2 }
+  }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{macro}
 %
-% \begin{macro}{\draw_transform_invert:}
+% \begin{macro}{\draw_transform_matrix_invert:}
 % \begin{macro}{\@@_transform_invert:n, \@@_transform_invert:f}
+% \begin{macro}{\draw_transform_shift_invert:}
 %   Standard mathematics: calculate the inverse matrix and use that, then
 %   undo the shifts.
 %    \begin{macrocode}
-\cs_new_protected:Npn \draw_transform_invert:
+\cs_new_protected:Npn \draw_transform_matrix_invert:
   {
-    \bool_if:NT \l_@@_transformcm_active_bool
+    \bool_if:NT \l_@@_matrix_active_bool
       {
         \@@_transform_invert:f
           {
@@ -229,44 +216,34 @@
               { 
                 1 /
                   (
-                      \l_@@_transformcm_aa_fp * \l_@@_transformcm_bb_fp
-                    - \l_@@_transformcm_ab_fp * \l_@@_transformcm_ba_fp
+                      \l_@@_matrix_aa_fp * \l_@@_matrix_bb_fp
+                    - \l_@@_matrix_ab_fp * \l_@@_matrix_ba_fp
                   )
               }
           }
       }
-    \dim_set:Nn \l_@@_transformcm_xshift_dim
-      {
-        \fp_to_dim:n
-          {
-            -\l_@@_transformcm_xshift_dim * \l_@@_transformcm_aa_fp
-            -\l_@@_transformcm_yshift_dim * \l_@@_transformcm_ba_fp
-          }
-      }
-    \dim_set:Nn \l_@@_transformcm_yshift_dim
-      {
-        \fp_to_dim:n
-          {
-            -\l_@@_transformcm_xshift_dim * \l_@@_transformcm_ab_fp
-            -\l_@@_transformcm_yshift_dim * \l_@@_transformcm_bb_fp
-          }
-      }
   }
 \cs_new_protected:Npn \@@_transform_invert:n #1
   {
-    \fp_set:Nn \l_@@_transformcm_aa_fp
-      { \l_@@_transformcm_bb_fp * #1 }
-    \fp_set:Nn \l_@@_transformcm_ab_fp
-      { -\l_@@_transformcm_ab_fp * #1 }
-    \fp_set:Nn \l_@@_transformcm_ba_fp
-      { -\l_@@_transformcm_ba_fp * #1 }
-    \fp_set:Nn \l_@@_transformcm_bb_fp
-      { \l_@@_transformcm_aa_fp * #1 }
+    \fp_set:Nn \l_@@_matrix_aa_fp
+      { \l_@@_matrix_bb_fp * #1 }
+    \fp_set:Nn \l_@@_matrix_ab_fp
+      { -\l_@@_matrix_ab_fp * #1 }
+    \fp_set:Nn \l_@@_matrix_ba_fp
+      { -\l_@@_matrix_ba_fp * #1 }
+    \fp_set:Nn \l_@@_matrix_bb_fp
+      { \l_@@_matrix_aa_fp * #1 }
   }
 \cs_generate_variant:Nn \@@_transform_invert:n { f }
+\cs_new_protected:Npn \draw_transform_shift_invert:
+  {
+    \dim_set:Nn \l_@@_xshift_dim { -\l_@@_xshift_dim }
+    \dim_set:Nn \l_@@_yshift_dim { -\l_@@_yshift_dim }
+  } 
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}{\draw_transform_triangle:nnn}
 %   Simple maths to move the canvas origin to |#1| and the two axes to
@@ -286,13 +263,12 @@
   {
     \use:x
       {
-        \@@_transform:nnnnnnn
+        \draw_transform_matrix:nnnn
           { #3 - #1 }
           { #4 - #2 }
           { #5 - #1 }
           { #6 - #2 }
-          {#1}
-          {#2}
+        \draw_transform_shift:n { #1 , #2 }
       }
   }
 %    \end{macrocode}
@@ -301,27 +277,25 @@
 % \begin{macro}
 %   {\draw_transform_scale:n, \draw_transform_xscale:n, \draw_transform_yscale:n}
 % \begin{macro}
-%   {\draw_transform_shift:n, \draw_transform_xshift:n, \draw_transform_yshift:n}
+%   {\draw_transform_xshift:n, \draw_transform_yshift:n}
 % \begin{macro}
 %   {\draw_transform_xslant:n, \draw_transform_yslant:n}
 %   Lots of shortcuts.
 %    \begin{macrocode}
 \cs_new_protected:Npn \draw_transform_scale:n #1
-  { \draw_transform_concat:nnnnn { #1 } { 0 } { 0 } { #1 } { 0 , 0 } }
+  { \draw_transform_matrix_concat:nnnn { #1 } { 0 } { 0 } { #1 } }
 \cs_new_protected:Npn \draw_transform_xscale:n #1
-  { \draw_transform_concat:nnnnn { #1 } { 0 } { 0 } { 1 } { 0 , 0 } }
+  { \draw_transform_matrix_concat:nnnn { #1 } { 0 } { 0 } { 1 } }
 \cs_new_protected:Npn \draw_transform_yscale:n #1
-  { \draw_transform_concat:nnnnn { 1 } { 0 } { 0 } { #1 } { 0 , 0 } }
-\cs_new_protected:Npn \draw_transform_shift:n #1
-  { \draw_transform_concat:nnnnn { 1 } { 0 } { 0 } { 1 } {#1} }
+  { \draw_transform_matrix_concat:nnnn { 1 } { 0 } { 0 } { #1 } }
 \cs_new_protected:Npn \draw_transform_xshift:n #1
-  { \draw_transform_concat:nnnnn { 1 } { 0 } { 0 } { 1 } { #1 , 0 } }
+  { \draw_transform_shift_concat:n { #1 , 0 } }
 \cs_new_protected:Npn \draw_transform_yshift:n #1
-  { \draw_transform_concat:nnnnn { 1 } { 0 } { 0 } { 1 } { 0 , #1 } }
+  { \draw_transform_shift_concat:n { 0 , #1 } }
 \cs_new_protected:Npn \draw_transform_xslant:n #1
-  { \draw_transform_concat:nnnnn { 1 } { 0 } { #1 } { 1 } { 0 , 0 } }
+  { \draw_transform_matrix_concat:nnnn { 1 } { 0 } { #1 } { 1 } }
 \cs_new_protected:Npn \draw_transform_yslant:n #1
-  { \draw_transform_concat:nnnnn { 1 } { #1 } { 0 } { 1 } { 0 , 0 } }
+  { \draw_transform_matrix_concat:nnnn { 1 } { #1 } { 0 } { 1 } }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -346,7 +320,7 @@
   }
 \cs_generate_variant:Nn \@@_transform_rotate:n { f }
 \cs_new_protected:Npn \@@_transform_rotate:nn #1#2
-  { \draw_transform_concat:nnnnn {#1} {#2} { -#2 } { #1 } { 0 , 0 } }
+  { \draw_transform_matrix_concat:nnnn {#1} {#2} { -#2 } { #1 } }
 \cs_generate_variant:Nn \@@_transform_rotate:nn { ff }
 %    \end{macrocode}
 % \end{macro}
diff --git a/l3experimental/l3draw/l3draw.dtx b/l3experimental/l3draw/l3draw.dtx
index 7411469..44a8a55 100644
--- a/l3experimental/l3draw/l3draw.dtx
+++ b/l3experimental/l3draw/l3draw.dtx
@@ -877,25 +877,24 @@
 % may be adjusted using \cs{driver_draw_transformcm:nnnnnn}: note that this
 % is transparent to the drawing code so is not tracked.
 %
-% \begin{function}{\draw_transform:nnnnn}
+% \begin{function}
+%   {\draw_transform_matrix:nnnn, \draw_transform_matrix_concat:nnnn}
 %   \begin{syntax}
-%     \cs{draw_transform:nnnnn}
-%       \Arg{a} \Arg{b} \Arg{c} \Arg{d} \Arg{vector}
+%     \cs{draw_transform_matrix:nnnnn}
+%       \Arg{a} \Arg{b} \Arg{c} \Arg{d}
 %   \end{syntax}
-%   Applies the transformation matrix specified, over-writing any existing
-%   matrix. The transformation is made up of a matrix \meta{a}, \meta{b},
-%   \meta{c} and \meta{d}, and a shift by the \meta{vector}.
+%   Applies the transformation matrix $[ \meta{a} \meta{b} \meta{c} \meta{d}]$.
+%   The basic version over-writes the current matrix, the |concat| version
+%   concatenates.
 %   This assignment is local.
 % \end{function}
 %
-% \begin{function}{\draw_transform_concat:nnnnn}
+% \begin{function}{\draw_transform_shift:n, \draw_transform_shift_concat:n}
 %   \begin{syntax}
-%     \cs{draw_transform_concat:nnnnn}
-%       \Arg{a} \Arg{b} \Arg{c} \Arg{d} \Arg{vector}
+%     \cs{draw_transform_shift:n} \Arg{vector}
 %   \end{syntax}
-%   Appends the given transformation to the currently-active one. The
-%   transformation is made up of a matrix \meta{a}, \meta{b}, \meta{c} and
-%   \meta{d}, and a shift by the \meta{vector}.
+%   Applies the transformation \meta{vector} to points. The basic version
+%   over-writes the current vector, the |concat| version concatenates.
 %   This assignment is local.
 % \end{function}
 %
@@ -914,7 +913,7 @@
 %   \begin{syntax}
 %     \cs{draw_transform_rotate:n} \Arg{angle}
 %   \end{syntax}
-%   Applies a roation by the \meta{angle}, measured anti-clockwise in degrees.
+%   Applies a rotation by the \meta{angle}, measured anti-clockwise in degrees.
 %   This rotation is \emph{additional} to any prevailing transformation.
 %   This assignment is local.
 % \end{function}
@@ -935,7 +934,6 @@
 %
 % \begin{function}
 %   {
-%     \draw_transform_shift:n,
 %     \draw_transform_xshift:n,
 %     \draw_transform_yshift:n
 %   }
@@ -943,9 +941,8 @@
 %     \cs{draw_transform_shift:n} \Arg{vector}
 %     \cs{draw_transform_xshift:n} \Arg{xshift}
 %   \end{syntax}
-%   Applies a shift of the \meta{vector} in $(x, y)$ or an \meta{xshift} or
-%   \meta{yshift}, as appropriate. This shift is \emph{added} to any prevailing
-%   transformation.
+%   Applies an \meta{xshift} or \meta{yshift}, as appropriate. This shift is
+%   \emph{added} to any prevailing one.
 %   This assignment is local.
 % \end{function}
 %
@@ -962,29 +959,23 @@
 %   This assignment is local.
 % \end{function}
 %
-% \begin{function}{\draw_transform_invert:}
-%   \begin{syntax}
-%     \cs{draw_transform_invert:}
-%   \end{syntax}
-%   Inverts the current transformation matrix and reverses the current
-%   shift vector.
-%   This assignment is local.
-% \end{function}
-%
-% \begin{function}{\draw_transform_reset:}
+% \begin{function}
+%   {\draw_transform_matrix_invert:, \draw_transform_shift_invert:}
 %   \begin{syntax}
-%     \cs{draw_transform_reset:}
+%     \cs{draw_transform_matrix_invert:}
 %   \end{syntax}
-%   Resets all transformation operations.
+%   Inverts the current transformation matrix or shift vector, as
+%   appropriate.
 %   This assignment is local.
 % \end{function}
 %
-% \begin{function}{\draw_transform_reset_retain_shift:}
+% \begin{function}
+%   {\draw_transform_matrix_reset, \draw_transform_shift_reset:}
 %   \begin{syntax}
-%     \cs{draw_transform_reset_retain_shift:}
+%     \cs{draw_transform_matrix_reset:}
 %   \end{syntax}
-%   Resets rotations, scalings and slants, but retains any shifts which
-%   are active.
+%   Resets the current transformation matrix or shift vector, as
+%   appropriate.
 %   This assignment is local.
 % \end{function}
 %
diff --git a/l3experimental/l3draw/testfiles/m3draw000.tlg b/l3experimental/l3draw/testfiles/m3draw000.tlg
index c3b709a..4482f38 100644
--- a/l3experimental/l3draw/testfiles/m3draw000.tlg
+++ b/l3experimental/l3draw/testfiles/m3draw000.tlg
@@ -46,6 +46,6 @@ Author: Joseph Wright
 \g__draw_linewidth_dim=\dimen...
 \g__draw_inner_linewidth_dim=\dimen...
 \l_draw_default_linewidth_dim=\dimen...
-\l__draw_transformcm_xshift_dim=\dimen...
-\l__draw_transformcm_yshift_dim=\dimen...
+\l__draw_xshift_dim=\dimen...
+\l__draw_yshift_dim=\dimen...
 )
diff --git a/l3experimental/l3draw/testfiles/m3draw002.lvt b/l3experimental/l3draw/testfiles/m3draw002.lvt
index f3bc422..1013a81 100644
--- a/l3experimental/l3draw/testfiles/m3draw002.lvt
+++ b/l3experimental/l3draw/testfiles/m3draw002.lvt
@@ -17,21 +17,19 @@
 
 \START
 
-\TEST { \draw_transform:nnnnn }
+\TEST { \draw_transform_matrix:nnnn }
   {
     \exp_args:Nx \tl_show:n { \draw_point_transform:n { 1 , 1 } }
-    \draw_transform:nnnnn { 1 } { 1 } { 1 } { 1 } { 0pt , 0pt }
+    \draw_transform_matrix:nnnn { 1 } { 1 } { 1 } { 1 }
     \exp_args:Nx \tl_show:n { \draw_point_transform:n { 1 ,1 } }
-    \draw_transform:nnnnn { 1 } { 0 } { 0 } { 1 } { 10pt , -10pt }
-    \exp_args:Nx \tl_show:n { \draw_point_transform:n { 1 , 1 } }
   }
 
-\TEST { \draw_transform_concat:nnnnn }
+\TEST { \draw_transform_matrix_concat:nnnnn }
   {
     \exp_args:Nx \tl_show:n { \draw_point_transform:n { 1 , 1 } }
-    \draw_transform_concat:nnnnn { 1 } { 1 } { 1 } { 1 } { 0pt , 0pt }
+    \draw_transform_matrix_concat:nnnn { 1 } { 1 } { 1 } { 1 }
     \exp_args:Nx \tl_show:n { \draw_point_transform:n { ( 1 , 1 ) } }
-    \draw_transform_concat:nnnnn { 1 } { 0 } { 0 } { 1 } { 10pt , -10pt }
+    \draw_transform_matrix_concat:nnnn { 2 } { 0 } { 0 } { 1 }
     \exp_args:Nx \tl_show:n { \draw_point_transform:n { 1 , 1 } }
   }
 
@@ -81,26 +79,26 @@
     \exp_args:Nx \tl_show:n { \draw_point_transform:n { ( 1 , 1 ) } }
   }
 
-\TEST { \draw_transform_invert: }
+\TEST { \draw_transform_matrix_invert: }
   {
-    \draw_transform:nnnnn { 1 } { 0 } { 1 } { 1 } { 10pt , 0pt }
+    \draw_transform_matrix:nnnn { 1 } { 0 } { 1 } { 1 }
     \tl_set:Nx \l_tmpa_tl { \draw_point_transform:n { 1 , 1 } }
     \tl_show:N \l_tmpa_tl
-    \draw_transform_invert:
+    \draw_transform_matrix_invert:
     \exp_args:Nx \tl_show:n { \draw_point_transform:n { \l_tmpa_tl } }
   }
 
-\TEST { \draw_transform_reset: }
+\TEST { \draw_transform_matrix_reset: }
   {
-    \draw_transform:nnnnn { 1 } { 0 } { 1 } { 1 } { 10pt , 0pt }
-    \draw_transform_reset:
+    \draw_transform_matrix:nnnn { 1 } { 0 } { 1 } { 1 }
+    \draw_transform_matrix_reset:
     \exp_args:Nx \tl_show:n { \draw_point_transform:n { 1 , 1 } }
   }
 
-\TEST { \draw_transform_reset_retain_shift: }
+\TEST { \draw_transform_shift_reset: }
   {
-    \draw_transform:nnnnn { 1 } { 0 } { 1 } { 1 } { 10pt , 0pt }
-    \draw_transform_reset_retain_shift:
+    \draw_transform_shift:n { 10pt , 0pt }
+    \draw_transform_shift_reset:
     \exp_args:Nx \tl_show:n { \draw_point_transform:n { 1 , 1 } }
   }
 
diff --git a/l3experimental/l3draw/testfiles/m3draw002.tlg b/l3experimental/l3draw/testfiles/m3draw002.tlg
index 5d2bb63..aaa5eb2 100644
--- a/l3experimental/l3draw/testfiles/m3draw002.tlg
+++ b/l3experimental/l3draw/testfiles/m3draw002.tlg
@@ -1,7 +1,7 @@
 This is a generated file for the LaTeX (2e + expl3) validation system.
 Don't change this file in any respect.
 ============================================================
-TEST 1: \draw_transform:nnnnn 
+TEST 1: \draw_transform_matrix:nnnn 
 ============================================================
 > 1pt,1pt.
 <recently read> }
@@ -9,12 +9,9 @@ l. ...  }
 > 2pt,2pt.
 <recently read> }
 l. ...  }
-> 11pt,-9pt.
-<recently read> }
-l. ...  }
 ============================================================
 ============================================================
-TEST 2: \draw_transform_concat:nnnnn 
+TEST 2: \draw_transform_matrix_concat:nnnnn 
 ============================================================
 > 1pt,1pt.
 <recently read> }
@@ -22,7 +19,7 @@ l. ...  }
 > 2pt,2pt.
 <recently read> }
 l. ...  }
-> 2pt,2pt.
+> 3pt,3pt.
 <recently read> }
 l. ...  }
 ============================================================
@@ -92,9 +89,9 @@ l. ...  }
 l. ...  }
 ============================================================
 ============================================================
-TEST 8: \draw_transform_invert: 
+TEST 8: \draw_transform_matrix_invert: 
 ============================================================
-> \l_tmpa_tl=12pt,1pt.
+> \l_tmpa_tl=2pt,1pt.
 <recently read> }
 l. ...  }
 > 1pt,1pt.
@@ -102,16 +99,16 @@ l. ...  }
 l. ...  }
 ============================================================
 ============================================================
-TEST 9: \draw_transform_reset: 
+TEST 9: \draw_transform_matrix_reset: 
 ============================================================
 > 1pt,1pt.
 <recently read> }
 l. ...  }
 ============================================================
 ============================================================
-TEST 10: \draw_transform_reset_retain_shift: 
+TEST 10: \draw_transform_shift_reset: 
 ============================================================
-> 11pt,1pt.
+> 1pt,1pt.
 <recently read> }
 l. ...  }
 ============================================================
diff --git a/l3experimental/l3draw/testfiles/m3draw003.lvt b/l3experimental/l3draw/testfiles/m3draw003.lvt
index 5df6dd6..c9f48b3 100644
--- a/l3experimental/l3draw/testfiles/m3draw003.lvt
+++ b/l3experimental/l3draw/testfiles/m3draw003.lvt
@@ -217,7 +217,8 @@
     \test:n
       {
         \draw_path_canvas_moveto:n { 10pt , 10pt }
-        \draw_transform:nnnnn { 2 } { 1 } { 0 } { 1 } { 10 , 10 }
+        \draw_transform_matrix:nnnn { 2 } { 1 } { 0 } { 1 }
+        \draw_transform_shift:n { 10 , 10 }
         \draw_path_canvas_moveto:n { 10pt , 10pt }
       }
   }
@@ -227,7 +228,8 @@
     \test:n
       {
         \draw_path_canvas_lineto:n { 10pt , 10pt }
-        \draw_transform:nnnnn { 2 } { 1 } { 0 } { 1 } { 10 , 10 }
+        \draw_transform_matrix:nnnn { 2 } { 1 } { 0 } { 1 }
+        \draw_transform_shift:n { 10 , 10 }
         \draw_path_canvas_lineto:n { 10pt , 10pt }
       }
   }
@@ -240,7 +242,8 @@
           { \draw_point_vec:nn { 0 } { 1 } }
           { \draw_point_vec:nn { 1 } { 1 } }
           { \draw_point_vec:nn { 1 } { 2 } }
-        \draw_transform:nnnnn { 2 } { 1 } { 0 } { 1 } { 10 , 10 }
+        \draw_transform_matrix:nnnn { 2 } { 1 } { 0 } { 1 }
+        \draw_transform_shift:n { 10 , 10 }
         \draw_path_canvas_curveto:nnn
           { \draw_point_vec:nn { 0 } { 1 } }
           { \draw_point_vec:nn { 1 } { 1 } }





More information about the latex3-commits mailing list