% tkz-obj-eu-grids.tex
% Copyright 2011-2026  Alain Matthes
% SPDX-License-Identifier: LPPL-1.3c
% Maintainer: Alain Matthes

\typeout{2026/01/25 5.13c tkz-obj-eu-grids.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
%              Setup   Grid
%<--------------------------------------------------------------------------–>
\pgfkeys{/tkzsugrid/.cd,
    line width/.store in      = \tkz@sug@lw,
    color/.store in           = \tkz@sug@color,
    line width                = \tkz@grid@lw,
    color                     = \tkz@grid@color
        }

\def\tkzSetUpGrid{\pgfutil@ifnextchar[{\tkz@SetUpGrid}{\tkz@SetUpGrid[]}}
\def\tkz@SetUpGrid[#1]{%
\begingroup
\pgfqkeys{/tkzsugrid}{#1}
\global\let\tkz@grid@lw\tkz@sug@lw
\global\let\tkz@grid@color\tkz@sug@color
\endgroup
}
%<--------------------------------------------------------------------------–>
%         tkzGrid
%<--------------------------------------------------------------------------–>
\pgfkeys{/tkzGrid/.cd,
  color/.code           = {\def\tkz@gd@color{#1}%
                            \edef\tkz@gd@subcolor{%
                            \tkz@gd@color!\tkzCoeffSubColor}},
  subxstep/.store in    = {\tkz@gd@subxstep},
  subystep/.store in    = {\tkz@gd@subystep},
  ratio/.store in       = {\tkz@gd@ratio},
  line width/.code      = {\edef\tkz@gd@lw{#1}
                            \edef\tkz@gd@sublw{\tkz@gd@ratio\tkz@gd@lw}},
  sub/.is if            = tkz@gd@sub,
  sub/.default          = true ,
  sub                   = false,
  color                 = \tkz@grid@color,
  ratio                 = 0.75,
  subxstep              = \tkz@grid@xstep,
  subystep              = \tkz@grid@ystep,
  line width            = \tkz@grid@lw,
  /tkzGrid/.search also= {/tikz},
}
%<--------------------------------------------------------------------------–>
\def\tkzGrid{\pgfutil@ifnextchar[{\tkz@Grid}{\tkz@Grid[]}}
\def\tkz@Grid[#1]{\@ifnextchar({\tkz@@Grid[#1]}%
                               {\tkz@@Grid[#1](\tkz@tmp@xa,\tkz@tmp@ya)(\tkz@tmp@xb,\tkz@tmp@yb)}}
\def\tkz@@Grid[#1](#2,#3)(#4,#5){%
  \pgfqkeys{/tkzGrid}{#1}
    \begingroup
   \edef\tkz@gxa{\fpeval{(#2-\tkz@init@xorigine)/\tkz@init@xstep}}
   \edef\tkz@gxb{\fpeval{(#4-\tkz@init@xorigine)/\tkz@init@xstep}}
   \edef\tkz@gya{\fpeval{(#3-\tkz@init@yorigine)/\tkz@init@ystep}}
   \edef\tkz@gyb{\fpeval{(#5-\tkz@init@yorigine)/\tkz@init@ystep}}
    \iftkz@gd@sub%
      \edef\@subxstep{\fpeval{\tkz@gd@subxstep/\tkz@init@xstep}}%
      \edef\@subystep{\fpeval{\tkz@gd@subystep/\tkz@init@ystep}}%
      \draw [xstep      = \@subxstep cm,%
             ystep      = \@subystep cm,%
             color      = \tkz@gd@subcolor,%
             line width = \tkzRatioLineGrid]%
             (\tkz@gxa,\tkz@gya) grid (\tkz@gxb,\tkz@gyb);%
    \fi
    \draw [color      = \tkz@gd@color,%
           line width = \tkz@gd@lw]%
           (\tkz@gxa,\tkz@gya) grid (\tkz@gxb,\tkz@gyb);%
    \endgroup
}%
\makeatother
\endinput