\section{Structure} % (fold)
\label{sec:structure}
\tkzNamePack{tkz-elements} loads the \tkzNamePack{luacode} package to create the \tkzNameEnv{tkzelements} environment, which is based on the \tkzNameEnv{luacode} environment. 

Within the  \tkzNameEnv{tkzelements} environment, the scale is initialized to 1, and then all values in various tables are cleared.

The package defines  two macros |\tkzGetNodes| and |\tkzUseLua|.

Additionally, the package loads  the file |tkz_elements_main.lua|. This file initializes all the tables that will be used by the modules in which the classes are defined.
 
\begin{tikzpicture}[scale=.75]
\begin{scope}
\path[mindmap, concept color=MidnightBlue!60, text=white,text width=38mm,
 level 1 concept/.append style={level distance=120mm,
  sibling angle=72},
 set angles for level/.style={level 2/.append style={
 sibling angle=360/\the\tikznumberofchildren}},
 level/.append style={set angles for level=2},
 level 3 concept/.append style={level distance=20mm,
  sibling angle=20},
 L1/.style={level distance=45mm},
 L2/.style={level distance=65mm,minimum size=2cm}]

node[concept,circular drop shadow] {|tkz-elements.sty|} [clockwise from=10]
   child[concept color=MidnightBlue!40,minimum size=16mm] {
     node[concept,circular drop shadow] {|luacode|}
}
child[concept color= MidnightBlue!80,minimum size=4cm,text width=38mm,
clockwise from=27] { 
  node[concept,circular drop shadow] {|tkz\_elements\_main|} 
  [clockwise from=0]
  child[L2] { node[concept,circular drop shadow] {|Regular Polygon|} }
  child[L2] { node[concept,circular drop shadow] {|Quadri\-lateral|} }
  child[L2] { node[concept,circular drop shadow] {|Para\-llelogram|} }
  child[L2] { node[concept,circular drop shadow] {|Rectangle|} }
  child[L2] { node[concept,circular drop shadow] {|Matrix|} }
  child[L2] { node[concept,circular drop shadow] {|Vector|} }
  child[L2] { node[concept,circular drop shadow] {|Point|} }
  child[L2] { node[concept,circular drop shadow] {|Line|} }
  child[L2] { node[concept,circular drop shadow] {|Circle|} }
  child[L2] { node[concept,circular drop shadow] {|Triangle|} }
  child[L2] { node[concept,circular drop shadow] {|Ellipse|} }
  child[L2] { node[concept,circular drop shadow] {|Square|} }
};
\end{scope}
\end{tikzpicture}

The current classes are (some are still inactive):
\begin{itemize}
   \item active : \Iclass{point} (z) ;  \Iclass{line} (L) ; \Iclass{circle} (C) ; \Iclass{triangle} (T) ; \Iclass{ellipse} (E) ; \Iclass{quadrilateral} (Q) ; \Iclass{square} (S) ; \Iclass{rectangle} (R) ; \Iclass{parallelogram} (P) ; \Iclass{regular\_polygon} (RP); \Iclass{vector} (V).
   
   \item  inactive : matrix (M) ; vector (V).

\end{itemize}

If |name| is name of a class, you can find its definition in the file |tkz_elements_name.lua|.

     
% section structure (end)


