%tkz-obj-marks.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.
\def\fileversion{3.02c}
\def\filedate{2020/01/24} 
\typeout{2020/01/24 3.02c  tkz-obj-marks.tex}
\makeatletter
%<-------------------------------------------------------------------------–>
%                               Setup   Marks
%<-------------------------------------------------------------------------–>
%<--------------------------------------------------------------------------–>
%                              DefSetOfPoints
%<--------------------------------------------------------------------------–>
\pgfkeys{/tkzSoPt/.cd,
  prefix/.store in            =    \tkz@pref,
  prefix                  =  tkzPt,
  /tkzSoPt/.unknown/.code    = {\let\searchname=\pgfkeyscurrentname
                              \pgfkeysalso{\searchname/.try=#1,
                               /tikz/\searchname/.retry=#1}}  
}   
\def\tkzDefSetOfPoints{\pgfutil@ifnextchar[{\tkz@SetOfPoints}{%
                                         \tkz@SetOfPoints[]}}
\def\tkz@SetOfPoints[#1]#2{%
\begingroup 
\pgfqkeys{/tkzSoPt}{#1} 
    \tkz@cntmk1 %
    \edef\tkz@@cnt{\the\tkz@cntmk}
    \foreach \x/\y in {#2}{% 
         \tkz@cntmk=\tkz@@cnt %
         \tkzDefPoint(\x,\y){\tkz@pref\the\tkz@cntmk}
         \advance\tkz@cntmk by1 % 
         \xdef\tkz@@cnt{\the\tkz@cntmk}
    }%
\endgroup
}%
%<-------------------------------------------------------------------------–> 
\pgfkeys{/tkzjoinmk/.cd,
          prefix/.store in              = \tkz@pref,
          prefix=tkzPt,
           /tkzjoinmk/.search also={/tikz} 
}  
\def\tkzJoinSetOfPoints{\pgfutil@ifnextchar[{\tkz@JoinSetOfPoints}{%
                                             \tkz@JoinSetOfPoints[]}} 
\def\tkz@JoinSetOfPoints[#1]{%
\begingroup
   \pgfqkeys{/tkzjoinmk}{#1}  
   \pgfmathsetcount{\tkz@cntmk}{\tkz@@cnt-2}
   \edef\tkz@@cnt{\the\tkz@cntmk} 
   \foreach \nb in {1,...,\tkz@@cnt}{%
   \tkz@cntmk=\nb
   \advance\tkz@cntmk by1 
   \draw[line cap=round,/tkzjoinmk/.cd,#1]
         (\tkz@pref\nb) -- (\tkz@pref\the\tkz@cntmk);}
\endgroup}   
%<-------------------------------------------------------------------------–>
%              ShowSetOfMark
%<-------------------------------------------------------------------------–>
\pgfkeys{/tkzdrawmk/.cd,
         prefix/.store in            = \tkz@pref,
         prefix=tkzPt,
          /tkzdrawmk/.search also      =  {/tikz}
} 
\def\tkzDrawSetOfPoints{\pgfutil@ifnextchar[{\tkz@DrawSetOfPoints}{
                                             \tkz@DrawSetOfPoints[]}} 
\def\tkz@DrawSetOfPoints[#1]{%
\begingroup
\pgfqkeys{/tkzdrawmk}{#1}  
\pgfmathsetcount{\tkz@cntmk}{\tkz@@cnt-1}  
\foreach \nb in {1,...,\tkz@cntmk}{\tkzDrawMark[#1](\tkz@pref\nb)}
\endgroup} 
%<-------------------------------------------------------------------------–>
%               tkzmark
%<-------------------------------------------------------------------------–>
\def\tkzDrawMark{\pgfutil@ifnextchar[{\tkz@DrawMark}{\tkz@DrawMark[]}}   
\def\tkz@DrawMark[#1](#2){%
    \draw plot[mark style,#1] coordinates {(#2)};  
}
%<---------------------------------------------------------–>
%<---------------------------------------------------------–>
\def\tkzDrawMarks{\pgfutil@ifnextchar[{\tkz@DrawMarks}{\tkz@DrawMarks[]}}  
\def\tkz@DrawMarks[#1](#2){%
   \foreach \point in {#2}{%
      \draw plot[mark style,#1] coordinates {(\point)};% StyleMark,
}} 
%<------------------------------------------------------------–>
%                Init pour mark
%<------------------------------------------------------------–>
\pgfkeys{/setupmk/.cd,
   size/.store in          =  \tkz@sum@mk@size,
   color/.store in         =  \tkz@sum@mk@color,
   fill/.store in          =  \tkz@sum@mk@fill, 
   mark/.store in          =  \tkz@sum@mk@mark,
   mark                    =  \tkz@mk@mark,
   color                   =  \tkz@mk@color,
   fill                    =  \tkz@mk@color!50,
   size                    =  \tkz@mk@size
} 
\def\tkzSetUpMark{\pgfutil@ifnextchar[{\tkzActivOff\tkz@SetUpMark}{%
                                         \tkzActivOff\tkz@SetUpMark[]}} 

\def\tkz@SetUpMark[#1]{% 
\pgfqkeys{/setupmk}{#1}
\tikzset{mark style/.style={%
  inner sep    = 0pt,
  mark         = \tkz@sum@mk@mark,
  mark size    = \tkz@sum@mk@size,
  mark options = {color = \tkz@sum@mk@color,
  fill  = \tkz@sum@mk@fill}}}
}%  
\makeatother
%<---------------------------------------   ------------------–>
\endinput
  