% tkz-obj-grids.tex    
% Copyright 2020 by Alain Matthes
% This file may be distributed and/or modified
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
%  utf8 encoding
\def\fileversion{3.02c}
\def\filedate{2020/01/24}
\typeout{2020/01/24 3.02c  tkz-obj-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