% encoding : utf8 
% tkz-elements.sty v2.20c
% Copyright 2024  Alain Matthes
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.

\ProvidesPackage{tkz-elements}[2024/03/25 v2.20c Graphic Object Library]
\RequirePackage{luacode}
\directlua{require "tkz_elements_main"}

\newenvironment{tkzelements}
  {   \directlua{scale=1}
      \directlua{tkz_epsilon=1e-8}
      \directlua{tkz_dc=2}
      \directlua{indirect = true}
      \directlua{z={}
                 C={}
                 E={}
                 L={}
                 M={}
                 P={}
                 Q={}
                 R={}
                 RP={}
                 S={}
                 T={}
                 V={}}
      \luacode}
  {\endluacode}
 
\def\tkzGetNodes{\directlua{%
   for K,V in pairs(z) do
      local n,sd,ft
      n = string.len(K)
      if n >1 then
      _,_,ft, sd = string.find( K , "(.+)(.)" )  
     if sd == "p" then   K=ft.."'" end 
     _,_,xft, xsd = string.find( ft , "(.+)(.)" ) 
     if xsd == "p" then  K=xft.."'".."'" end 
       end    
  tex.print("\\coordinate ("..K..") at ("..V.re..","..V.im..") ;\\\\")
end}
}

\def\tkzUseLua#1{\directlua{tex.print(tostring(#1))}} 
\makeatletter
\def\tkzDrawLuaEllipse{\pgfutil@ifnextchar[{\tkz@DrawLuaEllipse}{\tkz@DrawLuaEllipse[]}}
\def\tkz@DrawLuaEllipse[#1](#2,#3,#4){% 
\begingroup 
\draw[#1](#2) ellipse [x radius=\tkzUseLua{length(z.#3,z.#2)}, y radius = \tkzUseLua{length(z.#4,z.#2)},rotate=\tkzUseLua{math.deg(slope_ (z.#3,z.#2))}]; 
\endgroup
}
\def\tkzDN{\pgfutil@ifnextchar[{\tkz@DN}{\tkz@DN[2]}}%
\def\tkz@DN[#1]#2{%
\begingroup
\pgfkeys{/pgf/number format/.cd,std,precision=#1}%
\pgfmathprintnumber{#2}
\endgroup
}

\makeatother
\endinput
