\documentclass{article}
%% compiler avec lualatex
\usepackage[margin=2.5cm]{geometry}
\usepackage{luamesh}
\usepackage{fontspec}
\usepackage{multido}
\pagestyle{empty}
\begin{document}


\section{MetaPost}

\buildMeshBW[print=points,  meshpoint = I, color=red]{(0,0);(3.5,3);(7,0);(7.5,5);(1.61,3.14);(3,1);(6,1.5)}

%\buildMeshBW[tikz, bbox = show]{(0,0);(3.5,3);(7,0);(7.5,5);(1.61,3.14);(3,1);(6,1.5)}

\buildMeshBW[mode=ext,bbox = show, color=red,colorBbox = blue]{mesh.txt}

\drawPointsMesh[mode=ext,bbox = show, color=red,print=points]{mesh.txt}

\drawPointsMesh[mode=ext,bbox = show, color=red]{mesh.txt}


\buildMeshBWinc[mode=ext,bbox = show, color=red,colorBbox = blue]{mesh.txt}{%
  beginfig(0);
}%
{%
  draw MeshPoints[3] -- MeshPoints[9];
  endfig;
}

\meshAddPointBW[
meshpoint = x,
colorNew =green!20!red,
colorBack=red!10,
colorCircle = green!70,
scale=0.6cm]
{(0,0);(3.5,3);(7,0);(7.5,5);(1.61,3.14);(6,4)}{(3,1)}
\meshAddPointBW[
 color = green,
 meshpoint = x,
 colorBack=red!10,
 colorNew = green!20!red,
 scale=0.6cm,
 step=cavity]
 {(0,0);(3.5,3);(7,0);(7.5,5);(1.61,3.14);(6,4)}{(3,1)}
\meshAddPointBW[
meshpoint = x,
colorBack=red!10,
colorNew = green!20!red,
scale=0.6cm,
step=badtriangles,
newpoint = y,
bbox = show,
colorBbox = black
]
{(0,0);(3.5,3);(7,0);(7.5,5);(1.61,3.14);(6,4)}{(3,1)}

\mplibcolor\myclr{red}

\newcommand\test{draw (0,0) -- (2cm,0) withcolor \myclr;}

\begin{mplibcode}
  beginfig(0);
  %\meshAddOnePoint[picture=embedded]{(0,0);(3.5,3);(7,0);(7.5,5);(1.61,3.14);(6,4)}{(3,1)}
  \test
  endfig;
\end{mplibcode}

\meshAddPointBWinc[
meshpoint = x,
colorBack=red!10,
colorNew = green!20!red,
scale=0.6cm,
step=badtriangles,
newpoint = y,
bbox = show,
colorBbox = blue!20,
]
{(0,0);(3.5,3);(7,0);(7.5,5);(1.61,3.14);(6,4)}{(3,1)}{%
beginfig(0);
}%
{%
  draw (-1,-1)*u--(8.5,-1)*u--(8.5,6)*u--(-1,6)*u--cycle withcolor \mpcolor{red};
endfig;
}


\section{tikz}

\buildMeshBW[tikz,print=points,  meshpoint = I,
color=red]{(0,0);(3.5,3);(7,0);(7.5,5);(1.61,3.14);(3,1);(6,1.5)}

\buildMeshBW[tikz,mode=ext, color=red]{mesh.txt}

\drawPointsMesh[tikz,mode=ext,bbox = show,
color=red,print=points]{mesh.txt}
\drawPointsMesh[tikz,mode=ext,bbox = show, color=red]{mesh.txt}

\buildMeshBWinc[tikz,mode=ext,bbox = show, colorBbox = blue]{mesh.txt}{%
}%
{%
  \draw[color = red] (0,0) -- (3,3);
}

\meshAddPointBW[
tikz,
color = green,
meshpoint = x,
colorBack=red!10,
colorNew = green!20!red,
scale=0.6cm,
step=cavity]
{(0,0);(3.5,3);(7,0);(7.5,5);(1.61,3.14);(6,4)}{(3,1)}

\meshAddPointBWinc[
tikz,
meshpoint = x,
colorBack=red!10,
colorNew = green!20!red,
scale=0.6cm,
step=badtriangles,
newpoint = y,
bbox = show,
colorBbox = blue!20,
]{(0,0);(3.5,3);(7,0);(7.5,5);(1.61,3.14);(6,4)}{(3,1)}
{}{\draw[color=green] (0,0) -- (3,3);}

\meshAddPointBW[
tikz,
meshpoint = x,
colorBack=red!10,
colorNew = green!20!red,
scale=0.6cm,
step=badtriangles,
newpoint = y,
bbox = show,
colorBbox = black
]
{(0,0);(3.5,3);(7,0);(7.5,5);(1.61,3.14);(6,4)}{(3,1)}


% \def\CircumPoint{y}
% \luampcolor
% \directlua{
%   buildVoronoiMP("mesh.txt","ext","points","","1cm","show")
% }
\buildVoronoiBW[mode=ext]{mesh.txt}
\buildVoronoiBW[mode=ext,delaunay=show,colorVoronoi=green!60!blue]{mesh.txt}\par
\buildVoronoiBW[mode=ext,print=points,delaunay=show,bbox=show,meshpoint=x,circumpoint=y]{mesh.txt}


\buildVoronoiBW[tikz,mode=ext]{mesh.txt}
\buildVoronoiBW[tikz,mode=ext,delaunay=show,colorVoronoi=green!60!blue]{mesh.txt}\par
\buildVoronoiBW[tikz,mode=ext,print=points,delaunay=show,bbox=show,meshpoint=x,circumpoint=y]{mesh.txt}

\end{document}
