From 8dac495f9a49c66620e9e105e9cc16b5243dd8f7 Mon Sep 17 00:00:00 2001 From: "Maxime Chupin (escudo)" Date: Mon, 21 Nov 2016 19:14:25 +0100 Subject: [PATCH 1/1] Ajout de l'option bbox pour la macro \meshAddOnePoint --- luamesh.lua | 8 ++++---- luamesh.sty | 11 +++++++++-- test/delaunay.pdf | Bin 19020 -> 19818 bytes test/delaunay.tex | 3 ++- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/luamesh.lua b/luamesh.lua index 9b761e2..945d9cc 100644 --- a/luamesh.lua +++ b/luamesh.lua @@ -449,11 +449,11 @@ function TeXaddOnePointTikZ(chaine,point,step,color,colorBack, colorNew, colorCi return output end -function TeXaddOnePointMP(listPoints,P,step,color,colorBack, colorNew, colorCircle) +function TeXaddOnePointMP(listPoints,P,step,color,colorBack, colorNew, colorCircle,bbox) output = ""; output = output .. "pair MeshPoints[];" -- build the triangulation - triangulation = BowyerWatson(listPoints,"none") + triangulation = BowyerWatson(listPoints,bbox) badTriangles = buildBadTriangles(P,triangulation) for i=1,#listPoints do output = output .. "MeshPoints[".. i .. "] = (" .. listPoints[i].x .. "," .. listPoints[i].y .. ");" @@ -576,7 +576,7 @@ function TeXOnePointTikZ(chaine,point,step,color,colorBack,colorNew,colorCircle, tex.sprint(output) end -function TeXOnePointMP(chaine,point,step,color,colorBack,colorNew,colorCircle,scale,mode,picture) +function TeXOnePointMP(chaine,point,step,color,colorBack,colorNew,colorCircle,scale,mode,picture,bbox) if(mode=="int") then Sx,Sy=string.match(point,"%((.+),(.+)%)") P = {x=Sx, y=Sy} @@ -585,7 +585,7 @@ function TeXOnePointMP(chaine,point,step,color,colorBack,colorNew,colorCircle,sc -- point is a number P, listPoints = buildListExt(chaine,tonumber(point)) end - output = TeXaddOnePointMP(listPoints,P,step,color,colorBack,colorNew,colorCircle) + output = TeXaddOnePointMP(listPoints,P,step,color,colorBack,colorNew,colorCircle,bbox) if(picture=="full") then output = "\\leavevmode\\begin{mplibcode}beginfig(0);u:="..scale..";".. output .. "endfig;\\end{mplibcode}" else diff --git a/luamesh.sty b/luamesh.sty index 9b326e5..af422c3 100644 --- a/luamesh.sty +++ b/luamesh.sty @@ -171,7 +171,14 @@ \def\luameshval@picture{embedded}% \fi% }% -\presetkeys{MeshAddOne}{tikz=false,scale, meshpoint,newpoint,color,colorBack,colorNew,colorCircle,step=badtriangles,mode=int,picture=full}{}% +\define@choicekey*{MeshAddOne}{bbox}[\val\nr]{none, show}{% + \ifcase\nr\relax% + \def\luameshval@bbox{none}% + \or% + \def\luameshval@bbox{bbox}% + \fi% +}% +\presetkeys{MeshAddOne}{tikz=false,scale, meshpoint,newpoint,color,colorBack,colorNew,colorCircle,step=badtriangles,mode=int,picture=full,bbox=none}{}% % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % the difinition @@ -187,7 +194,7 @@ }% \else % we are using MP \directlua{% - TeXOnePointMP("#2","#3","\luameshval@step","\luameshval@color","\luameshval@colorback","\luameshval@colornew","\luameshval@colorcircle","\luameshval@scale","\luameshval@mode","\luameshval@picture")% + TeXOnePointMP("#2","#3","\luameshval@step","\luameshval@color","\luameshval@colorback","\luameshval@colornew","\luameshval@colorcircle","\luameshval@scale","\luameshval@mode","\luameshval@picture","\luameshval@bbox")% }% % \fi% diff --git a/test/delaunay.pdf b/test/delaunay.pdf index 3c5278d72297b8d5d8153e5ed6ed5cf03f4b1cc2..24df700483e48cf18a28c1590d498b785384bc06 100644 GIT binary patch delta 11587 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