+\commande|\meshAddPointBW[«options»]{«list of points» or «file name»}{«point» or «number of line»}|\medskip
+
+This command allows to plot the steps within the addition of a
+point in a Delaunay triangulation, by the Bowyer and Watson
+algorithm.
+
+This macro produces the Delaunay triangulation (using the Bowyer and
+Watson algorithm) of the given \meta{list of points} and shows a step
+of the algorithm when the \meta{point} is added. The list of
+points must be given in the following way:
+\begin{center}
+ \verb+(x1,y1);(x2,y2);(x3,y3);...;(xn,yn)+
+\end{center}
+and the point is of the form \verb+(x,y)+. The \meta{file name}
+and \meta{number of line} will be explained in the option
+description.
+
+One can use the macro as fallows:
+\begin{Exemple}
+ \meshAddPointBW[step=badtriangles]{(1.5,1);(4,0);(4.5,2.5);(1.81,2.14);(2.5,0.5);(2.8,1.5)}{(2.2,1.8)}
+ \meshAddPointBW[step=cavity]{(1.5,1);(4,0);(4.5,2.5);(1.81,2.14);(2.5,0.5);(2.8,1.5)}{(2.2,1.8)}
+ \meshAddPointBW[step=newtriangles]{(1.5,1);(4,0);(4.5,2.5);(1.81,2.14);(2.5,0.5);(2.8,1.5)}{(2.2,1.8)}
+\end{Exemple}
+The default value for \Verb+step+ is
+\Verb+badtriangles+. Consequently, the first
+line is equivalent to
+\begin{latexcode}
+\meshAddPointBW{(1.5,1);(4,0);(4.5,2.5);(1.81,2.14);(2.5,0.5);(2.8,1.5)}{(2.2,1.8)}
+\end{latexcode}
+
+\subsubsection{The Options}
+
+There are several options (some of them are the same as for
+\Verb+\buildMeshBW+) to customize the drawing.
+\begin{optionsenum}
+\item[mode = int (default) \textme{or} ext:] this option allows to
+ use either the previously described set of point in the first
+ argument, or
+ a file containing, line by line (2 columns), the points. Such a
+ file looks like :
+\begin{verbatim}
+x1 y1
+x2 y2
+x3 y3
+...
+xn yn
+\end{verbatim}
+For the second argument of the macro, if we are in the
+\Verb+mode = ext+, the argument must be the \emph{line number} of the file
+corresponding to the point we want to add. The algorithm will stop the
+line before to build the initial triangulation for which it will add
+the point corresponding to the line. The subsequent lines in the file are
+ignored.
+\item[bbox = none (default) \textme{or} show:] this option allows to draw the
+ added points to form a \emph{bounding box} and the corresponding
+ triangulation. By default, these triangles are removed at the end of
+ the algorithm.
+\item[color = \meta{value} (default: black):] The color of the
+ drawing.
+\item[colorBbox = \meta{value} (default: black):] The color of the
+ drawing for the elements (points and triangles) belonging to the
+ bounding box.
+\item[colorNew = \meta{value} (default: red):] The color of the
+ drawing of the ``new'' elements which are the point to add, the
+ polygon of the cavity, and the new triangles.
+\item[colorBack = \meta{value} (default: black!20):] The color for the
+ filling of the region concerned by the addition of the new point.
+\item[colorCircle = \meta{value} (default: green):] The color for
+ the circumcircle of the triangles containing the point to add.
+\item[meshpoint = \meta{value} (default: P):] The letter(s) used to
+ label the vertices of the triangulation. It is included in the math
+ mode delimiters \Verb+$...$+. The bounding box points are labeled
+ with numbers 1 to 4 and with a star exponent.
+\item[step = badtriangles (default) \textme{or} cavity \textme{or}
+ newtriangles:] To choose the step we want to draw, corresponding to
+ the steps of the Bowyer and Watson algorithm.
+\item[newpoint = \meta{value} (default: P):] The letter(s) used to
+ label the new point of the triangulation. It is include in the math
+ mode delimiters \Verb+$...$+.
+\item[tikz (boolean, default:false):] By default, this boolean is set
+ to \Verb+false+, and MetaPost (with \Verb+luamplib+) is used to draw
+ the picture. With this option, \Verb+tikz+ is the \textit{drawing
+ engine}.
+\item[scale = \meta{value} (default: 1cm):] The scale option defines
+ the scale at which the picture is draw (the same for the two
+ axis). It must contain the unit of length (cm,
+ pt, etc.).
+\end{optionsenum}
+
+Here is an example of customizing the drawing. First, recall that
+the external file \Verb+mesh.txt+ is:
+\begin{verbatim}
+0.3 0.3
+1.5 1
+4 0
+4.5 2.5
+1.81 2.14
+2.5 0.5
+2.8 1.5
+\end{verbatim}
+We draw the addition of the 6th point. The 7th line will be ignored.
+\begin{Exemple}
+ \meshAddPointBW[
+ tikz,
+ mode = ext,
+ color = blue!70,
+ meshpoint = \alpha,
+ newpoint = y,
+ colorBack=red!10,
+ colorNew = green!50!red,
+ colorCircle = blue,
+ colorBbox = black!20,
+ bbox = show,
+ scale=1.4cm,
+ step=badtriangles]
+ {mesh.txt}{6}
+\end{Exemple}
+
+\section{The \emph{inc} Macros}\label{sec:inc}
+
+The three macros presented in the above sections have complementary
+macros, with the suffix \Verb+inc+ that allow the user to add code
+(MetaPost or \Verb+tikz+, depending of the drawing engine) before and
+after the code generated by \luamesh.
+
+The three macros are:\medskip
+
+
+\commande|\buildMeshBWinc[«options»]{«list of points» or «file name»}{«code before»}{«code after»}|\medskip
+
+\commande|\drawPointsMeshinc[«options»]{«list of points» or «file name»}{«code before»}{«code after»}|\medskip
+
+\commande|\meshAddPointBWinc[«options»]{«list of points» or «file name»}%|
+
+\commande| {«point» or «number of line»}{«code before»}{«code after»}|\medskip
+
+\subsection{With MetaPost}
+
+We consider the case where the drawing engine is MetaPost (through the
+\Verb+luamplib+ package).
+
+We describe the feature taking one macro in example but the mechanism
+and the possibilities are exactly the same for all the macros.
+
+When we use the MetaPost drawing engine, the macros previously
+described produced a code of the form
+\begin{latexcode}
+\begin{luamplib}
+ u:=<scale>;
+ beginfig(0);
+ <code for the drawing>
+ endfig;
+\end{luamplib}
+\end{latexcode}
+
+Then, the arguments \meta{code before} and \meta{code after} are
+inserted as follows:
+\begin{latexcode}
+\begin{luamplib}
+ u:=<scale>;
+ <<code before>>
+ <code for the drawing>
+ <<code after>>
+\end{luamplib}
+\end{latexcode}
+\begin{warning}
+With the \emph{inc} macros, the user has to add the \Verb+beginfig();+
+and \Verb+endfig;+ commands to produce a picture. Indeed, this allows
+to use the \Verb+\everymplib+ command from the \Verb+\luamplib+ package.
+\end{warning}
+
+\subsubsection{The \LaTeX{} Colors Inside the MetaPost Code}
+
+The configurable colors
+of the \LaTeX{} macro are accessible inside the MetaPost code. For
+\Verb+\buildMeshBWinc+ and \Verb+\drawPointsMeshinc+, we have
+\Verb+\luameshmpcolor+,
+and \Verb+\luameshmpcolorBbox+.
+For the macro \Verb+\meshAddPointBWinc+ we have three additional
+colors : \Verb+\luameshmpcolorBack+, \Verb+\luameshmpcolorNew+, and
+\Verb+\luameshmpcolorCircle+. Of course, we can define MetoPost
+colors as well. Finally, the \Verb+luamplib+ mechanism of
+\Verb+\mpcolor+ is also available.
+
+\subsubsection{The Mesh Points}
+
+At the beginning of the automatically generated code, a list of
+MetaPost \Verb+pair+s are defined corresponding to all the vertices of
+the mesh (when the option \Verb+bbox=show+, the last 4 points are the
+\emph{bounding box points}). The points are available with the
+\Verb+MeshPoints[]+ table of variables. The \Verb+MeshPoints[i]+ are
+defined using the unit length \Verb+u+.
+
+\subsubsection{Examples}
+
+Here is three examples for the different macros.
+\begin{Exemple}
+\drawPointsMeshinc[
+color = blue!50,
+print = points,
+meshpoint = x,
+scale=0.8cm,
+]{(0.3,0.3);(1.5,1);(4,0);(4.5,2.5);(1.81,2.14);(2.5,0.5);(2.8,1.5)}%
+{% code before
+ beginfig(0);
+}%
+{% code after
+ label(btex Mesh $\mathbb{T}$ etex, (0,2u)) withcolor \luameshmpcolor;
+ endfig;
+}
+\buildMeshBWinc[%
+bbox = show,
+color = red,
+colorBbox = blue!30,
+print = points,
+meshpoint = x,
+scale=0.8cm
+]{(0.3,0.3);(1.5,1);(4,0);(4.5,2.5);(1.81,2.14);(2.5,0.5);(2.8,1.5)}%
+{% code before
+ beginfig(0);
+}
+{% code after
+ drawdblarrow MeshPoints[3] -- MeshPoints[9] withpen pencircle scaled 1pt
+ withcolor (0.3,0.7,0.2);
+ endfig;
+}
+\meshAddPointBWinc[
+meshpoint = \alpha,
+newpoint = y,
+colorBack=red!10,
+colorNew = green!50!red,
+colorCircle = blue,
+colorBbox = black!20,
+bbox = show,
+scale=0.8cm,
+step=badtriangles]
+{(0.3,0.3);(1.5,1);(4,0);(4.5,2.5);(1.81,2.14);(2.5,0.5)}{(2.8,1.5)}%
+{%code before
+ picture drawing;
+ drawing := image(
+}{%code after
+ );
+ beginfig(0);
+ fill MeshPoints[7]--MeshPoints[8]--MeshPoints[9]--MeshPoints[10]--cycle
+ withcolor \mpcolor{blue!10};
+ draw drawing;
+ endfig;
+}
+\end{Exemple}
+\begin{warning}
+ The variables \Verb+MeshPoints[]+ are not defined for the argument
+ corresponding to the code to place before the code generated by
+ \luamesh. Hence, to use such variables, we have to define a
+ \Verb+picture+ as shown in the third example above.
+\end{warning}
+
+
+\subsection{With TikZ}
+
+If we have chosen \Verb+tikz+ as the engine drawing, the added code
+will be written in \Verb+tikz+. In that case, the two arguments
+\meta{code before} and \meta{code after} will be inserted as follows:
+\begin{latexcode}
+\noindent
+\begin{tikzpicture}[x=<scale>,y=<scale>]
+ <<code before>>
+ <generated code>
+ <<code after>>
+\end{tikzpicture}
+\end{latexcode}
+
+Because the engine is \Verb+tikz+ their is no issue with colors, the
+\LaTeX{} colors (e.g.: \Verb+xcolor+) can be directly used.
+
+\subsubsection{The Mesh Points}
+
+The points of the mesh are defined here as \Verb+tikz+
+\Verb+\coordinate+ named as follows
+\begin{latexcode}
+\coordinate (MeshPoints1) at (...,...);
+\coordinate (MeshPoints2) at (...,...);
+\coordinate (MeshPoints3) at (...,...);
+%etc.
+\end{latexcode}
+
+Once again these coordinates are not yet defined for the \meta{code
+ before} argument.
+
+\subsubsection{Examples}
+
+\begin{Exemple}
+ \drawPointsMeshinc[
+ tikz,
+ color = blue!50,
+ print = points,
+ meshpoint = x,
+ scale=0.8cm,
+ ]{(0.3,0.3);(1.5,1);(4,0);(4.5,2.5);(1.81,2.14);(2.5,0.5);(2.8,1.5)}%
+ {% code before
+ }%
+ {% code after
+ \node[color = blue!50] at (0,2) {Mesh $\mathbb{T}$} ;
+ }
+ \buildMeshBWinc[%
+ tikz,
+ bbox = show,
+ color = red,
+ colorBbox = blue!30,
+ print = points,
+ meshpoint = x,
+ scale=0.8cm
+ ]{(0.3,0.3);(1.5,1);(4,0);(4.5,2.5);(1.81,2.14);(2.5,0.5);(2.8,1.5)}%
+ {% code before
+ }
+ {% code after
+ \draw[<->,thick, color=green] (MeshPoints3) -- (MeshPoints9);
+ }
+\end{Exemple}
+
+\input{dum.bbl}