Ajout fonctionnalité de dashed pour Voronoi, documentation
[delaunay.git] / luamesh.lua
index bc961b7..3ff737b 100644 (file)
@@ -329,7 +329,17 @@ end
 
 
 -- trace Voronoi with MP
-function traceVoronoiMP(listPoints, triangulation,listVoronoi, points, tri)
+function traceVoronoiMP(listPoints, triangulation,listVoronoi, points, tri,styleD,styleV)
+   if(styleD == "dashed") then
+      sDelaunay = "dashed evenly"
+   else
+      sDelaunay = ""
+   end
+   if(styleV == "dashed") then
+      sVoronoi = "dashed evenly"
+   else
+      sVoronoi = ""
+   end
    listCircumC = listCircumCenter(listPoints,triangulation)
    output = "";
    output = output .. " pair MeshPoints[];"
@@ -346,16 +356,16 @@ function traceVoronoiMP(listPoints, triangulation,listVoronoi, points, tri)
          PointJ = listPoints[triangulation[i][2]]
          PointK = listPoints[triangulation[i][3]]
          if(triangulation[i].type == "bbox") then
-            output = output .. "draw (".. PointI.x ..",".. PointI.y ..")*u--("..PointJ.x..",".. PointJ.y ..")*u--("..PointK.x..",".. PointK.y ..")*u--cycle withcolor \\luameshmpcolorBbox;"
+            output = output .. "draw (".. PointI.x ..",".. PointI.y ..")*u--("..PointJ.x..",".. PointJ.y ..")*u--("..PointK.x..",".. PointK.y ..")*u--cycle "..sDelaunay.." withcolor \\luameshmpcolorBbox;"
          else
-            output = output .. "draw (".. PointI.x ..",".. PointI.y ..")*u--("..PointJ.x..",".. PointJ.y ..")*u--("..PointK.x..",".. PointK.y ..")*u--cycle withcolor \\luameshmpcolor;"
+            output = output .. "draw (".. PointI.x ..",".. PointI.y ..")*u--("..PointJ.x..",".. PointJ.y ..")*u--("..PointK.x..",".. PointK.y ..")*u--cycle "..sDelaunay.." withcolor \\luameshmpcolor;"
          end
       end
    end
    for i=1,#listVoronoi do
       PointI = listCircumC[listVoronoi[i][1]]
       PointJ = listCircumC[listVoronoi[i][2]]
-      output = output .. "draw (".. PointI.x ..",".. PointI.y ..")*u--("..PointJ.x..",".. PointJ.y ..")*u withcolor \\luameshmpcolorVoronoi;"
+      output = output .. "draw (".. PointI.x ..",".. PointI.y ..")*u--("..PointJ.x..",".. PointJ.y ..")*u "..sVoronoi.." withcolor \\luameshmpcolorVoronoi;"
    end
    if(points=="points") then
       j=1
@@ -390,7 +400,17 @@ end
 
 
 -- trace Voronoi with TikZ
-function traceVoronoiTikZ(listPoints, triangulation,listVoronoi, points, tri,color,colorBbox,colorVoronoi)
+function traceVoronoiTikZ(listPoints, triangulation,listVoronoi, points, tri,color,colorBbox,colorVoronoi,styleD,styleV)
+   if(styleD == "dashed") then
+      sDelaunay = ",dashed"
+   else
+      sDelaunay = ""
+   end
+   if(styleV == "dashed") then
+      sVoronoi = ",dashed"
+   else
+      sVoronoi = ""
+   end
    listCircumC = listCircumCenter(listPoints,triangulation)
     output = ""
    for i=1,#listPoints do
@@ -405,16 +425,16 @@ function traceVoronoiTikZ(listPoints, triangulation,listVoronoi, points, tri,col
          PointJ = listPoints[triangulation[i][2]]
          PointK = listPoints[triangulation[i][3]]
          if(triangulation[i].type == "bbox") then
-            output = output .. "\\draw[color="..colorBbox.."] (".. PointI.x ..",".. PointI.y ..")--("..PointJ.x..",".. PointJ.y ..")--("..PointK.x..",".. PointK.y ..")--cycle;"
+            output = output .. "\\draw[color="..colorBbox..sDelaunay.."] (".. PointI.x ..",".. PointI.y ..")--("..PointJ.x..",".. PointJ.y ..")--("..PointK.x..",".. PointK.y ..")--cycle;"
          else
-            output = output .. "\\draw[color="..color.."] (".. PointI.x ..",".. PointI.y ..")--("..PointJ.x..",".. PointJ.y ..")--("..PointK.x..",".. PointK.y ..")--cycle;"
+            output = output .. "\\draw[color="..color..sDelaunay.."] (".. PointI.x ..",".. PointI.y ..")--("..PointJ.x..",".. PointJ.y ..")--("..PointK.x..",".. PointK.y ..")--cycle;"
          end
       end
    end
    for i=1,#listVoronoi do
       PointI = listCircumC[listVoronoi[i][1]]
       PointJ = listCircumC[listVoronoi[i][2]]
-      output = output .. "\\draw[color="..colorVoronoi.."] (".. PointI.x ..",".. PointI.y ..")--("..PointJ.x..",".. PointJ.y ..");"
+      output = output .. "\\draw[color="..colorVoronoi..sVoronoi.."] (".. PointI.x ..",".. PointI.y ..")--("..PointJ.x..",".. PointJ.y ..");"
    end
    if(points=="points") then
       j=1
@@ -449,32 +469,32 @@ end
 
 
 -- buildVoronoi with MP
-function buildVoronoiMPBW(chaine,mode,points,bbox,scale,tri)
+function buildVoronoiMPBW(chaine,mode,points,bbox,scale,tri,styleD,styleV)
    listPoints = buildList(chaine, mode)
    triangulation = BowyerWatson(listPoints,bbox)
    listVoronoi = buildVoronoi(listPoints, triangulation)
-   output = traceVoronoiMP(listPoints,triangulation,listVoronoi,points,tri)
+   output = traceVoronoiMP(listPoints,triangulation,listVoronoi,points,tri,styleD,styleV)
    output = "\\leavevmode\\begin{mplibcode}beginfig(0);u:="..scale.. ";" .. output .."endfig;\\end{mplibcode}"
    tex.sprint(output)
 end
 
 
 -- buildVoronoi with TikZ
-function buildVoronoiTikZBW(chaine,mode,points,bbox,scale,tri,color,colorBbox,colorVoronoi)
+function buildVoronoiTikZBW(chaine,mode,points,bbox,scale,tri,color,colorBbox,colorVoronoi,styleD,styleV)
    listPoints = buildList(chaine, mode)
    triangulation = BowyerWatson(listPoints,bbox)
    listVoronoi = buildVoronoi(listPoints, triangulation)
-   output = traceVoronoiTikZ(listPoints,triangulation,listVoronoi,points,tri,color,colorBbox,colorVoronoi)
+   output = traceVoronoiTikZ(listPoints,triangulation,listVoronoi,points,tri,color,colorBbox,colorVoronoi,styleD,styleV)
    output = "\\noindent\\begin{tikzpicture}[x=" .. scale .. ",y=" .. scale .."]" .. output .."\\end{tikzpicture}"   tex.sprint(output)
 end
 
 
 -- buildVoronoi with MP
-function buildVoronoiMPBWinc(chaine,beginning, ending,mode,points,bbox,scale,tri)
+function buildVoronoiMPBWinc(chaine,beginning, ending,mode,points,bbox,scale,tri,styleD,styleV)
    listPoints = buildList(chaine, mode)
    triangulation = BowyerWatson(listPoints,bbox)
    listVoronoi = buildVoronoi(listPoints, triangulation)
-   output = traceVoronoiMP(listPoints,triangulation,listVoronoi,points,tri)
+   output = traceVoronoiMP(listPoints,triangulation,listVoronoi,points,tri,styleD,styleV)
    output = "\\leavevmode\\begin{mplibcode}u:="..scale..";"..beginning .. output .. ending .. "\\end{mplibcode}"
    tex.sprint(output)
 end
@@ -482,10 +502,10 @@ end
 
 -- buildVoronoi with TikZ
 function buildVoronoiTikZBWinc(chaine,beginning, ending,mode,points,bbox,scale,tri,color,colorBbox,colorVoronoi)
-   listPoints = buildList(chaine, mode)
+   listPoints = buildList(chaine, mode,styleD,styleV)
    triangulation = BowyerWatson(listPoints,bbox)
    listVoronoi = buildVoronoi(listPoints, triangulation)
-   output = traceVoronoiTikZ(listPoints,triangulation,listVoronoi,points,tri,color,colorBbox,colorVoronoi)
+   output = traceVoronoiTikZ(listPoints,triangulation,listVoronoi,points,tri,color,colorBbox,colorVoronoi,styleD,styleV)
    output = "\\noindent\\begin{tikzpicture}[x=" .. scale .. ",y=" .. scale .."]" ..beginning.. output..ending .."\\end{tikzpicture}"
    tex.sprint(output)
 end
@@ -1184,39 +1204,39 @@ end
 
 
 -- buildVoronoi with MP
-function gmshVoronoiMP(file,points,scale,tri)
+function gmshVoronoiMP(file,points,scale,tri,styleD,styleV)
    listPoints,triangulation = readGmsh(file)
    listVoronoi = buildVoronoi(listPoints, triangulation)
-   output = traceVoronoiMP(listPoints,triangulation,listVoronoi,points,tri)
+   output = traceVoronoiMP(listPoints,triangulation,listVoronoi,points,tri,styleD,styleV)
    output = "\\leavevmode\\begin{mplibcode}beginfig(0);u:="..scale.. ";" .. output .."endfig;\\end{mplibcode}"
    tex.sprint(output)
 end
 
 
 -- buildVoronoi with TikZ
-function gmshVoronoiTikZ(file,points,scale,tri,color,colorVoronoi)
+function gmshVoronoiTikZ(file,points,scale,tri,color,colorVoronoi,styleD,styleV)
    listPoints,triangulation = readGmsh(file)
    listVoronoi = buildVoronoi(listPoints, triangulation)
-   output = traceVoronoiTikZ(listPoints,triangulation,listVoronoi,points,tri,color,colorBbox,colorVoronoi)
+   output = traceVoronoiTikZ(listPoints,triangulation,listVoronoi,points,tri,color,colorBbox,colorVoronoi,styleD,styleV)
    output = "\\noindent\\begin{tikzpicture}[x=" .. scale .. ",y=" .. scale .."]" .. output .."\\end{tikzpicture}"   tex.sprint(output)
 end
 
 
 -- buildVoronoi with MP
-function gmshVoronoiMPinc(file,beginning, ending,points,scale,tri)
+function gmshVoronoiMPinc(file,beginning, ending,points,scale,tri,styleD,styleV)
    listPoints,triangulation = readGmsh(file)
    listVoronoi = buildVoronoi(listPoints, triangulation)
-   output = traceVoronoiMP(listPoints,triangulation,listVoronoi,points,tri)
+   output = traceVoronoiMP(listPoints,triangulation,listVoronoi,points,tri,styleD,styleV)
    output = "\\leavevmode\\begin{mplibcode}u:="..scale..";"..beginning .. output .. ending .. "\\end{mplibcode}"
    tex.sprint(output)
 end
 
 
 -- buildVoronoi with TikZ
-function gmshVoronoiTikZinc(file,beginning, ending,points,scale,tri,color,colorVoronoi)
+function gmshVoronoiTikZinc(file,beginning, ending,points,scale,tri,color,colorVoronoi,styleD,styleV)
    listPoints,triangulation = readGmsh(file)
    listVoronoi = buildVoronoi(listPoints, triangulation)
-   output = traceVoronoiTikZ(listPoints,triangulation,listVoronoi,points,tri,color,colorBbox,colorVoronoi)
+   output = traceVoronoiTikZ(listPoints,triangulation,listVoronoi,points,tri,color,colorBbox,colorVoronoi,styleD,styleV)
    output = "\\noindent\\begin{tikzpicture}[x=" .. scale .. ",y=" .. scale .."]" ..beginning.. output..ending .."\\end{tikzpicture}"
    tex.sprint(output)
 end

Licence Creative Commons Les fichiers de Syracuse sont mis à disposition (sauf mention contraire) selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.