% Copyright 2011 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{1.16 c}
\def\filedate{2011/06/01}


%<-------------------------------------------------------------------------–>
%                               Setup   Marks
%<-------------------------------------------------------------------------–>
%<--------------------------------------------------------------------------–>
%                              DefSetOfPoints
%<--------------------------------------------------------------------------–>
\newif\iftkz@sop@show
\newcount\tkz@cntmk
\pgfkeys{
  /tkzSoPt/.cd,
  prefix/.code              = {\global\edef\tkz@pref{#1}},
  /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 
\pgfkeys{%
/tkzSoPt/.cd,
prefix=tkzPt}
\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 % 
         \global\edef\tkz@@cnt{\the\tkz@cntmk}
    }%
\endgroup}%
%<-------------------------------------------------------------------------–> 
\pgfkeys{
  /tkzjoinmk/.cd,
  prefix/.code              = {\global\edef\tkz@pref{#1}},
  /tkzjoinmk/.unknown/.code   = {\let\searchname=\pgfkeyscurrentname
                              \pgfkeysalso{\searchname/.try=#1,
                               /tikz/\searchname/.retry=#1}}  
}  
\def\tkzJoinSetOfPoints{\pgfutil@ifnextchar[{\tkz@JoinSetOfPoints}{%
                                             \tkz@JoinSetOfPoints[]}} 
\def\tkz@JoinSetOfPoints[#1]{%
\begingroup
\pgfkeys{%
/tkzjoinmk/.cd,
prefix=tkzPt}
\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/.code                = {\global\edef\tkz@pref{#1}},
/tkzdrawmk/.unknown/.code   = {\let\searchname=\pgfkeyscurrentname
                              \pgfkeysalso{\searchname/.try=#1,
                               /tikz/\searchname/.retry=#1}}  
} 
\def\tkzDrawSetOfPoints{\pgfutil@ifnextchar[{\tkz@DrawSetOfPoints}{
                                             \tkz@DrawSetOfPoints[]}} 
\def\tkz@DrawSetOfPoints[#1]{%
\begingroup
\pgfkeys{/tkzdrawmk/.cd, prefix=tkzPt}
\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/.code    =  {\global\edef\tkz@sum@mk@size{#1}},
color/.code   =  {\global\edef\tkz@sum@mk@color{#1}},
fill/.code    =  {\global\edef\tkz@sum@mk@fill{#1}}, 
mark/.code    =  {\global\edef\tkz@sum@mk@mark{#1}}
} 

\def\tkzSetUpMark{\pgfutil@ifnextchar[{\tkzActivOff\tkz@SetUpMark}{%
                                         \tkzActivOff\tkz@SetUpMark[]}} 

\def\tkz@SetUpMark[#1]{% 
 \pgfkeys{%
/setupmk/.cd,
mark    =  \tkz@mk@mark,
color   =  \tkz@mk@color,
fill    =  \tkz@mk@color!50,
size    =  \tkz@mk@size}
\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}}}
}%  

%<--------------------------------------------------------------------------–>
\endinput
  