summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-02-27 23:41:11 +0000
committerKarl Berry <karl@freefriends.org>2022-02-27 23:41:11 +0000
commit8027f287eb46d487a0e379911bdbc4d6c2bf44e4 (patch)
treeb6e3aeebab3f5c2560ae1ab892b76cca269eb05e /Master/texmf-dist/doc
parenta4855ce49e2101557c17547c2d22594e1b2a215c (diff)
asymptote 2.78 support files
git-svn-id: svn://tug.org/texlive/trunk@62265 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r--Master/texmf-dist/doc/asymptote/CAD.pdfbin186216 -> 198828 bytes
-rw-r--r--Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdfbin77206 -> 81087 bytes
-rw-r--r--Master/texmf-dist/doc/asymptote/asy-latex.pdfbin194511 -> 207102 bytes
-rw-r--r--Master/texmf-dist/doc/asymptote/asyRefCard.pdfbin121128 -> 121145 bytes
-rw-r--r--Master/texmf-dist/doc/asymptote/asymptote.pdfbin1212419 -> 1313774 bytes
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/1overx.asy9
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/NURBScurve.asy4
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/NURBSsphere.asy3
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/NURBSsurface.asy5
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/alignedaxis.asy2
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/fillcontour.asy34
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/graphwithderiv.asy11
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/imagecontour.asy15
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/interpolate1.asy2
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/latexusage.tex1
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/layers.asy2
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/legend.asy2
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/markregular.asy4
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/orthocenter.asy3
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/secondaryaxis.asy3
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/spectrum.asy2
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/strokepath.asy1
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/teapot.asy196
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/teapotIBL.asy2
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/transparency.asy3
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/twoSpheres.asy17
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/workcone.asy2
-rw-r--r--Master/texmf-dist/doc/info/asy-faq.info2
-rw-r--r--Master/texmf-dist/doc/info/asymptote.info1351
-rw-r--r--Master/texmf-dist/doc/man/man1/asy.140
-rw-r--r--Master/texmf-dist/doc/man/man1/asy.man1.pdfbin29151 -> 31138 bytes
-rw-r--r--Master/texmf-dist/doc/man/man1/twill.man1.pdfbin0 -> 21700 bytes
-rw-r--r--Master/texmf-dist/doc/man/man1/xasy.man1.pdfbin14672 -> 15299 bytes
33 files changed, 1014 insertions, 702 deletions
diff --git a/Master/texmf-dist/doc/asymptote/CAD.pdf b/Master/texmf-dist/doc/asymptote/CAD.pdf
index f55807bb30c..c9e5dc9942a 100644
--- a/Master/texmf-dist/doc/asymptote/CAD.pdf
+++ b/Master/texmf-dist/doc/asymptote/CAD.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf b/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf
index 50759d15e8f..b585bd4ef0d 100644
--- a/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf
+++ b/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/asymptote/asy-latex.pdf b/Master/texmf-dist/doc/asymptote/asy-latex.pdf
index 953b91a2a06..3e57a01df6a 100644
--- a/Master/texmf-dist/doc/asymptote/asy-latex.pdf
+++ b/Master/texmf-dist/doc/asymptote/asy-latex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/asymptote/asyRefCard.pdf b/Master/texmf-dist/doc/asymptote/asyRefCard.pdf
index 697d5a67b89..63dc23bf577 100644
--- a/Master/texmf-dist/doc/asymptote/asyRefCard.pdf
+++ b/Master/texmf-dist/doc/asymptote/asyRefCard.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/asymptote/asymptote.pdf b/Master/texmf-dist/doc/asymptote/asymptote.pdf
index 26289f9316f..a2098dfa94c 100644
--- a/Master/texmf-dist/doc/asymptote/asymptote.pdf
+++ b/Master/texmf-dist/doc/asymptote/asymptote.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/asymptote/examples/1overx.asy b/Master/texmf-dist/doc/asymptote/examples/1overx.asy
index 9bbbf282aca..dfaa049efb5 100644
--- a/Master/texmf-dist/doc/asymptote/examples/1overx.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/1overx.asy
@@ -1,16 +1,11 @@
import graph;
size(200,IgnoreAspect);
-real f(real x) {return 1/x;};
+real f(real x) {return 1/x;}
bool3 branch(real x)
{
- static int lastsign=0;
- if(x == 0) return false;
- int sign=sgn(x);
- bool b=lastsign == 0 || sign == lastsign;
- lastsign=sign;
- return b ? true : default;
+ return x != 0;
}
draw(graph(f,-1,1,branch));
diff --git a/Master/texmf-dist/doc/asymptote/examples/NURBScurve.asy b/Master/texmf-dist/doc/asymptote/examples/NURBScurve.asy
index 9ad121ecc65..736ff67588b 100644
--- a/Master/texmf-dist/doc/asymptote/examples/NURBScurve.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/NURBScurve.asy
@@ -1,3 +1,6 @@
+settings.outformat="pdf";
+settings.prc=true;
+
import three;
size(10cm);
@@ -31,4 +34,3 @@ real[] weights=array(P.length,1.0);
weights[2]=5;
draw(P,knot,weights,red);
-
diff --git a/Master/texmf-dist/doc/asymptote/examples/NURBSsphere.asy b/Master/texmf-dist/doc/asymptote/examples/NURBSsphere.asy
index 484e8c4cd15..e169d70343e 100644
--- a/Master/texmf-dist/doc/asymptote/examples/NURBSsphere.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/NURBSsphere.asy
@@ -1,3 +1,6 @@
+settings.outformat="pdf";
+settings.prc=true;
+
import three;
/* Reference:
diff --git a/Master/texmf-dist/doc/asymptote/examples/NURBSsurface.asy b/Master/texmf-dist/doc/asymptote/examples/NURBSsurface.asy
index 4bfafefbc33..bfa314ac66a 100644
--- a/Master/texmf-dist/doc/asymptote/examples/NURBSsurface.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/NURBSsurface.asy
@@ -1,3 +1,6 @@
+settings.outformat="pdf";
+settings.prc=true;
+
import three;
size(10cm);
@@ -59,7 +62,7 @@ draw(P,uknot,vknot,new pen[] {red,green,blue,magenta});
// udegree=3, vdegree=3, nu=4, nv=4;
real[] uknot={0,0,0,0,1,1,1,1};
real[] vknot={0,0,0,0,1,1,1,1};
-triple[][] P=scale3(20)*octant1.P;
+triple[][] P=scale3(20)*octant1x.P;
// Optional weights:
real[][] weights=array(P.length,array(P[0].length,1.0));
diff --git a/Master/texmf-dist/doc/asymptote/examples/alignedaxis.asy b/Master/texmf-dist/doc/asymptote/examples/alignedaxis.asy
index 542dcb9bc60..d32c389a74b 100644
--- a/Master/texmf-dist/doc/asymptote/examples/alignedaxis.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/alignedaxis.asy
@@ -91,7 +91,7 @@ real Aerr2(real x){return Aerr(x,0.75);}
draw(pic2p,graph(pic2p,Aerr2,1e-4,1),black+1.2);
ylimits(pic2p,-5,95);
-yaxis(pic2p,"phase (deg)",LeftRight,RightTicks(new real[] {0,45.1,90}));
+yaxis(pic2p,"phase (deg)",LeftRight,RightTicks(new real[] {0,50,90}));
xaxis(pic2p,"$f/f_\mathrm{Ny}$",BottomTop,LeftTicks(N=5));
yequals(pic2p,0,Dotted);
yequals(pic2p,45,Dotted);
diff --git a/Master/texmf-dist/doc/asymptote/examples/fillcontour.asy b/Master/texmf-dist/doc/asymptote/examples/fillcontour.asy
index 0197386670f..b92b65ef46c 100644
--- a/Master/texmf-dist/doc/asymptote/examples/fillcontour.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/fillcontour.asy
@@ -2,28 +2,40 @@ import graph;
import palette;
import contour;
-size(12cm,IgnoreAspect);
+size(10cm,10cm);
-pair a=(pi/2,0);
-pair b=(3pi/2,2pi);
+pair a=(0,0);
+pair b=(2pi,2pi);
real f(real x, real y) {return cos(x)*sin(y);}
-int N=100;
+int N=200;
int Divs=10;
+int divs=1;
+int n=Divs*divs;
defaultpen(1bp);
+pen Tickpen=black;
+pen tickpen=gray+0.5*linewidth(currentpen);
+pen[] Palette=quantize(BWRainbow(),n);
-bounds range=bounds(-1,1);
+bounds range=image(f,Automatic,a,b,3N,Palette,n);
real[] Cvals=uniform(range.min,range.max,Divs);
-guide[][] g=contour(f,a,b,Cvals,N,operator --);
+draw(contour(f,a,b,Cvals,N,operator --),Tickpen+squarecap+beveljoin);
-pen[] Palette=quantize(Rainbow(),Divs);
+// Major contours
+real[] Cvals=uniform(range.min,range.max,Divs);
+draw(contour(f,a,b,Cvals,N,operator --),Tickpen+squarecap+beveljoin);
+
+// Minor contours (if divs > 1)
+real[] cvals;
+for(int i=0; i < Cvals.length-1; ++i)
+ cvals.append(uniform(Cvals[i],Cvals[i+1],divs)[1:divs]);
+draw(contour(f,a,b,cvals,N,operator --),tickpen);
-pen[][] interior=interior(g,extend(Palette,grey,black));
-fill(g,interior);
-draw(g);
+xaxis("$x$",BottomTop,LeftTicks,above=true);
+yaxis("$y$",LeftRight,RightTicks,above=true);
palette("$f(x,y)$",range,point(SE)+(0.5,0),point(NE)+(1,0),Right,Palette,
- PaletteTicks("$%+#0.1f$",N=Divs));
+ PaletteTicks("$%+#0.1f$",N=Divs,n=divs,Tickpen,tickpen));
diff --git a/Master/texmf-dist/doc/asymptote/examples/graphwithderiv.asy b/Master/texmf-dist/doc/asymptote/examples/graphwithderiv.asy
new file mode 100644
index 00000000000..2dfd1da02d3
--- /dev/null
+++ b/Master/texmf-dist/doc/asymptote/examples/graphwithderiv.asy
@@ -0,0 +1,11 @@
+unitsize(2cm);
+import graph;
+pair F(real t) {
+ return (1.3*t,-4.5*t^2+3.0*t+1.0);
+}
+pair Fprime(real t) {
+ return (1.3,-9.0*t+3.0);
+}
+path g=graphwithderiv(F,Fprime,0,0.9,4);
+dot(g,red);
+draw(g,arrow=Arrow(TeXHead));
diff --git a/Master/texmf-dist/doc/asymptote/examples/imagecontour.asy b/Master/texmf-dist/doc/asymptote/examples/imagecontour.asy
index d61b6148c53..18c4cb772cc 100644
--- a/Master/texmf-dist/doc/asymptote/examples/imagecontour.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/imagecontour.asy
@@ -2,7 +2,7 @@ import graph;
import palette;
import contour;
-size(10cm,10cm,IgnoreAspect);
+size(10cm,10cm);
pair a=(0,0);
pair b=(2pi,2pi);
@@ -11,7 +11,7 @@ real f(real x, real y) {return cos(x)*sin(y);}
int N=200;
int Divs=10;
-int divs=2;
+int divs=1;
defaultpen(1bp);
pen Tickpen=black;
@@ -21,18 +21,17 @@ pen[] Palette=BWRainbow();
bounds range=image(f,Automatic,a,b,N,Palette);
// Major contours
-
real[] Cvals=uniform(range.min,range.max,Divs);
-draw(contour(f,a,b,Cvals,N,operator --),Tickpen);
+draw(contour(f,a,b,Cvals,N,operator --),Tickpen+squarecap+beveljoin);
-// Minor contours
+// Minor contours (if divs > 1)
real[] cvals;
for(int i=0; i < Cvals.length-1; ++i)
cvals.append(uniform(Cvals[i],Cvals[i+1],divs)[1:divs]);
-draw(contour(f,a,b,cvals,N,operator --),tickpen);
+draw(contour(f,a,b,cvals,N,operator --),tickpen+squarecap+beveljoin);
xaxis("$x$",BottomTop,LeftTicks,above=true);
yaxis("$y$",LeftRight,RightTicks,above=true);
-palette("$f(x,y)$",range,point(NW)+(0,0.5),point(NE)+(0,1),Top,Palette,
- PaletteTicks(N=Divs,n=divs,Tickpen,tickpen));
+palette("$f(x,y)$",range,point(SE)+(0.5,0),point(NE)+(1,0),Right,Palette,
+ PaletteTicks("$%+#0.1f$",N=Divs,n=divs,Tickpen,tickpen));
diff --git a/Master/texmf-dist/doc/asymptote/examples/interpolate1.asy b/Master/texmf-dist/doc/asymptote/examples/interpolate1.asy
index 19d77449abd..10bc7ef4f6b 100644
--- a/Master/texmf-dist/doc/asymptote/examples/interpolate1.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/interpolate1.asy
@@ -1,5 +1,5 @@
// Lagrange and Hermite interpolation in Asymptote
-// Author: Olivier Guibé
+// Author: Olivier Guibé
import interpolate;
import graph;
diff --git a/Master/texmf-dist/doc/asymptote/examples/latexusage.tex b/Master/texmf-dist/doc/asymptote/examples/latexusage.tex
index 07b0e56a356..9701a25af9b 100644
--- a/Master/texmf-dist/doc/asymptote/examples/latexusage.tex
+++ b/Master/texmf-dist/doc/asymptote/examples/latexusage.tex
@@ -21,6 +21,7 @@
\begin{asydef}
// Global Asymptote definitions can be put here.
+settings.prc=true;
import three;
usepackage("bm");
texpreamble("\def\V#1{\bm{#1}}");
diff --git a/Master/texmf-dist/doc/asymptote/examples/layers.asy b/Master/texmf-dist/doc/asymptote/examples/layers.asy
index 4fe745f6a3c..3d80b31fb7a 100644
--- a/Master/texmf-dist/doc/asymptote/examples/layers.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/layers.asy
@@ -1,4 +1,4 @@
-usepackage("ocg");
+usepackage("ocgx2");
settings.tex="pdflatex";
size(0,150);
diff --git a/Master/texmf-dist/doc/asymptote/examples/legend.asy b/Master/texmf-dist/doc/asymptote/examples/legend.asy
index b00cdd14e6b..246c787c833 100644
--- a/Master/texmf-dist/doc/asymptote/examples/legend.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/legend.asy
@@ -4,7 +4,7 @@ size(8cm,6cm,IgnoreAspect);
typedef real realfcn(real);
realfcn F(real p) {
return new real(real x) {return sin(p*x);};
-};
+}
for(int i=1; i < 5; ++i)
draw(graph(F(i*pi),0,1),Pen(i),
diff --git a/Master/texmf-dist/doc/asymptote/examples/markregular.asy b/Master/texmf-dist/doc/asymptote/examples/markregular.asy
index ea08b952238..8c3a51040b3 100644
--- a/Master/texmf-dist/doc/asymptote/examples/markregular.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/markregular.asy
@@ -7,11 +7,11 @@ real ymin=-2,ymax=10;
real f(real x) {return x^2;}
-marker cross=marker(scale(4)*rotate(45)*cross(4),
+marker mark=marker(scale(4)*plus,
markuniform(new pair(real t) {return Scale((t,f(t)));},
xmin,xmax,round(2*(xmax-xmin))),1bp+red);
-draw(graph(f,xmin,xmax,n=400),linewidth(1bp),cross);
+draw(graph(f,xmin,xmax,n=400),linewidth(1bp),mark);
ylimits(-2.5,10,Crop);
diff --git a/Master/texmf-dist/doc/asymptote/examples/orthocenter.asy b/Master/texmf-dist/doc/asymptote/examples/orthocenter.asy
index a7caaf14126..69ae5376b5f 100644
--- a/Master/texmf-dist/doc/asymptote/examples/orthocenter.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/orthocenter.asy
@@ -2,8 +2,7 @@ import geometry;
import math;
size(7cm,0);
-
-if(!settings.xasy && settings.outformat != "svg") settings.tex="pdflatex";
+settings.tex="pdflatex";
real theta=degrees(asin(0.5/sqrt(7)));
diff --git a/Master/texmf-dist/doc/asymptote/examples/secondaryaxis.asy b/Master/texmf-dist/doc/asymptote/examples/secondaryaxis.asy
index 85143f7acec..b611eb4ed2e 100644
--- a/Master/texmf-dist/doc/asymptote/examples/secondaryaxis.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/secondaryaxis.asy
@@ -11,7 +11,7 @@ string[] columnlabel=in;
real[][] a=in;
a=transpose(a);
real[] t=a[0], susceptible=a[1], infectious=a[2], dead=a[3], larvae=a[4];
-real[] susceptibleM=a[5], exposed=a[6],infectiousM=a[7];
+real[] susceptibleM=a[5], exposed=a[6], infectiousM=a[7];
scale(true);
@@ -29,4 +29,3 @@ picture secondary=secondaryY(new void(picture pic) {
add(secondary);
label(shift(5mm*N)*"Proportion of crows",point(NW),E);
-
diff --git a/Master/texmf-dist/doc/asymptote/examples/spectrum.asy b/Master/texmf-dist/doc/asymptote/examples/spectrum.asy
index 95c5f8a0d1b..c6837ec7810 100644
--- a/Master/texmf-dist/doc/asymptote/examples/spectrum.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/spectrum.asy
@@ -1,5 +1,5 @@
import graph;
-usepackage("ocg");
+usepackage("ocgx2");
settings.tex="pdflatex";
// Dan Bruton algorithm
diff --git a/Master/texmf-dist/doc/asymptote/examples/strokepath.asy b/Master/texmf-dist/doc/asymptote/examples/strokepath.asy
index c857150ec58..5e5b2b9a964 100644
--- a/Master/texmf-dist/doc/asymptote/examples/strokepath.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/strokepath.asy
@@ -5,7 +5,6 @@ frame f;
// Equivalent to draw(f,g,p):
fill(f,strokepath(g,p),red);
shipout("strokepathframe",f);
-shipped=false;
size(400);
diff --git a/Master/texmf-dist/doc/asymptote/examples/teapot.asy b/Master/texmf-dist/doc/asymptote/examples/teapot.asy
index f3328151fde..847ffd234dc 100644
--- a/Master/texmf-dist/doc/asymptote/examples/teapot.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/teapot.asy
@@ -1,204 +1,232 @@
import three;
-import settings;
size(20cm);
currentprojection=perspective(250,-250,250);
currentlight=Viewport;
-triple[][][] Q=
+triple[][][] Q={
{
- {
{(39.68504,0,68.0315),(37.91339,0,71.75197),(40.74803,0,71.75197),(42.51969,0,68.0315)},
{(39.68504,-22.22362,68.0315),(37.91339,-21.2315,71.75197),(40.74803,-22.8189,71.75197),(42.51969,-23.81102,68.0315)},
{(22.22362,-39.68504,68.0315),(21.2315,-37.91339,71.75197),(22.8189,-40.74803,71.75197),(23.81102,-42.51969,68.0315)},
{(0,-39.68504,68.0315),(0,-37.91339,71.75197),(0,-40.74803,71.75197),(0,-42.51969,68.0315)}
- },
- {
+ },
+ {
{(0,-39.68504,68.0315),(0,-37.91339,71.75197),(0,-40.74803,71.75197),(0,-42.51969,68.0315)},
{(-22.22362,-39.68504,68.0315),(-21.2315,-37.91339,71.75197),(-22.8189,-40.74803,71.75197),(-23.81102,-42.51969,68.0315)},
{(-39.68504,-22.22362,68.0315),(-37.91339,-21.2315,71.75197),(-40.74803,-22.8189,71.75197),(-42.51969,-23.81102,68.0315)},
{(-39.68504,0,68.0315),(-37.91339,0,71.75197),(-40.74803,0,71.75197),(-42.51969,0,68.0315)}
- },
- {
+ },
+ {
{(-39.68504,0,68.0315),(-37.91339,0,71.75197),(-40.74803,0,71.75197),(-42.51969,0,68.0315)},
{(-39.68504,22.22362,68.0315),(-37.91339,21.2315,71.75197),(-40.74803,22.8189,71.75197),(-42.51969,23.81102,68.0315)},
{(-22.22362,39.68504,68.0315),(-21.2315,37.91339,71.75197),(-22.8189,40.74803,71.75197),(-23.81102,42.51969,68.0315)},
{(0,39.68504,68.0315),(0,37.91339,71.75197),(0,40.74803,71.75197),(0,42.51969,68.0315)}
- },
- {
+ },
+ {
{(0,39.68504,68.0315),(0,37.91339,71.75197),(0,40.74803,71.75197),(0,42.51969,68.0315)},
{(22.22362,39.68504,68.0315),(21.2315,37.91339,71.75197),(22.8189,40.74803,71.75197),(23.81102,42.51969,68.0315)},
{(39.68504,22.22362,68.0315),(37.91339,21.2315,71.75197),(40.74803,22.8189,71.75197),(42.51969,23.81102,68.0315)},
{(39.68504,0,68.0315),(37.91339,0,71.75197),(40.74803,0,71.75197),(42.51969,0,68.0315)}
- },
- {
+ },
+ {
{(42.51969,0,68.0315),(49.60629,0,53.1496),(56.69291,0,38.26771),(56.69291,0,25.51181)},
{(42.51969,-23.81102,68.0315),(49.60629,-27.77952,53.1496),(56.69291,-31.74803,38.26771),(56.69291,-31.74803,25.51181)},
{(23.81102,-42.51969,68.0315),(27.77952,-49.60629,53.1496),(31.74803,-56.69291,38.26771),(31.74803,-56.69291,25.51181)},
{(0,-42.51969,68.0315),(0,-49.60629,53.1496),(0,-56.69291,38.26771),(0,-56.69291,25.51181)}
- },
- {
+ },
+ {
{(0,-42.51969,68.0315),(0,-49.60629,53.1496),(0,-56.69291,38.26771),(0,-56.69291,25.51181)},
{(-23.81102,-42.51969,68.0315),(-27.77952,-49.60629,53.1496),(-31.74803,-56.69291,38.26771),(-31.74803,-56.69291,25.51181)},
{(-42.51969,-23.81102,68.0315),(-49.60629,-27.77952,53.1496),(-56.69291,-31.74803,38.26771),(-56.69291,-31.74803,25.51181)},
{(-42.51969,0,68.0315),(-49.60629,0,53.1496),(-56.69291,0,38.26771),(-56.69291,0,25.51181)}
- },
- {
+ },
+ {
{(-42.51969,0,68.0315),(-49.60629,0,53.1496),(-56.69291,0,38.26771),(-56.69291,0,25.51181)},
{(-42.51969,23.81102,68.0315),(-49.60629,27.77952,53.1496),(-56.69291,31.74803,38.26771),(-56.69291,31.74803,25.51181)},
{(-23.81102,42.51969,68.0315),(-27.77952,49.60629,53.1496),(-31.74803,56.69291,38.26771),(-31.74803,56.69291,25.51181)},
{(0,42.51969,68.0315),(0,49.60629,53.1496),(0,56.69291,38.26771),(0,56.69291,25.51181)}
- },
- {
+ },
+ {
{(0,42.51969,68.0315),(0,49.60629,53.1496),(0,56.69291,38.26771),(0,56.69291,25.51181)},
{(23.81102,42.51969,68.0315),(27.77952,49.60629,53.1496),(31.74803,56.69291,38.26771),(31.74803,56.69291,25.51181)},
{(42.51969,23.81102,68.0315),(49.60629,27.77952,53.1496),(56.69291,31.74803,38.26771),(56.69291,31.74803,25.51181)},
{(42.51969,0,68.0315),(49.60629,0,53.1496),(56.69291,0,38.26771),(56.69291,0,25.51181)}
- },
- {
+ },
+ {
{(56.69291,0,25.51181),(56.69291,0,12.7559),(42.51969,0,6.377957),(42.51969,0,4.251961)},
{(56.69291,-31.74803,25.51181),(56.69291,-31.74803,12.7559),(42.51969,-23.81102,6.377957),(42.51969,-23.81102,4.251961)},
{(31.74803,-56.69291,25.51181),(31.74803,-56.69291,12.7559),(23.81102,-42.51969,6.377957),(23.81102,-42.51969,4.251961)},
{(0,-56.69291,25.51181),(0,-56.69291,12.7559),(0,-42.51969,6.377957),(0,-42.51969,4.251961)}
- },
- {
+ },
+ {
{(0,-56.69291,25.51181),(0,-56.69291,12.7559),(0,-42.51969,6.377957),(0,-42.51969,4.251961)},
{(-31.74803,-56.69291,25.51181),(-31.74803,-56.69291,12.7559),(-23.81102,-42.51969,6.377957),(-23.81102,-42.51969,4.251961)},
{(-56.69291,-31.74803,25.51181),(-56.69291,-31.74803,12.7559),(-42.51969,-23.81102,6.377957),(-42.51969,-23.81102,4.251961)},
{(-56.69291,0,25.51181),(-56.69291,0,12.7559),(-42.51969,0,6.377957),(-42.51969,0,4.251961)}
- },
- {
+ },
+ {
{(-56.69291,0,25.51181),(-56.69291,0,12.7559),(-42.51969,0,6.377957),(-42.51969,0,4.251961)},
{(-56.69291,31.74803,25.51181),(-56.69291,31.74803,12.7559),(-42.51969,23.81102,6.377957),(-42.51969,23.81102,4.251961)},
{(-31.74803,56.69291,25.51181),(-31.74803,56.69291,12.7559),(-23.81102,42.51969,6.377957),(-23.81102,42.51969,4.251961)},
{(0,56.69291,25.51181),(0,56.69291,12.7559),(0,42.51969,6.377957),(0,42.51969,4.251961)}
- },
- {
+ },
+ {
{(0,56.69291,25.51181),(0,56.69291,12.7559),(0,42.51969,6.377957),(0,42.51969,4.251961)},
{(31.74803,56.69291,25.51181),(31.74803,56.69291,12.7559),(23.81102,42.51969,6.377957),(23.81102,42.51969,4.251961)},
{(56.69291,31.74803,25.51181),(56.69291,31.74803,12.7559),(42.51969,23.81102,6.377957),(42.51969,23.81102,4.251961)},
{(56.69291,0,25.51181),(56.69291,0,12.7559),(42.51969,0,6.377957),(42.51969,0,4.251961)}
- },
- {
+ },
+ {
{(-45.35433,0,57.40157),(-65.19685,0,57.40157),(-76.53543,0,57.40157),(-76.53543,0,51.02362)},
{(-45.35433,-8.503932,57.40157),(-65.19685,-8.503932,57.40157),(-76.53543,-8.503932,57.40157),(-76.53543,-8.503932,51.02362)},
{(-42.51969,-8.503932,63.77952),(-70.86614,-8.503932,63.77952),(-85.03937,-8.503932,63.77952),(-85.03937,-8.503932,51.02362)},
{(-42.51969,0,63.77952),(-70.86614,0,63.77952),(-85.03937,0,63.77952),(-85.03937,0,51.02362)}
- },
- {
+ },
+ {
{(-42.51969,0,63.77952),(-70.86614,0,63.77952),(-85.03937,0,63.77952),(-85.03937,0,51.02362)},
{(-42.51969,8.503932,63.77952),(-70.86614,8.503932,63.77952),(-85.03937,8.503932,63.77952),(-85.03937,8.503932,51.02362)},
{(-45.35433,8.503932,57.40157),(-65.19685,8.503932,57.40157),(-76.53543,8.503932,57.40157),(-76.53543,8.503932,51.02362)},
{(-45.35433,0,57.40157),(-65.19685,0,57.40157),(-76.53543,0,57.40157),(-76.53543,0,51.02362)}
- },
- {
+ },
+ {
{(-76.53543,0,51.02362),(-76.53543,0,44.64566),(-70.86614,0,31.88976),(-56.69291,0,25.51181)},
{(-76.53543,-8.503932,51.02362),(-76.53543,-8.503932,44.64566),(-70.86614,-8.503932,31.88976),(-56.69291,-8.503932,25.51181)},
{(-85.03937,-8.503932,51.02362),(-85.03937,-8.503932,38.26771),(-75.11811,-8.503932,26.5748),(-53.85826,-8.503932,17.00787)},
{(-85.03937,0,51.02362),(-85.03937,0,38.26771),(-75.11811,0,26.5748),(-53.85826,0,17.00787)}
- },
- {
+ },
+ {
{(-85.03937,0,51.02362),(-85.03937,0,38.26771),(-75.11811,0,26.5748),(-53.85826,0,17.00787)},
{(-85.03937,8.503932,51.02362),(-85.03937,8.503932,38.26771),(-75.11811,8.503932,26.5748),(-53.85826,8.503932,17.00787)},
{(-76.53543,8.503932,51.02362),(-76.53543,8.503932,44.64566),(-70.86614,8.503932,31.88976),(-56.69291,8.503932,25.51181)},
{(-76.53543,0,51.02362),(-76.53543,0,44.64566),(-70.86614,0,31.88976),(-56.69291,0,25.51181)}
- },
- {
+ },
+ {
{(48.18897,0,40.3937),(73.70078,0,40.3937),(65.19685,0,59.52755),(76.53543,0,68.0315)},
{(48.18897,-18.70866,40.3937),(73.70078,-18.70866,40.3937),(65.19685,-7.086619,59.52755),(76.53543,-7.086619,68.0315)},
{(48.18897,-18.70866,17.00787),(87.87401,-18.70866,23.38582),(68.0315,-7.086619,57.40157),(93.5433,-7.086619,68.0315)},
{(48.18897,0,17.00787),(87.87401,0,23.38582),(68.0315,0,57.40157),(93.5433,0,68.0315)}
- },
- {
+ },
+ {
{(48.18897,0,17.00787),(87.87401,0,23.38582),(68.0315,0,57.40157),(93.5433,0,68.0315)},
{(48.18897,18.70866,17.00787),(87.87401,18.70866,23.38582),(68.0315,7.086619,57.40157),(93.5433,7.086619,68.0315)},
{(48.18897,18.70866,40.3937),(73.70078,18.70866,40.3937),(65.19685,7.086619,59.52755),(76.53543,7.086619,68.0315)},
{(48.18897,0,40.3937),(73.70078,0,40.3937),(65.19685,0,59.52755),(76.53543,0,68.0315)}
- },
- {
+ },
+ {
{(76.53543,0,68.0315),(79.37007,0,70.15748),(82.20472,0,70.15748),(79.37007,0,68.0315)},
{(76.53543,-7.086619,68.0315),(79.37007,-7.086619,70.15748),(82.20472,-4.251961,70.15748),(79.37007,-4.251961,68.0315)},
{(93.5433,-7.086619,68.0315),(99.92125,-7.086619,70.68897),(97.79527,-4.251961,71.22047),(90.70866,-4.251961,68.0315)},
{(93.5433,0,68.0315),(99.92125,0,70.68897),(97.79527,0,71.22047),(90.70866,0,68.0315)}
- },
- {
+ },
+ {
{(93.5433,0,68.0315),(99.92125,0,70.68897),(97.79527,0,71.22047),(90.70866,0,68.0315)},
{(93.5433,7.086619,68.0315),(99.92125,7.086619,70.68897),(97.79527,4.251961,71.22047),(90.70866,4.251961,68.0315)},
{(76.53543,7.086619,68.0315),(79.37007,7.086619,70.15748),(82.20472,4.251961,70.15748),(79.37007,4.251961,68.0315)},
{(76.53543,0,68.0315),(79.37007,0,70.15748),(82.20472,0,70.15748),(79.37007,0,68.0315)}
- },
- {
+ },
+ {
+ {(5.669294,0,76.53543),(11.33858,0,72.28346),(36.85039,0,72.28346),(36.85039,0,68.0315)},
+ {(5.669294,-3.174809,76.53543),(11.33858,-6.349609,72.28346),(36.85039,-20.63622,72.28346),(36.85039,-20.63622,68.0315)},
+ {(3.174809,-5.669294,76.53543),(6.349609,-11.33858,72.28346),(20.63622,-36.85039,72.28346),(20.63622,-36.85039,68.0315)},
+ {(0,-5.669294,76.53543),(0,-11.33858,72.28346),(0,-36.85039,72.28346),(0,-36.85039,68.0315)}
+ },
+ {
+ {(0,-5.669294,76.53543),(0,-11.33858,72.28346),(0,-36.85039,72.28346),(0,-36.85039,68.0315)},
+ {(-3.174809,-5.669294,76.53543),(-6.349609,-11.33858,72.28346),(-20.63622,-36.85039,72.28346),(-20.63622,-36.85039,68.0315)},
+ {(-5.669294,-3.174809,76.53543),(-11.33858,-6.349609,72.28346),(-36.85039,-20.63622,72.28346),(-36.85039,-20.63622,68.0315)},
+ {(-5.669294,0,76.53543),(-11.33858,0,72.28346),(-36.85039,0,72.28346),(-36.85039,0,68.0315)},
+ },
+ {
+ {(-5.669294,0,76.53543),(-11.33858,0,72.28346),(-36.85039,0,72.28346),(-36.85039,0,68.0315)},
+ {(-5.669294,3.174809,76.53543),(-11.33858,6.349609,72.28346),(-36.85039,20.63622,72.28346),(-36.85039,20.63622,68.0315)},
+ {(-3.174809,5.669294,76.53543),(-6.349609,11.33858,72.28346),(-20.63622,36.85039,72.28346),(-20.63622,36.85039,68.0315)},
+ {(0,5.669294,76.53543),(0,11.33858,72.28346),(0,36.85039,72.28346),(0,36.85039,68.0315)}
+ },
+ {
+ {(0,5.669294,76.53543),(0,11.33858,72.28346),(0,36.85039,72.28346),(0,36.85039,68.0315)},
+ {(3.174809,5.669294,76.53543),(6.349609,11.33858,72.28346),(20.63622,36.85039,72.28346),(20.63622,36.85039,68.0315)},
+ {(5.669294,3.174809,76.53543),(11.33858,6.349609,72.28346),(36.85039,20.63622,72.28346),(36.85039,20.63622,68.0315)},
+ {(5.669294,0,76.53543),(11.33858,0,72.28346),(36.85039,0,72.28346),(36.85039,0,68.0315)}
+ }
+};
+
+triple[][][] Q0={
+ {
{(0,0,89.29133),(22.67716,0,89.29133),(0,0,80.7874),(5.669294,0,76.53543)},
{(0,0,89.29133),(22.67716,-12.7559,89.29133),(0,0,80.7874),(5.669294,-3.174809,76.53543)},
{(0,0,89.29133),(12.7559,-22.67716,89.29133),(0,0,80.7874),(3.174809,-5.669294,76.53543)},
{(0,0,89.29133),(0,-22.67716,89.29133),(0,0,80.7874),(0,-5.669294,76.53543)}
- },
- {
+ },
+ {
{(0,0,89.29133),(0,-22.67716,89.29133),(0,0,80.7874),(0,-5.669294,76.53543)},
{(0,0,89.29133),(-12.7559,-22.67716,89.29133),(0,0,80.7874),(-3.174809,-5.669294,76.53543)},
{(0,0,89.29133),(-22.67716,-12.7559,89.29133),(0,0,80.7874),(-5.669294,-3.174809,76.53543)},
{(0,0,89.29133),(-22.67716,0,89.29133),(0,0,80.7874),(-5.669294,0,76.53543)}
- },
- {
+ },
+ {
{(0,0,89.29133),(-22.67716,0,89.29133),(0,0,80.7874),(-5.669294,0,76.53543)},
{(0,0,89.29133),(-22.67716,12.7559,89.29133),(0,0,80.7874),(-5.669294,3.174809,76.53543)},
{(0,0,89.29133),(-12.7559,22.67716,89.29133),(0,0,80.7874),(-3.174809,5.669294,76.53543)},
{(0,0,89.29133),(0,22.67716,89.29133),(0,0,80.7874),(0,5.669294,76.53543)}
- },
- {
+ },
+ {
{(0,0,89.29133),(0,22.67716,89.29133),(0,0,80.7874),(0,5.669294,76.53543)},
{(0,0,89.29133),(12.7559,22.67716,89.29133),(0,0,80.7874),(3.174809,5.669294,76.53543)},
{(0,0,89.29133),(22.67716,12.7559,89.29133),(0,0,80.7874),(5.669294,3.174809,76.53543)},
{(0,0,89.29133),(22.67716,0,89.29133),(0,0,80.7874),(5.669294,0,76.53543)}
- },
- {
- {(5.669294,0,76.53543),(11.33858,0,72.28346),(36.85039,0,72.28346),(36.85039,0,68.0315)},
- {(5.669294,-3.174809,76.53543),(11.33858,-6.349609,72.28346),(36.85039,-20.63622,72.28346),(36.85039,-20.63622,68.0315)},
- {(3.174809,-5.669294,76.53543),(6.349609,-11.33858,72.28346),(20.63622,-36.85039,72.28346),(20.63622,-36.85039,68.0315)},
- {(0,-5.669294,76.53543),(0,-11.33858,72.28346),(0,-36.85039,72.28346),(0,-36.85039,68.0315)}
- },
- {
- {(0,-5.669294,76.53543),(0,-11.33858,72.28346),(0,-36.85039,72.28346),(0,-36.85039,68.0315)},
- {(-3.174809,-5.669294,76.53543),(-6.349609,-11.33858,72.28346),(-20.63622,-36.85039,72.28346),(-20.63622,-36.85039,68.0315)},
- {(-5.669294,-3.174809,76.53543),(-11.33858,-6.349609,72.28346),(-36.85039,-20.63622,72.28346),(-36.85039,-20.63622,68.0315)},
- {(-5.669294,0,76.53543),(-11.33858,0,72.28346),(-36.85039,0,72.28346),(-36.85039,0,68.0315)},
- },
- {
- {(-5.669294,0,76.53543),(-11.33858,0,72.28346),(-36.85039,0,72.28346),(-36.85039,0,68.0315)},
- {(-5.669294,3.174809,76.53543),(-11.33858,6.349609,72.28346),(-36.85039,20.63622,72.28346),(-36.85039,20.63622,68.0315)},
- {(-3.174809,5.669294,76.53543),(-6.349609,11.33858,72.28346),(-20.63622,36.85039,72.28346),(-20.63622,36.85039,68.0315)},
- {(0,5.669294,76.53543),(0,11.33858,72.28346),(0,36.85039,72.28346),(0,36.85039,68.0315)}
- },
- {
- {(0,5.669294,76.53543),(0,11.33858,72.28346),(0,36.85039,72.28346),(0,36.85039,68.0315)},
- {(3.174809,5.669294,76.53543),(6.349609,11.33858,72.28346),(20.63622,36.85039,72.28346),(20.63622,36.85039,68.0315)},
- {(5.669294,3.174809,76.53543),(11.33858,6.349609,72.28346),(36.85039,20.63622,72.28346),(36.85039,20.63622,68.0315)},
- {(5.669294,0,76.53543),(11.33858,0,72.28346),(36.85039,0,72.28346),(36.85039,0,68.0315)},
- },
- {
+ },
+ {
{(0,0,0),(40.3937,0,0),(42.51969,0,2.12598),(42.51969,0,4.251961)},
{(0,0,0),(40.3937,22.62047,0),(42.51969,23.81102,2.12598),(42.51969,23.81102,4.251961)},
{(0,0,0),(22.62047,40.3937,0),(23.81102,42.51969,2.12598),(23.81102,42.51969,4.251961)},
{(0,0,0),(0,40.3937,0),(0,42.51969,2.12598),(0,42.51969,4.251961)}
- },
- {
+ },
+ {
{(0,0,0),(0,40.3937,0),(0,42.51969,2.12598),(0,42.51969,4.251961)},
{(0,0,0),(-22.62047,40.3937,0),(-23.81102,42.51969,2.12598),(-23.81102,42.51969,4.251961)},
{(0,0,0),(-40.3937,22.62047,0),(-42.51969,23.81102,2.12598),(-42.51969,23.81102,4.251961)},
{(0,0,0),(-40.3937,0,0),(-42.51969,0,2.12598),(-42.51969,0,4.251961)}
- },
- {
+ },
+ {
{(0,0,0),(-40.3937,0,0),(-42.51969,0,2.12598),(-42.51969,0,4.251961)},
{(0,0,0),(-40.3937,-22.62047,0),(-42.51969,-23.81102,2.12598),(-42.51969,-23.81102,4.251961)},
{(0,0,0),(-22.62047,-40.3937,0),(-23.81102,-42.51969,2.12598),(-23.81102,-42.51969,4.251961)},
{(0,0,0),(0,-40.3937,0),(0,-42.51969,2.12598),(0,-42.51969,4.251961)}
- },
- {
+ },
+ {
{(0,0,0),(0,-40.3937,0),(0,-42.51969,2.12598),(0,-42.51969,4.251961)},
{(0,0,0),(22.62047,-40.3937,0),(23.81102,-42.51969,2.12598),(23.81102,-42.51969,4.251961)},
{(0,0,0),(40.3937,-22.62047,0),(42.51969,-23.81102,2.12598),(42.51969,-23.81102,4.251961)},
{(0,0,0),(40.3937,0,0),(42.51969,0,2.12598),(42.51969,0,4.251961)}
- }
- };
+ }
+};
+
+surface regularize(triple[][] P, real fraction=0.02)
+{
+ triple[][][] B=hsplit(P,fraction);
+ triple[][] T=B[0];
+ surface s=surface(T[0][0]..controls T[0][1] and T[0][2]..
+ T[0][3]..controls T[1][3] and T[2][3]..
+ T[3][3]..controls T[3][2] and T[3][1]..cycle);
+ s.append(surface(patch(B[1])));
+ return s;
+}
+
+surface S=surface(Q);
+for(triple[][] q : Q0)
+ S.append(regularize(q));
+
+pen color;
+real metallic;
+
+if(settings.ibl) {
+ color=white;
+ metallic=1;
+} else {
+ color=blue;
+ metallic=0;
+}
-draw(surface(Q),material(blue, shininess=0.85, metallic=0),render(compression=Low));
+draw(S,material(color,shininess=0.85,metallic=metallic),
+ render(compression=Single));
diff --git a/Master/texmf-dist/doc/asymptote/examples/teapotIBL.asy b/Master/texmf-dist/doc/asymptote/examples/teapotIBL.asy
new file mode 100644
index 00000000000..bd6afe31102
--- /dev/null
+++ b/Master/texmf-dist/doc/asymptote/examples/teapotIBL.asy
@@ -0,0 +1,2 @@
+settings.ibl=true;
+import teapot;
diff --git a/Master/texmf-dist/doc/asymptote/examples/transparency.asy b/Master/texmf-dist/doc/asymptote/examples/transparency.asy
index 36e741d294d..a01a87a4545 100644
--- a/Master/texmf-dist/doc/asymptote/examples/transparency.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/transparency.asy
@@ -1,8 +1,5 @@
size(0,150);
-if(settings.outformat == "")
- settings.outformat="pdf";
-
begingroup();
fill(shift(1.5dir(120))*unitcircle,green+opacity(0.75));
fill(shift(1.5dir(60))*unitcircle,red+opacity(0.75));
diff --git a/Master/texmf-dist/doc/asymptote/examples/twoSpheres.asy b/Master/texmf-dist/doc/asymptote/examples/twoSpheres.asy
new file mode 100644
index 00000000000..c043ae37315
--- /dev/null
+++ b/Master/texmf-dist/doc/asymptote/examples/twoSpheres.asy
@@ -0,0 +1,17 @@
+import three;
+import palette;
+
+size(20cm);
+
+currentprojection=orthographic(1,1,1);
+
+draw(box((-2,-2,-1),(2,2,1)));
+
+draw(shift(-Z)*surface(box((-2,-2),(2,2))),blue);
+draw(shift(Z)*surface(box((-2,-2),(2,2))),orange+opacity(0.5));
+
+surface s=unitsphere;
+s.colors(palette(s.map(zpart),Gradient(green+opacity(0.6),white,
+ green+opacity(0.6))));
+draw(shift(0.5X+0.5Y)*s);
+draw(shift(-0.5X-0.5Y)*s);
diff --git a/Master/texmf-dist/doc/asymptote/examples/workcone.asy b/Master/texmf-dist/doc/asymptote/examples/workcone.asy
index 594758bba64..da7629c773d 100644
--- a/Master/texmf-dist/doc/asymptote/examples/workcone.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/workcone.asy
@@ -20,7 +20,7 @@ render render=render(compression=0,merge=true);
draw(scale(x1,x1,-s1)*shift(-Z)*unitcone,lightblue+opacity(0.5),render);
-path3 p=(x2,0,s2)--(x,0,s+0.005);
+path3 p=(x2,0,s2)--(x,0,s);
revolution a=revolution(p,Z);
draw(surface(a),lightblue+opacity(0.5),render);
diff --git a/Master/texmf-dist/doc/info/asy-faq.info b/Master/texmf-dist/doc/info/asy-faq.info
index c651d233492..bfd11cacf0b 100644
--- a/Master/texmf-dist/doc/info/asy-faq.info
+++ b/Master/texmf-dist/doc/info/asy-faq.info
@@ -10,7 +10,7 @@ END-INFO-DIR-ENTRY
File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir)
ASYMPTOTE FREQUENTLY ASKED QUESTIONS
- 2021-03-15
+ 2022-02-05
This is the list of Frequently Asked Questions about Asymptote (asy).
diff --git a/Master/texmf-dist/doc/info/asymptote.info b/Master/texmf-dist/doc/info/asymptote.info
index 89903f69102..a6d3a7fedf5 100644
--- a/Master/texmf-dist/doc/info/asymptote.info
+++ b/Master/texmf-dist/doc/info/asymptote.info
@@ -1,11 +1,11 @@
-This is asymptote.info, produced by makeinfo version 6.6 from
+This is asymptote.info, produced by makeinfo version 6.7 from
asymptote.texi.
-This file documents 'Asymptote', version 2.70.
+This file documents 'Asymptote', version 2.78.
<https://asymptote.sourceforge.io>
- Copyright (C) 2004-20 Andy Hammerlindl, John Bowman, and Tom Prince.
+ Copyright (C) 2004-22 Andy Hammerlindl, John Bowman, and Tom Prince.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Lesser General Public License
@@ -22,11 +22,11 @@ File: asymptote.info, Node: Top, Next: Description, Prev: (dir), Up: (dir)
Asymptote
*********
-This file documents 'Asymptote', version 2.70.
+This file documents 'Asymptote', version 2.78.
<https://asymptote.sourceforge.io>
- Copyright (C) 2004-20 Andy Hammerlindl, John Bowman, and Tom Prince.
+ Copyright (C) 2004-22 Andy Hammerlindl, John Bowman, and Tom Prince.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Lesser General Public License
@@ -45,6 +45,8 @@ This file documents 'Asymptote', version 2.70.
* Options:: Command-line options
* Interactive mode:: Typing 'Asymptote' commands interactively
* GUI:: Graphical user interface
+* Command-Line Interface:: Remote command-line interface
+* Language server protocol:: Help when writing code
* PostScript to Asymptote:: 'Asymptote' backend to 'pstoedit'
* Help:: Where to get help and submit bug reports
* Debugger:: Squish those bugs!
@@ -174,13 +176,17 @@ provides a mathematical coordinate-based framework for technical
drawing. Labels and equations are typeset with 'LaTeX', for overall
document consistency, yielding the same high-quality level of
typesetting that 'LaTeX' provides for scientific text. By default it
-produces 'PostScript' output, but it can also generate 'PDF', 'SVG',
-'WebGL', 'PRC', and any format that the 'ImageMagick' package can
-produce. You can even try it out in your Web browser without installing
-it, using the 'Asymptote Web Application':
+produces 'PostScript' output, but it can also generate 'OpenGL', 'PDF',
+'SVG', 'WebGL', 'V3D', and 'PRC' vector graphics, along with any format
+that the 'ImageMagick' package can produce. You can even try it out in
+your Web browser without installing it, using the 'Asymptote Web
+Application'
<http://asymptote.ualberta.ca>
+ It is also possible to send remote commands to this server via the
+curl utility (*note Command-Line Interface::).
+
A major advantage of 'Asymptote' over other graphics packages is that
it is a high-level programming language, as opposed to just a graphics
program: it can therefore exploit the best features of the script
@@ -342,8 +348,8 @@ required to typeset labels. You will also need to install 'GPL
Ghostscript' version 9.52 or later from
<http://downloads.ghostscript.com/public>.
- To view 'PostScript' output, you can install the program 'gsview'
-available from <http://www.cs.wisc.edu/~ghost/gsview/>.
+ To view 'PostScript' output, you can install the program 'Sumatra
+PDF' available from <https://www.sumatrapdfreader.org/>.
The 'ImageMagick' package from
<https://www.imagemagick.org/script/binary-releases.php>
@@ -406,7 +412,7 @@ display 3D 'WebGL' output. The default setting is 'google-chrome' under
Explorer' does not support 'WebGL'; 'Microsoft Windows' users should set
their default html browser to 'chrome' or 'microsoft-edge'. By default,
2D and 3D 'HTML' images expand to the enclosing canvas; this can be
-disabled by setting the configuation variable 'absolute' to 'true'.
+disabled by setting the configuration variable 'absolute' to 'true'.
On 'UNIX' systems, to support automatic document reloading of 'PDF'
files in 'Adobe Reader', we recommend copying the file 'reload.js' from
@@ -971,7 +977,7 @@ frame legend(picture pic=currentpicture, int perline=1,
real xmargin=legendmargin, real ymargin=xmargin,
real linelength=legendlinelength,
real hskip=legendhskip, real vskip=legendvskip,
- real maxwidth=0, real maxheight=0,
+ real maxwidth=0, real maxheight=0,
bool hstretch=false, bool vstretch=false, pen p=currentpen);
Here 'xmargin' and 'ymargin' specify the surrounding x and y margins,
'perline' specifies the number of entries per line (default 1; 0 means
@@ -1257,7 +1263,7 @@ packed together into single frame with the routine
frame pack(pair align=2S ... object inset[]);
To draw or fill a box (or ellipse or other path) around a Label and
return the bounding object, use one of the routines
-object draw(picture pic=currentpicture, Label L, envelope e,
+object draw(picture pic=currentpicture, Label L, envelope e,
real xmargin=0, real ymargin=xmargin, pen p=currentpen,
filltype filltype=NoFill, bool above=true);
object draw(picture pic=currentpicture, Label L, envelope e, pair position,
@@ -2016,11 +2022,11 @@ File: asymptote.info, Node: Paths and guides, Next: Pens, Prev: Data types,
'path subpath(path p, int a, int b);'
returns the subpath of 'p' running from node 'a' to node 'b'.
- If 'a' < 'b', the direction of the subpath is reversed.
+ If 'a' > 'b', the direction of the subpath is reversed.
'path subpath(path p, real a, real b);'
returns the subpath of 'p' running from path time 'a' to path
- time 'b', in the sense of 'point(path, real)'. If 'a' < 'b',
+ time 'b', in the sense of 'point(path, real)'. If 'a' > 'b',
the direction of the subpath is reversed.
'real[] intersect(path p, path q, real fuzz=-1);'
@@ -3018,7 +3024,7 @@ File: asymptote.info, Node: Frames and pictures, Next: Files, Prev: Transform
The routine
void usepackage(string s, string options="");
provides a convenient abbreviation for
- texpreamble("\usepackage["+options+"]{"+s+"}");
+ texpreamble("\usepackage["+options+"]{"+s+"}");
that can be used for importing 'LaTeX' packages.

@@ -3436,7 +3442,7 @@ For convenience, the incremental fields 'change.user', 'change.system',
and 'change.clock' indicate the change in the corresponding fields since
the last call to 'cputime()'. The function
void write(file file=stdout, string s="", cputime c,
- string format=cputimeformat, suffix suffix=none);
+ string format=cputimeformat, suffix suffix=none);
displays the incremental user cputime followed by "u", the incremental
system cputime followed by "s", the total user cputime followed by "U",
and the total system cputime followed by "S".
@@ -3451,7 +3457,7 @@ struct parent {
}
void write(parent p) {write(p.x);}
-
+
struct child {
parent parent;
real y=3;
@@ -3462,7 +3468,7 @@ struct child {
}
parent operator cast(child child) {return child.parent;}
-
+
parent p=parent(1);
child c=child(2);
@@ -3683,13 +3689,13 @@ reference, simply enclose it in a structure (*note Structures::).
1. Variables with signatures (functions) and without signatures
(nonfunction variables) are distinct:
- int x, x();
+ int x, x();
x=5;
x=new int() {return 17;};
x=x(); // calls x() and puts the result, 17, in the scalar x
2. Traditional function definitions are allowed:
- int sqr(int x)
+ int sqr(int x)
{
return x*x;
}
@@ -3721,22 +3727,22 @@ reference, simply enclose it in a structure (*note Structures::).
version of 'f', as illustrated in this example:
void f() {
write("hi");
- }
-
+ }
+
void g() {
f();
- }
-
- g(); // writes "hi"
-
- f=new void() {write("bye");};
+ }
- g(); // writes "bye"
-
- void f() {write("overloaded");};
+ g(); // writes "hi"
+
+ f=new void() {write("bye");};
+
+ g(); // writes "bye"
+
+ void f() {write("overloaded");};
f(); // writes "overloaded"
- g(); // writes "bye"
+ g(); // writes "bye"
6. Anonymous functions can be used to redefine a function variable
that has been declared (and implicitly initialized to the null
@@ -3855,7 +3861,7 @@ Rest arguments allow one to write functions that take a variable number
of arguments:
// This function sums its arguments.
int sum(... int[] nums) {
- int total=0;
+ int total=0;
for(int i=0; i < nums.length; ++i)
total += nums[i];
return total;
@@ -4145,6 +4151,10 @@ of type 'T[]'.
if 'm >= n' returns an array '{n,n+1,...,m}' (otherwise returns a
null array);
+'int[] sequence(int n, int m, int skip)'
+ if 'm >= n' returns an array '{n,n+1,...,m}' skipping by 'skip'
+ (otherwise returns a null array);
+
'T[] sequence(T f(int), int n)'
if 'n >= 1' returns the sequence '{f_i :i=0,1,...n-1}' given a
function 'T f(int)' and integer 'int n' (otherwise returns a null
@@ -4606,19 +4616,19 @@ from graph access *;
Similarly, one can add the non-private fields and types of a
structure to the local environment with the 'unravel' keyword:
-struct matrix {
- real a,b,c,d;
-}
-
-real det(matrix m) {
- unravel m;
- return a*d-b*c;
-}
+struct matrix {
+ real a,b,c,d;
+}
+
+real det(matrix m) {
+ unravel m;
+ return a*d-b*c;
+}
Alternatively, one can unravel selective fields:
-real det(matrix m) {
+real det(matrix m) {
from m unravel a,b,c as C,d;
- return a*d-b*C;
-}
+ return a*d-b*C;
+}
The command
import graph;
@@ -4927,6 +4937,7 @@ labels might not show up in DVI viewers that cannot handle raw
\begin{asydef}
// Global Asymptote definitions can be put here.
+settings.prc=true;
import three;
usepackage("bm");
texpreamble("\def\V#1{\bm{#1}}");
@@ -5127,24 +5138,24 @@ functions such as
returns the four complex roots of the quartic equation
ax^4+bx^3+cx^2+dx+e=0.
-'real time(path g, real x, int n=0)'
+'real time(path g, real x, int n=0, real fuzz=-1)'
returns the 'n'th intersection time of path 'g' with the vertical
line through x.
-'real time(path g, explicit pair z, int n=0)'
+'real time(path g, explicit pair z, int n=0, real fuzz=-1)'
returns the 'n'th intersection time of path 'g' with the horizontal
line through '(0,z.y)'.
-'real value(path g, real x, int n=0)'
+'real value(path g, real x, int n=0, real fuzz=-1)'
returns the 'n'th 'y' value of 'g' at 'x'.
-'real value(path g, explicit pair z, int n=0)'
+'real value(path g, explicit pair z, int n=0, real fuzz=-1)'
returns the 'n'th 'x' value of 'g' at 'y=z.y'.
-'real slope(path g, real x, int n=0)'
+'real slope(path g, real x, int n=0, real fuzz=-1)'
returns the 'n'th slope of 'g' at 'x'.
-'real slope(path g, explicit pair z, int n=0)'
+'real slope(path g, explicit pair z, int n=0, real fuzz=-1)'
returns the 'n'th slope of 'g' at 'y=z.y'.
int[][] segment(bool[] b) returns the indices of consecutive
@@ -5223,7 +5234,7 @@ This module implements 'PostScript' tiling patterns and includes several
convenient pattern generation routines.

-File: asymptote.info, Node: markers, Next: tree, Prev: patterns, Up: Base modules
+File: asymptote.info, Node: markers, Next: map, Prev: patterns, Up: Base modules
8.9 'markers'
=============
@@ -5290,7 +5301,7 @@ write(M.lookup("a"));
write(M.lookup("y"));

-File: asymptote.info, Node: tree, Next: binarytree, Prev: markers, Up: Base modules
+File: asymptote.info, Node: tree, Next: binarytree, Prev: map, Up: Base modules
8.11 'tree'
===========
@@ -5617,7 +5628,7 @@ following routines:
An axis can be drawn on a picture with one of the following commands:
* void xaxis(picture pic=currentpicture, Label L="", axis axis=YZero,
- real xmin=-infinity, real xmax=infinity, pen p=currentpen,
+ real xmin=-infinity, real xmax=infinity, pen p=currentpen,
ticks ticks=NoTicks, arrowbar arrow=None, bool above=false);
Draw an x axis on picture 'pic' from x='xmin' to x='xmax' using pen
@@ -5746,8 +5757,8 @@ following routines:
'LeftTicks', 'RightTicks', and 'Ticks' by passing explicit real
arrays 'Ticks' and (optionally) 'ticks' containing the locations of
the major and minor ticks, respectively:
- ticks LeftTicks(Label format="", ticklabel ticklabel=null,
- bool beginlabel=true, bool endlabel=true,
+ ticks LeftTicks(Label format="", ticklabel ticklabel=null,
+ bool beginlabel=true, bool endlabel=true,
real[] Ticks, real[] ticks=new real[],
real Size=0, real size=0, bool extend=false,
pen pTick=nullpen, pen ptick=nullpen)
@@ -5940,7 +5951,7 @@ following routines:
typedef real realfcn(real);
realfcn F(real p) {
return new real(real x) {return sin(p*x);};
- };
+ }
for(int i=1; i < 5; ++i)
draw(graph(F(i*pi),0,1),Pen(i),
@@ -5992,7 +6003,7 @@ following routines:
5. The next example draws two graphs of an array of coordinate pairs,
using frame alignment and data markers. In the left-hand graph,
the markers, constructed with
- marker marker(path g, markroutine markroutine=marknodes,
+ marker marker(path g, markroutine markroutine=marknodes,
pen p=currentpen, filltype filltype=NoFill,
bool above=true);
using the path 'unitcircle' (*note filltype::), are drawn below
@@ -6018,13 +6029,13 @@ following routines:
marker(scale(circlescale)*unitcircle),
marker(polygon(3)),marker(polygon(4)),
marker(polygon(5)),marker(invert*polygon(3)),
- marker(cross(4)),marker(cross(6))
+ marker(cross(4)),marker(cross(6)),marker(diamond),marker(plus);
};
marker[] MarkFill={
marker(scale(circlescale)*unitcircle,Fill),marker(polygon(3),Fill),
marker(polygon(4),Fill),marker(polygon(5),Fill),
- marker(invert*polygon(3),Fill)
+ marker(invert*polygon(3),Fill),marker(diamond,Fill)
};
The example also illustrates the 'errorbar' routines:
@@ -6179,6 +6190,26 @@ following routines:
[./parametricgraph]
+ The function
+ guide graphwithderiv(pair f(real), pair fprime(real), real a, real b,
+ int n=ngraph#10);
+ can be used to construct the graph of the parametric function 'f'
+ on '[a,b]' with the control points of the 'n' Bezier segments
+ determined by the specified derivative 'fprime':
+ unitsize(2cm);
+ import graph;
+ pair F(real t) {
+ return (1.3*t,-4.5*t^2+3.0*t+1.0);
+ }
+ pair Fprime(real t) {
+ return (1.3,-9.0*t+3.0);
+ }
+ path g=graphwithderiv(F,Fprime,0,0.9,4);
+ dot(g,red);
+ draw(g,arrow=Arrow(TeXHead));
+
+ [./graphwithderiv]
+
The next example illustrates how one can extract a common axis
scaling factor.
import graph;
@@ -6392,7 +6423,7 @@ following routines:
real[][] a=in;
a=transpose(a);
real[] t=a[0], susceptible=a[1], infectious=a[2], dead=a[3], larvae=a[4];
- real[] susceptibleM=a[5], exposed=a[6],infectiousM=a[7];
+ real[] susceptibleM=a[5], exposed=a[6], infectiousM=a[7];
scale(true);
@@ -6410,7 +6441,6 @@ following routines:
add(secondary);
label(shift(5mm*N)*"Proportion of crows",point(NW),E);
-
[./secondaryaxis]
@@ -6617,12 +6647,14 @@ these palettes to the CMYK colorspace.
function 'f'(x,y) and added to a picture 'pic':
bounds image(picture pic=currentpicture, real f(real, real),
range range=Full, pair initial, pair final,
- int nx=ngraph, int ny=nx, pen[] palette, bool antialias=false)
+ int nx=ngraph, int ny=nx, pen[] palette, int divs=0,
+ bool antialias=false)
The function 'f' will be sampled at 'nx' and 'ny' evenly spaced
points over a rectangle defined by the points 'initial' and 'final',
respecting the current graphical scaling of 'pic'. The color space is
-scaled according to the z axis scaling (*note automatic scaling::). A
-bounds structure for the function values is returned:
+scaled according to the z axis scaling (*note automatic scaling::). If
+'divs' > 1, the palette is quantized to 'divs'-1 values. A 'bounds'
+structure for the function values is returned:
struct bounds {
real min;
real max;
@@ -6634,14 +6666,15 @@ The palette color space corresponds to a range of values specified by
the argument 'range', which can be 'Full', 'Automatic', or an explicit
range 'Range(real min, real max)'. Here 'Full' specifies a range
varying from the minimum to maximum values of the function over the
-sampling interval, while 'Automatic' selects "nice" limits. The example
-'imagecontour.asy' illustrates how level sets (contour lines) can be
-drawn on a color density plot (*note contour::).
+sampling interval, while 'Automatic' selects "nice" limits. The
+examples 'fillcontour.asy' and 'imagecontour.asy' illustrate how level
+sets (contour lines) can be drawn on a color density plot (*note
+contour::).
A color density plot can also be generated from an explicit real[][]
array 'data':
bounds image(picture pic=currentpicture, real[][] f, range range=Full,
- pair initial, pair final, pen[] palette,
+ pair initial, pair final, pen[] palette, int divs=0,
bool transpose=(initial.x < final.x && initial.y < final.y),
bool copy=true, bool antialias=false);
If the initial point is to the left and below the final point, by
@@ -6861,7 +6894,7 @@ model tree. Here material is a structure defined in 'three_light.asy':
struct material {
pen[] p; // diffusepen,emissivepen,specularpen
real opacity;
- real shininess;
+ real shininess;
real metallic;
real fresnel0;
}
@@ -6895,10 +6928,20 @@ transparent for all other formats. One can request a completely
transparent background for 3D 'WebGL' images with
'currentlight.background=black+opacity(0.0);'
+ Asymptote also supports image-based lighting with the setting
+'settings.ibl=true'. This uses pre-rendered EXR images from the
+directory specified by '-imageDir' (which defaults to 'ibl') or, for
+'WebGL' rendering, the URL specified by '-imageURL' (which defaults to
+<https://vectorgraphics.gitlab.io/asymptote/ibl>). Additional rendered
+images can be generated on an 'NVIDIA' GPU using the 'reflect' program
+in the 'cudareflect' subdirectory of the 'Asymptote' source directory.
+
Sample Bezier surfaces are contained in the example files
-'BezierSurface.asy', 'teapot.asy', and 'parametricsurface.asy'. The
-structure 'render' contains specialized rendering options documented at
-the beginning of module 'three'.
+'BezierSurface.asy', 'teapot.asy', 'teapotIBL.asy', and
+'parametricsurface.asy'.
+
+ The structure 'render' contains specialized rendering options
+documented at the beginning of module 'three'.
The examples 'elevation.asy' and 'sphericalharmonic.asy' illustrate
how to draw a surface with patch-dependent colors. The examples
@@ -6963,7 +7006,7 @@ given in the pen parameter or the setting 'thin' is set to 'false'. The
pens 'thin()' and 'thick()' defined in 'plain_pens.asy' can also be used
to override these defaults for specific draw commands.
-There are five choices for viewing 3D 'Asymptote' output:
+There are six choices for viewing 3D 'Asymptote' output:
1. Use the native 'Asymptote' adaptive 'OpenGL'-based renderer (with
the command-line option '-V' and the default settings
@@ -6992,7 +7035,7 @@ There are five choices for viewing 3D 'Asymptote' output:
* Ctrl Right: rotate about the Y axis
* Alt Right: rotate about the Z axis
- The keyboard shortcuts are:
+ The keyboard bindings are:
* h: home
* f: toggle fitscreen
* x: spin about the X axis
@@ -7019,11 +7062,8 @@ There are five choices for viewing 3D 'Asymptote' output:
'outformat="html"'). The resulting 3D HTML file can then be viewed
directly in any modern desktop or mobile browser, or even embedded
within another web page:
- <div>
- <object data="logo3.html"
- style="width:210;height:140;position:relative;top:0;left:0;">
- </object>
- </div>
+ <iframe src="logo3.html" width="561" height="321" frameborder="0">
+ </iframe>
Normally, 'WebGL' files generated by 'Asymptote' are dynamically
remeshed to fit the browser window dimensions. However, the
@@ -7059,34 +7099,47 @@ There are five choices for viewing 3D 'Asymptote' output:
setting the horizontal and vertical components of 'maxtiles' to
something less than your screen dimensions. The tile size is also
limited by the setting 'maxviewport', which restricts the maximum
- width and height of the viewport. On 'UNIX' systems some graphics
- drivers support batch mode ('-noV') rendering in an iconified
- window; this can be enabled with the setting 'iconify=true'.
+ width and height of the viewport. Some graphics drivers support
+ batch mode ('-noV') rendering in an iconified window; this can be
+ enabled with the setting 'iconify=true'.
4. Embed the 3D PRC format in a PDF file and view the resulting PDF
- file with version '9.0' or later of 'Adobe Reader'. In addition to
- the default 'settings.prc=true', this requires
- 'settings.outformat="pdf"', which can be specified by the command
- line option '-f pdf', put in the 'Asymptote' configuration file
- (*note configuration file::), or specified in the script before
- module 'three' (or 'graph3') is imported. The 'media9' LaTeX
- package is also required (*note embed::). The example '100d.asy'
- illustrates how one can generate a list of predefined views (see
- '100d.views'). A stationary preview image with a resolution of 'n'
- pixels per 'bp' can be embedded with the setting 'render=n'; this
- allows the file to be viewed with other 'PDF' viewers.
- Alternatively, the file 'externalprc.tex' illustrates how the
- resulting PRC and rendered image files can be extracted and
- processed in a separate 'LaTeX' file. However, see *note LaTeX
- usage:: for an easier way to embed three-dimensional 'Asymptote'
- pictures within 'LaTeX'. For specialized applications where only
- the raw PRC file is required, specify 'settings.outformat="prc"'.
- The PRC specification is available from
+ file with version '9.0' or later of 'Adobe Reader'. This requires
+ 'settings.outformat="pdf"' and 'settings.prc=true', which can be
+ specified by the command-line options '-f pdf' and '-f prc', put in
+ the 'Asymptote' configuration file (*note configuration file::), or
+ specified in the script before module 'three' (or 'graph3') is
+ imported. The 'media9' LaTeX package is also required (*note
+ embed::). The example '100d.asy' illustrates how one can generate
+ a list of predefined views (see '100d.views'). A stationary
+ preview image with a resolution of 'n' pixels per 'bp' can be
+ embedded with the setting 'render=n'; this allows the file to be
+ viewed with other 'PDF' viewers. Alternatively, the file
+ 'externalprc.tex' illustrates how the resulting PRC and rendered
+ image files can be extracted and processed in a separate 'LaTeX'
+ file. However, see *note LaTeX usage:: for an easier way to embed
+ three-dimensional 'Asymptote' pictures within 'LaTeX'. For
+ specialized applications where only the raw PRC file is required,
+ specify 'settings.outformat="prc"'. The PRC specification is
+ available from
<https://web.archive.org/web/20081204104459/http://livedocs.adobe.com/acrobat_sdk/9/Acrobat9_HTMLHelp/API_References/PRCReference/PRC_Format_Specification/>
- 5. Project the scene to a two-dimensional vector (EPS or PDF) format
- with 'render=0'. Only limited hidden surface removal facilities
- are currently available with this approach (*note PostScript3D::).
+ 5. Output a 'V3D' portable compressed binary file for viewing with an
+ external viewer or conversion to an alternate 3D format with the
+ Python 'pyv3d' library. The 'V3D' specification and the 'pyv3d'
+ library are available at <https://gitlab.com/vectorgraphics/v3d>.
+ A 'V3D' file 'file.v3d' may be imported and viewed by 'Asymptote'
+ either by specifying 'file.v3d' on the command line
+ asy -V file.v3d
+ or using the 'v3d' module and 'importv3d' function in interactive
+ mode (or within an 'Asymptote' file):
+ import v3d;
+ importv3d("file.v3d");
+
+ 6. Project the scene to a two-dimensional vector (EPS or PDF) format
+ with 'render=0'. Only limited support for hidden surface removal,
+ lighting, and transparency is available with this approach (*note
+ PostScript3D::).
Automatic picture sizing in three dimensions is accomplished with
double deferred drawing. The maximal desired dimensions of the scene in
@@ -7196,11 +7249,7 @@ These projections to two dimensions are predefined:
This projects from three to two dimensions, taking account of
perspective, as seen from the location 'camera' looking at
'target', orienting the camera so that, if possible, the vector
- 'up' points upwards. If 'render=0', projection of
- three-dimensional cubic Bezier splines is implemented by
- approximating a two-dimensional nonuniform rational B-spline
- (NURBS) with a two-dimensional Bezier curve containing additional
- nodes and control points. If 'autoadjust=true', the camera will
+ 'up' points upwards. If 'autoadjust=true', the camera will
automatically be adjusted to lie outside the bounding volume for
all possible interactive rotations about 'target'. If
'center=true', the target will be adjusted to the center of the
@@ -7499,7 +7548,7 @@ Analogous routines 'yaxis' and 'zaxis' can be used to draw y and z axes
in three dimensions. There is also a routine for drawing all three
axis:
void axes3(picture pic=currentpicture,
- Label xlabel="", Label ylabel="", Label zlabel="",
+ Label xlabel="", Label ylabel="", Label zlabel="",
bool extend=false,
triple min=(-infinity,-infinity,-infinity),
triple max=(infinity,infinity,infinity),
@@ -7957,13 +8006,57 @@ draw(Labels,contour(f,(-1,-1),(1,1),c),p);
[./multicontour]
- The next example illustrates how contour lines can be drawn on color
-density images:
+ The next examples illustrates how contour lines can be drawn on color
+density images, with and without palette quantization:
import graph;
import palette;
import contour;
-size(10cm,10cm,IgnoreAspect);
+size(10cm,10cm);
+
+pair a=(0,0);
+pair b=(2pi,2pi);
+
+real f(real x, real y) {return cos(x)*sin(y);}
+
+int N=200;
+int Divs=10;
+int divs=1;
+int n=Divs*divs;
+
+defaultpen(1bp);
+pen Tickpen=black;
+pen tickpen=gray+0.5*linewidth(currentpen);
+pen[] Palette=quantize(BWRainbow(),n);
+
+bounds range=image(f,Automatic,a,b,3N,Palette,n);
+
+real[] Cvals=uniform(range.min,range.max,Divs);
+draw(contour(f,a,b,Cvals,N,operator --),Tickpen+squarecap+beveljoin);
+
+// Major contours
+real[] Cvals=uniform(range.min,range.max,Divs);
+draw(contour(f,a,b,Cvals,N,operator --),Tickpen+squarecap+beveljoin);
+
+// Minor contours (if divs > 1)
+real[] cvals;
+for(int i=0; i < Cvals.length-1; ++i)
+ cvals.append(uniform(Cvals[i],Cvals[i+1],divs)[1:divs]);
+draw(contour(f,a,b,cvals,N,operator --),tickpen);
+
+xaxis("$x$",BottomTop,LeftTicks,above=true);
+yaxis("$y$",LeftRight,RightTicks,above=true);
+
+palette("$f(x,y)$",range,point(SE)+(0.5,0),point(NE)+(1,0),Right,Palette,
+ PaletteTicks("$%+#0.1f$",N=Divs,n=divs,Tickpen,tickpen));
+
+ [./fillcontour]
+
+import graph;
+import palette;
+import contour;
+
+size(10cm,10cm);
pair a=(0,0);
pair b=(2pi,2pi);
@@ -7972,7 +8065,7 @@ real f(real x, real y) {return cos(x)*sin(y);}
int N=200;
int Divs=10;
-int divs=2;
+int divs=1;
defaultpen(1bp);
pen Tickpen=black;
@@ -7982,21 +8075,20 @@ pen[] Palette=BWRainbow();
bounds range=image(f,Automatic,a,b,N,Palette);
// Major contours
-
real[] Cvals=uniform(range.min,range.max,Divs);
-draw(contour(f,a,b,Cvals,N,operator --),Tickpen);
+draw(contour(f,a,b,Cvals,N,operator --),Tickpen+squarecap+beveljoin);
-// Minor contours
+// Minor contours (if divs > 1)
real[] cvals;
for(int i=0; i < Cvals.length-1; ++i)
cvals.append(uniform(Cvals[i],Cvals[i+1],divs)[1:divs]);
-draw(contour(f,a,b,cvals,N,operator --),tickpen);
+draw(contour(f,a,b,cvals,N,operator --),tickpen+squarecap+beveljoin);
xaxis("$x$",BottomTop,LeftTicks,above=true);
yaxis("$y$",LeftRight,RightTicks,above=true);
-palette("$f(x,y)$",range,point(NW)+(0,0.5),point(NE)+(0,1),Top,Palette,
- PaletteTicks(N=Divs,n=divs,Tickpen,tickpen));
+palette("$f(x,y)$",range,point(SE)+(0.5,0),point(NE)+(1,0),Right,Palette,
+ PaletteTicks("$%+#0.1f$",N=Divs,n=divs,Tickpen,tickpen));
[./imagecontour]
@@ -8087,9 +8179,9 @@ not, then 'contour3' may be a better choice.
To construct the null surface of a function 'f(triple)' or
'ff(real,real,real)' over 'box(a,b)', use the routine
-surface implicitsurface(real f(triple)=null,
+surface implicitsurface(real f(triple)=null,
real ff(real,real,real)=null,
- triple a,
+ triple a,
triple b,
int n=nmesh,
bool keyword overlapedges=false,
@@ -8115,7 +8207,7 @@ File: asymptote.info, Node: slopefield, Next: ode, Prev: smoothcontour3, Up:
To draw a slope field for the differential equation dy/dx=f(x,y) (or
dy/dx=f(x)), use:
picture slopefield(real f(real,real), pair a, pair b,
- int nx=nmesh, int ny=nx,
+ int nx=nmesh, int ny=nx,
real tickfactor=0.5, pen p=currentpen,
arrowbar arrow=None);
Here, the points 'a' and 'b' are the lower left and upper right corners
@@ -8170,6 +8262,8 @@ Usage: ../asy [options] [file ...]
Options (negate by replacing - with -no):
+-GPUindexing Compute indexing partial sums on GPU [true]
+-GPUinterlock Use fragment shader interlock [true]
-V,-View View output; command-line only
-absolute Use absolute WebGL dimensions [false]
-a,-align C|B|T|Z Center, Bottom, Top, or Zero page alignment [C]
@@ -8194,8 +8288,8 @@ Options (negate by replacing - with -no):
-devicepixelratio n Ratio of physical to logical pixels [1]
-digits n Default output file precision [7]
-divisor n Garbage collect using purge(divisor=n) [2]
+-dvisvgmMultipleFiles dvisvgm supports multiple files [false]
-embed Embed rendered preview image [true]
--envmap Enable environment map image-based lighting (Experimental) [false]
-exitonEOF Exit interactive mode on EOF [true]
-fitscreen Fit rendered image to screen [true]
-framedelay ms Additional frame delay [0]
@@ -8205,7 +8299,10 @@ Options (negate by replacing - with -no):
-gray Convert all colors to grayscale [false]
-h,-help Show summary of options; command-line only
-historylines n Retain n lines of history [1000]
+-ibl Enable environment map image-based lighting [false]
-iconify Iconify rendering window [false]
+-image string Environment image name [snowyField]
+-imageDir string Environment image library directory [ibl]
-inlineimage Generate inline embedded image [false]
-inlinetex Generate inline TeX code [false]
-interactiveMask Mask fpu exceptions in interactive mode [true]
@@ -8217,6 +8314,8 @@ Options (negate by replacing - with -no):
-l,-listvariables List available global functions and variables [false]
-localhistory Use a local interactive history file [false]
-loop Loop 3D animations [false]
+-lossy Use single precision for V3D reals [false]
+-lsp Interactive mode for the Language Server Protocol [false]
-m,-mask Mask fpu exceptions; command-line only
-maxtile pair Maximum rendering tile size [(1024,768)]
-maxviewport pair Maximum viewport size [(0,0)]
@@ -8231,7 +8330,8 @@ Options (negate by replacing - with -no):
-pdfreload Automatically reload document in pdfviewer [false]
-pdfreloaddelay usec Delay before attempting initial pdf reload [750000]
-position pair Initial 3D rendering screen position [(0,0)]
--prc Embed 3D PRC graphics in PDF output [true]
+-prc Embed 3D PRC graphics in PDF output [false]
+-prerender resolution Prerender V3D objects (0 implies vector output) [0]
-prompt string Prompt [> ]
-prompt2 string Continuation prompt for multiline input [..]
-q,-quiet Suppress welcome text and noninteractive stdout [false]
@@ -8261,8 +8361,10 @@ Options (negate by replacing - with -no):
-viewportmargin pair Horizontal and vertical 3D viewport margin [(0.5,0.5)]
-wait Wait for child processes to finish before exiting [false]
-warn string Enable warning; command-line only
+-webgl2 Use webgl2 if available [false]
-where Show where listed variables are declared [false]
--xasy Special interactive mode for xasy [false]
+-wsl Run asy under the Windows Subsystem for Linux. [false]
+-xasy Interactive mode for xasy [false]
-zoomPinchCap limit WebGL maximum zoom pinch [100]
-zoomPinchFactor n WebGL zoom pinch sensitivity [10]
-zoomfactor factor Zoom step factor [1.05]
@@ -8357,7 +8459,7 @@ value '(0,0)' species center alignment.
'Asymptote' code on the command line as a string. It is not necessary
to terminate the string with a semicolon. Multiple '-c' options are
executed in the order they are given. For example
-asy -c 2+2 -c "sin(1)" -c "size(100); draw(unitsquare)"
+asy -c 2+2 -c "sin(1)" -c "size(100); draw(unitsquare)"
produces the output
4
0.841470984807897
@@ -8423,7 +8525,7 @@ using the symbol '%' in the next line input at the prompt. For example:
> currentpicture
<picture currentpicture>
> %.size(200,0)
->
+>
The '%' symbol, when used as a variable, is shorthand for the
identifier 'operator answer', which is set by the prompt after each
@@ -8476,7 +8578,7 @@ g.clip("unitcircle")
g.label("\"$O$\", (0,0), SW")

-File: asymptote.info, Node: GUI, Next: PostScript to Asymptote, Prev: Interactive mode, Up: Top
+File: asymptote.info, Node: GUI, Next: Command-Line Interface, Prev: Interactive mode, Up: Top
11 Graphical User Interface
***************************
@@ -8536,9 +8638,99 @@ added to another frame are not grouped together by default: their
elements will be individually deconstructed (*note add::).

-File: asymptote.info, Node: PostScript to Asymptote, Next: Help, Prev: GUI, Up: Top
+File: asymptote.info, Node: Command-Line Interface, Next: PostScript to Asymptote, Prev: GUI, Up: Top
+
+12 Command-Line Interface
+*************************
+
+'Asymptote' code may be sent to the <http://asymptote.ualberta.ca>
+server directly from the command line, specifying any options directly
+in the URL:
+
+ * SVG output:
+
+ 'curl --data-binary 'import venn;'
+ 'asymptote.ualberta.ca:10007?f=svg' | display -'
+
+ * HTML output:
+
+ 'curl --data-binary
+ @/usr/local/share/doc/asymptote/examples/Klein.asy
+ 'asymptote.ualberta.ca:10007' -o Klein.html'
+
+ * V3D output:
-12 'PostScript' to 'Asymptote'
+ 'curl --data-binary 'import teapot;'
+ 'asymptote.ualberta.ca:10007?f=v3d' -o teapot.v3d'
+
+ * PDF output with rendered bitmap at 2 pixels per bp:
+
+ 'curl --data-binary 'import teapot;'
+ 'asymptote.ualberta.ca:10007?f=pdf' -o teapot.pdf'
+
+ * PDF output with rendered bitmap at 4 pixels per bp:
+
+ 'curl --data-binary 'import teapot;'
+ 'asymptote.ualberta.ca:10007?f=pdf&render=4' -o teapot.pdf'
+
+ * PRC output:
+
+ 'curl --data-binary 'import teapot;'
+ 'asymptote.ualberta.ca:10007?f=pdf&prc' -o teapot.pdf'
+
+ * PRC output with rendered preview bitmap at 4 pixels per bp:
+
+ 'curl --data-binary 'import teapot;'
+ 'asymptote.ualberta.ca:10007?f=pdf&prc&render=4' -o teapot.pdf'
+
+ The source code for the command-line interface is available at
+<https://github.com/vectorgraphics/asymptote-http-server>.
+
+
+File: asymptote.info, Node: Language server protocol, Next: PostScript to Asymptote, Prev: Command-Line Interface, Up: Top
+
+13 Language server protocol
+***************************
+
+Under 'UNIX' and 'MacOS X', 'Asymptote' supports features of the
+Language Server Protocol (LSP)
+(https://en.wikipedia.org/wiki/Language_Server_Protocol), including
+function signature and variable matching. Under 'MSWindows',
+'Asymptote' currently supports LSP only when compiled within the
+'Windows Subsystem for Linux'.
+
+ 'Emacs' users can enable the 'Asymptote' language server protocol by
+installing 'lsp-mode' using the following procedure:
+
+ * Add to the '.emacs' initialization file:
+ (require 'package)
+ (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
+ (package-initialize)
+
+ * Launch emacs and execute
+ M-x package-refresh-contents
+ M-x package-install
+ and select 'lsp-mode'.
+
+ * Add to the '.emacs' initialization file:
+ (require 'lsp-mode)
+ (add-to-list 'lsp-language-id-configuration '(asy-mode . "asymptote"))
+
+ (lsp-register-client
+ (make-lsp-client :new-connection (lsp-stdio-connection '("asy" "-lsp"))
+ :activation-fn (lsp-activate-on "asymptote")
+ :major-modes '(asy-mode)
+ :server-id 'asyls
+ )
+ )
+
+ * Launch emacs and execute
+ M-x lsp
+
+
+File: asymptote.info, Node: PostScript to Asymptote, Next: Help, Prev: Command-Line Interface, Up: Top
+
+14 'PostScript' to 'Asymptote'
******************************
The excellent 'PostScript' editor 'pstoedit' (version 3.50 or later;
@@ -8557,7 +8749,7 @@ If the line widths aren't quite correct, try giving 'pstoedit' the

File: asymptote.info, Node: Help, Next: Debugger, Prev: PostScript to Asymptote, Up: Top
-13 Help
+15 Help
*******
A list of frequently asked questions (FAQ) is maintained at
@@ -8591,7 +8783,7 @@ generates such segmentation faults along with your bug report).

File: asymptote.info, Node: Debugger, Next: Credits, Prev: Help, Up: Top
-14 Debugger
+16 Debugger
***********
Asymptote now includes a line-based (as opposed to code-based) debugger
@@ -8657,7 +8849,7 @@ void breakpoint(code s=quote{});

File: asymptote.info, Node: Credits, Next: Index, Prev: Debugger, Up: Top
-15 Acknowledgments
+17 Acknowledgments
******************
Financial support for the development of 'Asymptote' was generously
@@ -8673,11 +8865,13 @@ author of the program 'MetaPost' that inspired the development of
The authors of 'Asymptote' are Andy Hammerlindl, John Bowman, and Tom
Prince. Sean Healy designed the 'Asymptote' logo. Other contributors
include Orest Shardt, Jesse Frohlich, Michail Vidiassov, Charles Staats,
-Philippe Ivaldi, Olivier Guibe', Radoslav Marinov, Jeff Samuelson, Chris
+Philippe Ivaldi, Olivier Guibé, Radoslav Marinov, Jeff Samuelson, Chris
Savage, Jacques Pienaar, Mark Henning, Steve Melenchuk, Martin Wiebusch,
-Stefan Knorr, and Supakorn "Jamie" Rassameemasmuang. Pedram Emami
-developed the 'Asymptote Web Application' at
-<http://asymptote.ualberta.ca>.
+Stefan Knorr, Supakorn "Jamie" Rassameemasmuang, Jacob Skitsko, Joseph
+Chaumont, and Oliver Cheng. Pedram Emami developed the 'Asymptote Web
+Application' hosted at <http://asymptote.ualberta.ca>:
+
+ <https://github.com/vectorgraphics/asymptoteWebApplication>

File: asymptote.info, Node: Index, Prev: Credits, Up: Top
@@ -8727,9 +8921,9 @@ Index
* ---: Bezier curves. (line 84)
* -=: Self & prefix operators.
(line 6)
-* -c: Options. (line 195)
-* -l: Options. (line 214)
-* -u: Options. (line 205)
+* -c: Options. (line 205)
+* -l: Options. (line 224)
+* -u: Options. (line 215)
* -V: Configuring. (line 6)
* -V <1>: Drawing in batch mode.
(line 16)
@@ -8742,7 +8936,7 @@ Index
* 2D graphs: graph. (line 6)
* 3D graphs: graph3. (line 6)
* 3D grids: grid3. (line 6)
-* 3D PostScript: three. (line 639)
+* 3D PostScript: three. (line 655)
* :: Arithmetic & logical.
(line 61)
* ::: Bezier curves. (line 70)
@@ -8779,9 +8973,10 @@ Index
* abs2: Data types. (line 65)
* abs2 <1>: Data types. (line 144)
* absolute: Configuring. (line 43)
+* absolute <1>: three. (line 241)
* accel: Paths and guides. (line 126)
* accel <1>: Paths and guides. (line 132)
-* accel <2>: three. (line 540)
+* accel <2>: three. (line 556)
* access: Import. (line 6)
* access <1>: Import. (line 45)
* acknowledgments: Credits. (line 6)
@@ -8795,8 +8990,8 @@ Index
(line 217)
* add <1>: Frames and pictures.
(line 231)
-* add <2>: three. (line 312)
-* addViews: three. (line 433)
+* add <2>: three. (line 332)
+* addViews: three. (line 449)
* adjust: Pens. (line 123)
* Ai: Mathematical functions.
(line 48)
@@ -8805,10 +9000,10 @@ Index
* Ai_deriv: Mathematical functions.
(line 48)
* alias: Structures. (line 62)
-* alias <1>: Arrays. (line 179)
+* alias <1>: Arrays. (line 183)
* Align: label. (line 12)
-* aligndir: Options. (line 187)
-* all: Arrays. (line 338)
+* aligndir: Options. (line 197)
+* all: Arrays. (line 341)
* Allow: Pens. (line 363)
* and: Bezier curves. (line 56)
* AND: Arithmetic & logical.
@@ -8820,22 +9015,22 @@ Index
* animation: animation. (line 6)
* animation <1>: animation. (line 6)
* annotate: annotate. (line 6)
-* antialias: three. (line 254)
-* antialias <1>: Options. (line 157)
+* antialias: three. (line 261)
+* antialias <1>: Options. (line 167)
* append: Files. (line 38)
* append <1>: Arrays. (line 39)
* arc: Paths and guides. (line 24)
* Arc: Paths and guides. (line 37)
-* arc <1>: three. (line 323)
+* arc <1>: three. (line 343)
* ArcArrow: draw. (line 26)
-* ArcArrow3: three. (line 606)
+* ArcArrow3: three. (line 622)
* ArcArrows: draw. (line 26)
-* ArcArrows3: three. (line 606)
+* ArcArrows3: three. (line 622)
* arclength: Paths and guides. (line 153)
-* arclength <1>: three. (line 540)
+* arclength <1>: three. (line 556)
* arcpoint: Paths and guides. (line 163)
* arctime: Paths and guides. (line 157)
-* arctime <1>: three. (line 540)
+* arctime <1>: three. (line 556)
* arguments: Default arguments. (line 6)
* arithmetic operators: Arithmetic & logical.
(line 6)
@@ -8849,10 +9044,10 @@ Index
* arrow keys: Drawing in interactive mode.
(line 11)
* arrow keys <1>: GUI usage. (line 6)
-* Arrow3: three. (line 606)
+* Arrow3: three. (line 622)
* arrows: draw. (line 26)
* Arrows: draw. (line 26)
-* Arrows3: three. (line 606)
+* Arrows3: three. (line 622)
* as: Import. (line 67)
* ascii: Data types. (line 309)
* ascii <1>: Data types. (line 309)
@@ -8875,7 +9070,7 @@ Index
* Asymptote Web Application: Description. (line 6)
* asymptote.sty: LaTeX usage. (line 6)
* asymptote.xml: Editing modes. (line 48)
-* ASYMPTOTE_CONFIG: Options. (line 128)
+* ASYMPTOTE_CONFIG: Options. (line 138)
* atan: Mathematical functions.
(line 6)
* aTan: Mathematical functions.
@@ -8889,13 +9084,13 @@ Index
(line 276)
* attach <1>: LaTeX usage. (line 50)
* attach <2>: graph. (line 406)
-* autoadjust: three. (line 398)
-* autoimport: Options. (line 124)
-* automatic scaling: graph. (line 690)
-* automatic scaling <1>: graph. (line 690)
+* autoadjust: three. (line 418)
+* autoimport: Options. (line 134)
+* automatic scaling: graph. (line 710)
+* automatic scaling <1>: graph. (line 710)
* axialshade: fill. (line 43)
-* axis: graph. (line 905)
-* axis <1>: graph. (line 988)
+* axis: graph. (line 924)
+* axis <1>: graph. (line 1007)
* axis <2>: graph3. (line 66)
* axis <3>: graph3. (line 82)
* azimuth: Data types. (line 154)
@@ -8904,11 +9099,11 @@ Index
* background <1>: three. (line 97)
* background color: Frames and pictures.
(line 180)
-* BackView: three. (line 426)
+* BackView: three. (line 442)
* Bar: draw. (line 19)
-* Bar3: three. (line 606)
+* Bar3: three. (line 622)
* Bars: draw. (line 19)
-* Bars3: three. (line 606)
+* Bars3: three. (line 622)
* barsize: draw. (line 19)
* base modules: Base modules. (line 6)
* basealign: Pens. (line 181)
@@ -8917,30 +9112,30 @@ Index
(line 6)
* beep: Data types. (line 382)
* BeginArcArrow: draw. (line 26)
-* BeginArcArrow3: three. (line 606)
+* BeginArcArrow3: three. (line 622)
* BeginArrow: draw. (line 26)
-* BeginArrow3: three. (line 606)
+* BeginArrow3: three. (line 622)
* BeginBar: draw. (line 19)
-* BeginBar3: three. (line 606)
+* BeginBar3: three. (line 622)
* BeginDotMargin: draw. (line 42)
-* BeginDotMargin3: three. (line 622)
+* BeginDotMargin3: three. (line 638)
* BeginMargin: draw. (line 42)
-* BeginMargin3: three. (line 622)
+* BeginMargin3: three. (line 638)
* BeginPenMargin: draw. (line 42)
-* BeginPenMargin2: three. (line 622)
-* BeginPenMargin3: three. (line 622)
+* BeginPenMargin2: three. (line 638)
+* BeginPenMargin3: three. (line 638)
* BeginPoint: label. (line 55)
* Bessel: Mathematical functions.
(line 48)
* bevel: flowchart. (line 72)
* beveljoin: Pens. (line 149)
* Bezier curves: Bezier curves. (line 6)
-* Bezier patch: three. (line 118)
-* Bezier triangle: three. (line 118)
-* bezulate: three. (line 136)
+* Bezier patch: three. (line 128)
+* Bezier triangle: three. (line 128)
+* bezulate: three. (line 146)
* Bi: Mathematical functions.
(line 48)
-* Billboard: three. (line 510)
+* Billboard: three. (line 526)
* binary: Files. (line 80)
* binary format: Files. (line 80)
* binary operators: Arithmetic & logical.
@@ -8948,7 +9143,7 @@ Index
* binarytree: binarytree. (line 6)
* Bi_deriv: Mathematical functions.
(line 48)
-* black stripes: three. (line 254)
+* black stripes: three. (line 261)
* Blank: draw. (line 26)
* block.bottom: flowchart. (line 19)
* block.bottomleft: flowchart. (line 19)
@@ -8967,23 +9162,24 @@ Index
(line 6)
* Bottom: graph. (line 132)
* BottomTop: graph. (line 138)
-* BottomView: three. (line 426)
+* BottomView: three. (line 442)
* bounding box: Frames and pictures.
(line 180)
+* bounds: palette. (line 43)
* Bounds: graph3. (line 21)
* box: Frames and pictures.
(line 25)
* box <1>: Frames and pictures.
(line 130)
-* box <2>: three. (line 345)
-* box <3>: three. (line 347)
+* box <2>: three. (line 365)
+* box <3>: three. (line 367)
* bp: Drawing in batch mode.
(line 23)
* brace: Paths and guides. (line 51)
* break: Programming. (line 48)
* breakpoints: Debugger. (line 21)
* brick: Pens. (line 285)
-* broken axis: graph. (line 801)
+* broken axis: graph. (line 821)
* bug reports: Help. (line 19)
* buildcycle: Paths and guides. (line 270)
* Button-1: GUI. (line 6)
@@ -8994,7 +9190,7 @@ Index
* CAD: CAD. (line 6)
* calculateTransform: Frames and pictures.
(line 118)
-* camera: three. (line 392)
+* camera: three. (line 412)
* casts: Casts. (line 6)
* cbrt: Mathematical functions.
(line 6)
@@ -9002,7 +9198,7 @@ Index
* ceil: Mathematical functions.
(line 26)
* Center: label. (line 60)
-* center: three. (line 375)
+* center: three. (line 395)
* checker: Pens. (line 285)
* Chinese: Pens. (line 244)
* choose: Mathematical functions.
@@ -9011,7 +9207,7 @@ Index
(line 48)
* circle: Paths and guides. (line 10)
* Circle: Paths and guides. (line 18)
-* circle <1>: three. (line 319)
+* circle <1>: three. (line 339)
* circle <2>: flowchart. (line 61)
* circlebarframe: markers. (line 18)
* CJK: Pens. (line 244)
@@ -9034,26 +9230,28 @@ Index
* colorless: Pens. (line 57)
* colors: Pens. (line 54)
* comma: Files. (line 65)
-* comma-separated-value mode: Arrays. (line 370)
+* comma-separated-value mode: Arrays. (line 374)
+* command-line interface: Command-Line Interface.
+ (line 6)
* command-line options: Configuring. (line 91)
* command-line options <1>: Options. (line 6)
* comment character: Files. (line 16)
* compass directions: Labels. (line 18)
* Compiling from UNIX source: Compiling from UNIX source.
(line 6)
-* complement: Arrays. (line 145)
-* concat: Arrays. (line 175)
+* complement: Arrays. (line 149)
+* concat: Arrays. (line 179)
* conditional: Programming. (line 26)
* conditional <1>: Arithmetic & logical.
(line 61)
* config: Configuring. (line 74)
-* config <1>: Options. (line 128)
+* config <1>: Options. (line 138)
* configuration file: Configuring. (line 20)
-* configuration file <1>: Options. (line 128)
+* configuration file <1>: Options. (line 138)
* configuring: Configuring. (line 6)
* conj: Data types. (line 62)
* constructors: Structures. (line 91)
-* context: Options. (line 157)
+* context: Options. (line 167)
* continue: Programming. (line 48)
* continue <1>: Debugger. (line 31)
* contour: contour. (line 6)
@@ -9064,10 +9262,10 @@ Index
* convert: Configuring. (line 74)
* convert <1>: Files. (line 159)
* convert <2>: animation. (line 6)
-* convert <3>: Options. (line 157)
-* convertOptions: Options. (line 143)
+* convert <3>: Options. (line 167)
+* convertOptions: Options. (line 153)
* Coons shading: fill. (line 78)
-* copy: Arrays. (line 172)
+* copy: Arrays. (line 176)
* cos: Mathematical functions.
(line 6)
* Cos: Mathematical functions.
@@ -9082,16 +9280,16 @@ Index
* cross <2>: graph. (line 480)
* crossframe: markers. (line 22)
* crosshatch: Pens. (line 302)
-* csv: Arrays. (line 370)
+* csv: Arrays. (line 374)
* CTZ: Arithmetic & logical.
(line 68)
-* cubicroots: Arrays. (line 327)
+* cubicroots: Arrays. (line 331)
* curl: Bezier curves. (line 66)
* curl <1>: three. (line 6)
* curlSpecifier: Paths and guides. (line 408)
* currentlight: three. (line 76)
* currentpen: Pens. (line 6)
-* currentprojection: three. (line 423)
+* currentprojection: three. (line 439)
* curve: slopefield. (line 20)
* custom axis types: graph. (line 141)
* custom mark routine: graph. (line 577)
@@ -9103,7 +9301,7 @@ Index
* cyclic: Paths and guides. (line 85)
* cyclic <1>: Paths and guides. (line 376)
* cyclic <2>: Arrays. (line 39)
-* cyclic <3>: three. (line 540)
+* cyclic <3>: three. (line 556)
* Cyrillic: Pens. (line 237)
* dashdotted: Pens. (line 102)
* dashed: Pens. (line 102)
@@ -9117,7 +9315,7 @@ Index
* default arguments: Default arguments. (line 6)
* defaultformat: graph. (line 175)
* DefaultHead: draw. (line 26)
-* DefaultHead3: three. (line 606)
+* DefaultHead3: three. (line 622)
* defaultpen: Pens. (line 49)
* defaultpen <1>: Pens. (line 122)
* defaultpen <2>: Pens. (line 127)
@@ -9135,17 +9333,17 @@ Index
* delete: Files. (line 154)
* delete <1>: Arrays. (line 39)
* description: Description. (line 6)
-* devicepixelratio: three. (line 174)
-* diagonal: Arrays. (line 312)
+* devicepixelratio: three. (line 184)
+* diagonal: Arrays. (line 316)
* diamond: flowchart. (line 54)
* diffuse: three. (line 76)
* diffusepen: three. (line 66)
-* dimension: Arrays. (line 375)
+* dimension: Arrays. (line 379)
* dir: Search paths. (line 9)
* dir <1>: Data types. (line 90)
* dir <2>: Data types. (line 181)
* dir <3>: Paths and guides. (line 109)
-* dir <4>: three. (line 540)
+* dir <4>: three. (line 556)
* direction specifier: Bezier curves. (line 6)
* directory: Files. (line 26)
* dirSpecifier: Paths and guides. (line 390)
@@ -9157,14 +9355,14 @@ Index
* dot: draw. (line 83)
* dot <1>: Data types. (line 103)
* dot <2>: Data types. (line 194)
-* dot <3>: Arrays. (line 267)
-* dot <4>: Arrays. (line 270)
+* dot <3>: Arrays. (line 271)
+* dot <4>: Arrays. (line 274)
* DotMargin: draw. (line 42)
-* DotMargin3: three. (line 622)
+* DotMargin3: three. (line 638)
* DotMargins: draw. (line 42)
-* DotMargins3: three. (line 622)
+* DotMargins3: three. (line 638)
* dotted: Pens. (line 102)
-* double deferred drawing: three. (line 297)
+* double deferred drawing: three. (line 317)
* double precision: Files. (line 80)
* draw: Drawing commands. (line 34)
* draw <1>: draw. (line 6)
@@ -9172,15 +9370,15 @@ Index
* draw <2>: draw. (line 113)
* Draw <1>: Frames and pictures.
(line 160)
-* draw <3>: three. (line 144)
+* draw <3>: three. (line 154)
* drawing commands: Drawing commands. (line 6)
* drawline: math. (line 9)
* drawtree: drawtree. (line 6)
* dvips: Configuring. (line 74)
-* dvipsOptions: Options. (line 143)
+* dvipsOptions: Options. (line 153)
* dvisvgm: Configuring. (line 74)
-* dvisvgm <1>: Options. (line 162)
-* dvisvgmOptions: Options. (line 143)
+* dvisvgm <1>: Options. (line 172)
+* dvisvgmOptions: Options. (line 153)
* E: Labels. (line 18)
* E <1>: Mathematical functions.
(line 48)
@@ -9195,34 +9393,34 @@ Index
* else: Programming. (line 26)
* emacs: Editing modes. (line 6)
* embed: embed. (line 6)
-* Embedded: three. (line 510)
+* Embedded: three. (line 526)
* emissivepen: three. (line 66)
* empty: Frames and pictures.
(line 7)
* EndArcArrow: draw. (line 26)
-* EndArcArrow3: three. (line 606)
+* EndArcArrow3: three. (line 622)
* EndArrow: draw. (line 26)
-* EndArrow3: three. (line 606)
+* EndArrow3: three. (line 622)
* EndBar: draw. (line 19)
-* EndBar3: three. (line 606)
+* EndBar3: three. (line 622)
* EndDotMargin: draw. (line 42)
-* EndDotMargin3: three. (line 622)
+* EndDotMargin3: three. (line 638)
* endl: Files. (line 65)
* EndMargin: draw. (line 42)
-* EndMargin3: three. (line 622)
+* EndMargin3: three. (line 638)
* EndPenMargin: draw. (line 42)
-* EndPenMargin2: three. (line 622)
-* EndPenMargin3: three. (line 622)
+* EndPenMargin2: three. (line 638)
+* EndPenMargin3: three. (line 638)
* EndPoint: label. (line 55)
* envelope: Frames and pictures.
(line 25)
* environment variables: Configuring. (line 95)
* eof: Files. (line 97)
-* eof <1>: Arrays. (line 352)
+* eof <1>: Arrays. (line 356)
* eol: Files. (line 97)
-* eol <1>: Arrays. (line 352)
+* eol <1>: Arrays. (line 356)
* EPS: label. (line 78)
-* EPS <1>: Options. (line 157)
+* EPS <1>: Options. (line 167)
* erase: Drawing in interactive mode.
(line 11)
* erase <1>: Data types. (line 257)
@@ -9259,20 +9457,20 @@ Index
* extension: Paths and guides. (line 246)
* extension <1>: MetaPost. (line 10)
* external: embed. (line 11)
-* extrude: three. (line 534)
+* extrude: three. (line 550)
* F: Mathematical functions.
(line 48)
* fabs: Mathematical functions.
(line 6)
-* face: three. (line 646)
+* face: three. (line 662)
* factorial: Mathematical functions.
(line 39)
* Fedora: UNIX binary distributions.
(line 15)
* feynman: feynman. (line 6)
-* fft: Arrays. (line 245)
-* fft <1>: Arrays. (line 259)
-* fft <2>: Arrays. (line 263)
+* fft: Arrays. (line 249)
+* fft <1>: Arrays. (line 263)
+* fft <2>: Arrays. (line 267)
* FFTW: Compiling from UNIX source.
(line 62)
* file: Files. (line 6)
@@ -9290,12 +9488,12 @@ Index
* filloutside: fill. (line 27)
* fillrule: Pens. (line 164)
* find: Data types. (line 242)
-* find <1>: Arrays. (line 154)
-* findall: Arrays. (line 159)
+* find <1>: Arrays. (line 158)
+* findall: Arrays. (line 163)
* firstcut: Paths and guides. (line 262)
* fit: Frames and pictures.
(line 113)
-* fit3: three. (line 310)
+* fit3: three. (line 330)
* fixedscaling: Frames and pictures.
(line 81)
* floor: Mathematical functions.
@@ -9313,13 +9511,13 @@ Index
* fontsize: Pens. (line 192)
* for: Programming. (line 26)
* format: Data types. (line 290)
-* format <1>: Options. (line 157)
+* format <1>: Options. (line 167)
* forum: Help. (line 6)
* frame: Frames and pictures.
(line 7)
* freshnel0: three. (line 66)
* from: Import. (line 16)
-* FrontView: three. (line 426)
+* FrontView: three. (line 442)
* function declarations: Functions. (line 79)
* Function shading: fill. (line 100)
* function shading: fill. (line 100)
@@ -9340,8 +9538,8 @@ Index
* git: Git. (line 6)
* globalwrite: Files. (line 40)
* globalwrite <1>: Files. (line 154)
-* glOptions: three. (line 254)
-* glOptions <1>: Options. (line 143)
+* glOptions: three. (line 261)
+* glOptions <1>: Options. (line 153)
* GNU Scientific Library: Mathematical functions.
(line 48)
* gouraudshade: fill. (line 63)
@@ -9350,20 +9548,21 @@ Index
* graph: graph. (line 6)
* graph3: graph3. (line 6)
* graphic: label. (line 78)
-* graphic <1>: Options. (line 162)
+* graphic <1>: Options. (line 172)
* graphical user interface: GUI. (line 6)
+* graphwithderiv: graph. (line 670)
* gray: Pens. (line 25)
* grayscale: Pens. (line 25)
* Grayscale: palette. (line 9)
* grid: Pens. (line 285)
-* grid <1>: graph. (line 746)
+* grid <1>: graph. (line 766)
* grid3: grid3. (line 6)
* gs: Configuring. (line 20)
* GSL: Compiling from UNIX source.
(line 62)
* gsl: Mathematical functions.
(line 48)
-* gsOptions: Options. (line 143)
+* gsOptions: Options. (line 153)
* GUI: GUI. (line 6)
* GUI installation: GUI installation. (line 6)
* GUI usage: GUI usage. (line 6)
@@ -9381,44 +9580,47 @@ Index
* hex <1>: Pens. (line 64)
* hexadecimal: Data types. (line 306)
* hexadecimal <1>: Pens. (line 62)
-* hidden surface removal: three. (line 646)
+* hidden surface removal: three. (line 662)
* histogram: Mathematical functions.
(line 39)
* history: Files. (line 147)
* history <1>: Interactive mode. (line 54)
* historylines: Interactive mode. (line 57)
* HookHead: draw. (line 26)
-* HookHead3: three. (line 606)
+* HookHead3: three. (line 622)
* Horizontal: flowchart. (line 77)
-* HTML5: three. (line 223)
+* HTML5: three. (line 233)
* htmlviewer: Configuring. (line 20)
* htmlviewer <1>: Configuring. (line 43)
-* htmlviewerOptions: Options. (line 143)
-* hyperrefOptions: Options. (line 143)
+* htmlviewerOptions: Options. (line 153)
+* hyperrefOptions: Options. (line 153)
* hypot: Mathematical functions.
(line 6)
* I: Mathematical functions.
(line 48)
-* iconify: three. (line 254)
+* ibl: three. (line 104)
+* iconify: three. (line 261)
* identity: Transforms. (line 24)
* identity <1>: Mathematical functions.
(line 6)
-* identity <2>: Arrays. (line 309)
-* identity4: three. (line 478)
+* identity <2>: Arrays. (line 313)
+* identity4: three. (line 494)
* if: Programming. (line 26)
* IgnoreAspect: Frames and pictures.
(line 63)
* image: palette. (line 33)
-* image <1>: palette. (line 58)
+* image <1>: palette. (line 61)
+* image-based lighting: three. (line 104)
* ImageMagick: Configuring. (line 74)
* ImageMagick <1>: animation. (line 6)
-* ImageMagick <2>: Options. (line 157)
+* ImageMagick <2>: Options. (line 167)
* images: palette. (line 6)
* implicit casts: Casts. (line 6)
* implicit linear solver: MetaPost. (line 10)
* implicit scaling: Implicit scaling. (line 6)
* implicitsurface: smoothcontour3. (line 16)
* import: Import. (line 45)
+* importv3d: three. (line 308)
* inches: Figure size. (line 18)
* incircle: Data types. (line 120)
* include: Import. (line 134)
@@ -9441,7 +9643,7 @@ Index
* inside: Paths and guides. (line 294)
* inside <1>: Paths and guides. (line 299)
* inside <2>: Paths and guides. (line 305)
-* insphere: three. (line 569)
+* insphere: three. (line 585)
* inst: Debugger. (line 35)
* installation: Installation. (line 6)
* int: Data types. (line 30)
@@ -9460,23 +9662,23 @@ Index
* interpolate: interpolate. (line 6)
* intersect: Paths and guides. (line 195)
* intersect <1>: math. (line 13)
-* intersect <2>: three. (line 540)
+* intersect <2>: three. (line 556)
* intersectionpoint: Paths and guides. (line 238)
* intersectionpoint <1>: math. (line 17)
-* intersectionpoint <2>: three. (line 540)
+* intersectionpoint <2>: three. (line 556)
* intersectionpoints: Paths and guides. (line 242)
-* intersectionpoints <1>: three. (line 540)
-* intersectionpoints <2>: three. (line 553)
+* intersectionpoints <1>: three. (line 556)
+* intersectionpoints <2>: three. (line 569)
* intersections: Paths and guides. (line 206)
* intersections <1>: Paths and guides. (line 213)
-* intersections <2>: three. (line 540)
-* intersections <3>: three. (line 546)
+* intersections <2>: three. (line 556)
+* intersections <3>: three. (line 562)
* InTicks: graph3. (line 35)
* intMax: Data types. (line 30)
* intMin: Data types. (line 30)
* inverse: Transforms. (line 16)
-* inverse <1>: Arrays. (line 315)
-* invert: three. (line 468)
+* inverse <1>: Arrays. (line 319)
+* invert: three. (line 484)
* invisible: Pens. (line 43)
* isnan: Data types. (line 35)
* i_scaled: Mathematical functions.
@@ -9495,7 +9697,7 @@ Index
* keepAspect <1>: Frames and pictures.
(line 63)
* keepAspect <2>: LaTeX usage. (line 50)
-* keyboard bindings:: three. (line 201)
+* keyboard bindings:: three. (line 211)
* keys: Arrays. (line 39)
* keyword: Named arguments. (line 37)
* keyword-only: Named arguments. (line 37)
@@ -9508,7 +9710,7 @@ Index
* label <1>: label. (line 6)
* Label <1>: label. (line 14)
* Label <2>: graph. (line 330)
-* label <2>: three. (line 504)
+* label <2>: three. (line 520)
* labelpath: labelpath. (line 6)
* labelpath3: labelpath3. (line 6)
* labelx: graph. (line 330)
@@ -9516,9 +9718,11 @@ Index
* Landscape: Frames and pictures.
(line 104)
* language context: Pens. (line 235)
+* language server protocol: Language server protocol.
+ (line 6)
* lastcut: Paths and guides. (line 266)
* lasy-mode: Editing modes. (line 6)
-* latex: Options. (line 157)
+* latex: Options. (line 167)
* LaTeX NFSS fonts: Pens. (line 206)
* LaTeX usage: LaTeX usage. (line 6)
* latexmk: LaTeX usage. (line 30)
@@ -9526,13 +9730,13 @@ Index
* latticeshade: fill. (line 32)
* layer: Drawing commands. (line 16)
* leastsquares: stats. (line 6)
-* leastsquares <1>: graph. (line 929)
+* leastsquares <1>: graph. (line 948)
* Left: graph. (line 269)
* LeftRight: graph. (line 275)
* LeftSide: label. (line 60)
* LeftTicks: graph. (line 160)
* LeftTicks <1>: graph. (line 233)
-* LeftView: three. (line 426)
+* LeftView: three. (line 442)
* legend: Drawing commands. (line 34)
* legend <1>: draw. (line 65)
* legend <2>: graph. (line 424)
@@ -9544,22 +9748,22 @@ Index
* length <3>: Paths and guides. (line 76)
* length <4>: Paths and guides. (line 373)
* length <5>: Arrays. (line 39)
-* length <6>: three. (line 540)
+* length <6>: three. (line 556)
* letter: Configuring. (line 68)
* lexorder: math. (line 63)
* lexorder <1>: math. (line 66)
* libcurl: Import. (line 94)
-* libgs: Options. (line 162)
+* libgs: Options. (line 172)
* libm routines: Mathematical functions.
(line 6)
* libsigsegv: Functions. (line 100)
* libsigsegv <1>: Help. (line 27)
* light: three. (line 76)
* limits: graph. (line 639)
-* line: Arrays. (line 352)
-* line <1>: Arrays. (line 356)
-* line mode: Arrays. (line 352)
-* Linear: graph. (line 690)
+* line: Arrays. (line 356)
+* line <1>: Arrays. (line 360)
+* line mode: Arrays. (line 356)
+* Linear: graph. (line 710)
* linecap: Pens. (line 139)
* linejoin: Pens. (line 149)
* lineskip: Pens. (line 192)
@@ -9568,37 +9772,39 @@ Index
* locale: Data types. (line 316)
* log: Mathematical functions.
(line 6)
-* Log: graph. (line 690)
-* log-log graph: graph. (line 724)
+* Log: graph. (line 710)
+* log-log graph: graph. (line 744)
* log10: Mathematical functions.
(line 6)
* log1p: Mathematical functions.
(line 6)
-* log2 graph: graph. (line 780)
-* logarithmic graph: graph. (line 724)
+* log2 graph: graph. (line 800)
+* logarithmic graph: graph. (line 744)
* logical operators: Arithmetic & logical.
(line 6)
* longdashdotted: Pens. (line 102)
* longdashed: Pens. (line 102)
* longitude: Data types. (line 169)
* loop: Programming. (line 26)
-* lualatex: Options. (line 157)
-* luatex: Options. (line 157)
+* LSP: Language server protocol.
+ (line 6)
+* lualatex: Options. (line 167)
+* luatex: Options. (line 167)
* MacOS X binary distributions: MacOS X binary distributions.
(line 6)
* MacOS X configuration: Compiling from UNIX source.
(line 48)
* makepen: Pens. (line 338)
-* map: Arrays. (line 131)
-* map <1>: Arrays. (line 136)
+* map: Arrays. (line 135)
+* map <1>: Arrays. (line 140)
* map <2>: map. (line 6)
* Margin: draw. (line 42)
* Margin <1>: draw. (line 42)
-* Margin3: three. (line 622)
-* Margin3 <1>: three. (line 622)
+* Margin3: three. (line 638)
+* Margin3 <1>: three. (line 638)
* Margins: draw. (line 42)
-* margins: three. (line 303)
-* Margins3: three. (line 622)
+* margins: three. (line 323)
+* Margins3: three. (line 638)
* mark: graph. (line 480)
* markangle: markers. (line 35)
* marker: graph. (line 480)
@@ -9613,14 +9819,14 @@ Index
* max: Paths and guides. (line 279)
* max <1>: Frames and pictures.
(line 7)
-* max <2>: Arrays. (line 226)
-* max <3>: Arrays. (line 236)
-* max <4>: three. (line 540)
+* max <2>: Arrays. (line 230)
+* max <3>: Arrays. (line 240)
+* max <4>: three. (line 556)
* maxbound: Data types. (line 134)
* maxbound <1>: Data types. (line 205)
-* maxtile: three. (line 254)
+* maxtile: three. (line 261)
* maxtimes: Paths and guides. (line 233)
-* maxviewport: three. (line 254)
+* maxviewport: three. (line 261)
* metallic: three. (line 66)
* MetaPost: MetaPost. (line 6)
* MetaPost ... : Bezier curves. (line 70)
@@ -9630,17 +9836,17 @@ Index
* MetaPost whatever: MetaPost. (line 10)
* Microsoft Windows: Microsoft Windows. (line 6)
* MidArcArrow: draw. (line 26)
-* MidArcArrow3: three. (line 606)
+* MidArcArrow3: three. (line 622)
* MidArrow: draw. (line 26)
-* MidArrow3: three. (line 606)
+* MidArrow3: three. (line 622)
* MidPoint: label. (line 55)
* midpoint: Paths and guides. (line 180)
* min: Paths and guides. (line 275)
* min <1>: Frames and pictures.
(line 7)
-* min <2>: Arrays. (line 221)
-* min <3>: Arrays. (line 231)
-* min <4>: three. (line 540)
+* min <2>: Arrays. (line 225)
+* min <3>: Arrays. (line 235)
+* min <4>: three. (line 556)
* minbound: Data types. (line 131)
* minbound <1>: Data types. (line 202)
* minipage: label. (line 116)
@@ -9649,16 +9855,16 @@ Index
* miterlimit: Pens. (line 159)
* mktemp: Files. (line 48)
* mm: Figure size. (line 18)
-* mobile browser: three. (line 223)
+* mobile browser: three. (line 233)
* mode: Files. (line 80)
* mode <1>: Files. (line 93)
* monotonic: graph. (line 36)
* mouse: GUI. (line 6)
-* mouse bindings: three. (line 182)
+* mouse bindings: three. (line 192)
* mouse wheel: GUI usage. (line 6)
* Move: Pens. (line 375)
* MoveQuiet: Pens. (line 381)
-* multisample: three. (line 174)
+* multisample: three. (line 184)
* N: Labels. (line 18)
* name: Files. (line 93)
* named arguments: Named arguments. (line 6)
@@ -9684,12 +9890,12 @@ Index
* noglobalread <1>: Files. (line 40)
* nolight: three. (line 76)
* NoMargin: draw. (line 42)
-* NoMargin3: three. (line 622)
+* NoMargin3: three. (line 638)
* None: draw. (line 19)
* None <1>: draw. (line 26)
* none: Files. (line 65)
-* normal: three. (line 526)
-* nosafe: Options. (line 182)
+* normal: three. (line 542)
+* nosafe: Options. (line 192)
* NOT: Arithmetic & logical.
(line 68)
* notaknot: graph. (line 36)
@@ -9701,23 +9907,23 @@ Index
(line 140)
* nullpen <2>: Frames and pictures.
(line 149)
-* NURBS: three. (line 402)
-* O: three. (line 315)
+* NURBS: three. (line 422)
+* O: three. (line 335)
* obj: obj. (line 6)
-* oblique: three. (line 358)
-* obliqueX: three. (line 365)
-* obliqueY: three. (line 371)
-* obliqueZ: three. (line 358)
+* oblique: three. (line 378)
+* obliqueX: three. (line 385)
+* obliqueY: three. (line 391)
+* obliqueZ: three. (line 378)
* ode: ode. (line 6)
* offset: Pens. (line 123)
-* offset <1>: Options. (line 187)
+* offset <1>: Options. (line 197)
* OmitTick: graph. (line 223)
* OmitTickInterval: graph. (line 223)
* OmitTickIntervals: graph. (line 223)
* opacity: Pens. (line 254)
* opacity <1>: three. (line 66)
* open: Files. (line 12)
-* OpenGL: three. (line 174)
+* OpenGL: three. (line 184)
* operator: User-defined operators.
(line 6)
* operator +(...string[] a).: Data types. (line 284)
@@ -9734,15 +9940,15 @@ Index
* OR: Arithmetic & logical.
(line 68)
* orient: Data types. (line 108)
-* orient <1>: three. (line 557)
+* orient <1>: three. (line 573)
* orientation: Frames and pictures.
(line 104)
-* orthographic: three. (line 375)
-* outformat: three. (line 174)
+* orthographic: three. (line 395)
+* outformat: three. (line 184)
* outprefix: Frames and pictures.
(line 91)
* output: Files. (line 38)
-* output <1>: Options. (line 157)
+* output <1>: Options. (line 167)
* OutTicks: graph3. (line 35)
* overloading functions: Functions. (line 55)
* overwrite: Pens. (line 360)
@@ -9754,7 +9960,7 @@ Index
(line 186)
* pair: Figure size. (line 6)
* pair <1>: Data types. (line 46)
-* pairs: Arrays. (line 241)
+* pairs: Arrays. (line 245)
* paperheight: Configuring. (line 68)
* papertype: Configuring. (line 68)
* paperwidth: Configuring. (line 68)
@@ -9763,7 +9969,7 @@ Index
* parametrized curve: graph. (line 639)
* partialsum: math. (line 49)
* partialsum <1>: math. (line 52)
-* patch-dependent colors: three. (line 109)
+* patch-dependent colors: three. (line 119)
* path: Paths. (line 6)
* path <1>: Paths and guides. (line 7)
* path <2>: three. (line 42)
@@ -9775,38 +9981,38 @@ Index
* patterns: Pens. (line 271)
* patterns <1>: patterns. (line 6)
* PBR: three. (line 74)
-* PDF: Options. (line 157)
-* pdflatex: Options. (line 157)
-* pdfreloadOptions: Options. (line 143)
+* PDF: Options. (line 167)
+* pdflatex: Options. (line 167)
+* pdfreloadOptions: Options. (line 153)
* pdfviewer: Configuring. (line 20)
-* pdfviewerOptions: Options. (line 143)
+* pdfviewerOptions: Options. (line 153)
* pen: Pens. (line 6)
* PenMargin: draw. (line 42)
-* PenMargin2: three. (line 622)
-* PenMargin3: three. (line 622)
+* PenMargin2: three. (line 638)
+* PenMargin3: three. (line 638)
* PenMargins: draw. (line 42)
-* PenMargins2: three. (line 622)
-* PenMargins3: three. (line 622)
+* PenMargins2: three. (line 638)
+* PenMargins3: three. (line 638)
* periodic: graph. (line 36)
* perl: LaTeX usage. (line 30)
* perpendicular: geometry. (line 6)
-* perspective: three. (line 402)
+* perspective: three. (line 422)
* physically based rendering: three. (line 74)
* picture: Frames and pictures.
(line 39)
* picture alignment: Frames and pictures.
(line 231)
* piecewisestraight: Paths and guides. (line 92)
-* pixel: three. (line 629)
+* pixel: three. (line 645)
* Pl: Mathematical functions.
(line 48)
* plain: plain. (line 6)
-* planar: three. (line 118)
-* plane: three. (line 341)
-* planeproject: three. (line 523)
+* planar: three. (line 128)
+* plane: three. (line 361)
+* planeproject: three. (line 539)
* point: Paths and guides. (line 95)
* point <1>: Paths and guides. (line 379)
-* point <2>: three. (line 540)
+* point <2>: three. (line 556)
* polar: Data types. (line 149)
* polargraph: graph. (line 88)
* polygon: graph. (line 480)
@@ -9814,9 +10020,9 @@ Index
* Portrait: Frames and pictures.
(line 104)
* position: three. (line 76)
-* position <1>: three. (line 174)
+* position <1>: three. (line 184)
* postcontrol: Paths and guides. (line 146)
-* postcontrol <1>: three. (line 540)
+* postcontrol <1>: three. (line 556)
* postfix operators: Self & prefix operators.
(line 19)
* postscript: Frames and pictures.
@@ -9825,10 +10031,10 @@ Index
* PostScript subpath: Paths. (line 23)
* pow10: Mathematical functions.
(line 6)
-* prc: three. (line 272)
+* prc: three. (line 279)
* precision: Files. (line 97)
* precontrol: Paths and guides. (line 139)
-* precontrol <1>: three. (line 540)
+* precontrol <1>: three. (line 556)
* prefix operators: Self & prefix operators.
(line 6)
* private: Structures. (line 6)
@@ -9836,15 +10042,15 @@ Index
* pstoedit: PostScript to Asymptote.
(line 6)
* psviewer: Configuring. (line 20)
-* psviewerOptions: Options. (line 143)
+* psviewerOptions: Options. (line 153)
* pt: Figure size. (line 18)
* public: Structures. (line 6)
* push: Arrays. (line 39)
* Python usage: Interactive mode. (line 72)
-* quadraticroots: Arrays. (line 318)
-* quadraticroots <1>: Arrays. (line 323)
+* quadraticroots: Arrays. (line 322)
+* quadraticroots <1>: Arrays. (line 327)
* quarticroots: math. (line 22)
-* quick reference: Description. (line 88)
+* quick reference: Description. (line 92)
* quit: Drawing in interactive mode.
(line 11)
* quit <1>: Interactive mode. (line 54)
@@ -9860,15 +10066,15 @@ Index
* radians: Mathematical functions.
(line 17)
* radius: Paths and guides. (line 135)
-* radius <1>: three. (line 540)
+* radius <1>: three. (line 556)
* Rainbow: palette. (line 12)
* rand: Mathematical functions.
(line 39)
* randMax: Mathematical functions.
(line 39)
-* read: Arrays. (line 392)
+* read: Arrays. (line 396)
* reading: Files. (line 12)
-* reading string arrays: Arrays. (line 362)
+* reading string arrays: Arrays. (line 366)
* readline: Files. (line 139)
* real: Data types. (line 35)
* realDigits: Data types. (line 35)
@@ -9878,7 +10084,7 @@ Index
* realmult: Data types. (line 100)
* rectangle: flowchart. (line 34)
* recursion: Functions. (line 100)
-* reference: Description. (line 88)
+* reference: Description. (line 92)
* reflect: Transforms. (line 42)
* Relative: label. (line 50)
* Relative <1>: label. (line 60)
@@ -9888,8 +10094,8 @@ Index
(line 6)
* rename: Files. (line 156)
* render: three. (line 46)
-* render <1>: three. (line 174)
-* render <2>: Options. (line 157)
+* render <1>: three. (line 184)
+* render <2>: Options. (line 167)
* replace: Data types. (line 270)
* resetdefaultpen: Pens. (line 387)
* rest arguments: Rest arguments. (line 6)
@@ -9900,8 +10106,8 @@ Index
* reverse: Data types. (line 266)
* reverse <1>: Paths and guides. (line 183)
* reverse <2>: Paths and guides. (line 382)
-* reverse <3>: Arrays. (line 141)
-* reverse <4>: three. (line 540)
+* reverse <3>: Arrays. (line 145)
+* reverse <4>: three. (line 556)
* rewind: Files. (line 97)
* rfind: Data types. (line 247)
* rgb: Pens. (line 30)
@@ -9913,9 +10119,9 @@ Index
* RightSide: label. (line 60)
* RightTicks: graph. (line 160)
* RightTicks <1>: graph. (line 233)
-* RightView: three. (line 426)
+* RightView: three. (line 442)
* Rotate: label. (line 36)
-* rotate: three. (line 494)
+* rotate: three. (line 510)
* Rotate(pair z): label. (line 39)
* round: Mathematical functions.
(line 26)
@@ -9928,7 +10134,7 @@ Index
* runtime imports: Import. (line 102)
* Russian: Pens. (line 237)
* S: Labels. (line 18)
-* safe: Options. (line 182)
+* safe: Options. (line 192)
* save: Frames and pictures.
(line 288)
* saveline: Files. (line 139)
@@ -9936,21 +10142,21 @@ Index
* scale: Pens. (line 123)
* scale <1>: Transforms. (line 34)
* scale <2>: Transforms. (line 36)
-* scale <3>: graph. (line 690)
-* Scale <1>: graph. (line 707)
-* scale <4>: three. (line 493)
-* scale3: three. (line 491)
-* scaled graph: graph. (line 670)
+* scale <3>: graph. (line 710)
+* Scale <1>: graph. (line 727)
+* scale <4>: three. (line 509)
+* scale3: three. (line 507)
+* scaled graph: graph. (line 690)
* scientific graph: graph. (line 387)
* scroll: Files. (line 113)
-* search: Arrays. (line 162)
-* search <1>: Arrays. (line 168)
+* search: Arrays. (line 166)
+* search <1>: Arrays. (line 172)
* search paths: Search paths. (line 6)
* Seascape: Frames and pictures.
(line 110)
-* secondary axis: graph. (line 833)
-* secondaryX: graph. (line 833)
-* secondaryY: graph. (line 833)
+* secondary axis: graph. (line 853)
+* secondaryX: graph. (line 853)
+* secondaryY: graph. (line 853)
* seconds: Data types. (line 330)
* seek: Files. (line 97)
* seekeof: Files. (line 97)
@@ -9960,7 +10166,7 @@ Index
(line 6)
* sequence: Arrays. (line 118)
* settings: Configuring. (line 20)
-* settings <1>: Options. (line 128)
+* settings <1>: Options. (line 138)
* sgn: Mathematical functions.
(line 26)
* shading: fill. (line 32)
@@ -9968,12 +10174,12 @@ Index
* shift: Transforms. (line 26)
* shift <1>: Transforms. (line 28)
* shift <2>: Transforms. (line 46)
-* shift <3>: three. (line 483)
+* shift <3>: three. (line 499)
* shiftless: Transforms. (line 46)
* shininess: three. (line 66)
* shipout: Frames and pictures.
(line 91)
-* showtarget: three. (line 375)
+* showtarget: three. (line 395)
* Si: Mathematical functions.
(line 48)
* signedint: Files. (line 80)
@@ -9993,9 +10199,9 @@ Index
* singlereal <1>: Files. (line 93)
* sinh: Mathematical functions.
(line 6)
-* SixViews: three. (line 441)
-* SixViewsFR: three. (line 441)
-* SixViewsUS: three. (line 441)
+* SixViews: three. (line 457)
+* SixViewsFR: three. (line 457)
+* SixViewsUS: three. (line 457)
* size: Figure size. (line 6)
* size <1>: Paths and guides. (line 81)
* size <2>: Paths and guides. (line 370)
@@ -10003,9 +10209,9 @@ Index
(line 48)
* size <4>: Frames and pictures.
(line 74)
-* size <5>: three. (line 540)
-* size <6>: Options. (line 157)
-* size3: three. (line 300)
+* size <5>: three. (line 556)
+* size <6>: Options. (line 167)
+* size3: three. (line 320)
* Slant: label. (line 42)
* slant: Transforms. (line 38)
* sleep: Data types. (line 376)
@@ -10021,11 +10227,11 @@ Index
(line 48)
* solid: Pens. (line 102)
* solids: solids. (line 6)
-* solve: Arrays. (line 287)
-* solve <1>: Arrays. (line 303)
-* sort: Arrays. (line 182)
-* sort <1>: Arrays. (line 186)
-* sort <2>: Arrays. (line 201)
+* solve: Arrays. (line 291)
+* solve <1>: Arrays. (line 307)
+* sort: Arrays. (line 186)
+* sort <1>: Arrays. (line 190)
+* sort <2>: Arrays. (line 205)
* specular: three. (line 76)
* specularfactor: three. (line 76)
* specularpen: three. (line 66)
@@ -10049,7 +10255,7 @@ Index
* stop: Debugger. (line 10)
* straight: Paths and guides. (line 88)
* Straight: graph. (line 30)
-* straight <1>: three. (line 540)
+* straight <1>: three. (line 556)
* strftime: Data types. (line 321)
* strftime <1>: Data types. (line 346)
* string: Data types. (line 208)
@@ -10061,21 +10267,22 @@ Index
* struct: Structures. (line 6)
* structures: Structures. (line 6)
* subpath: Paths and guides. (line 186)
-* subpath <1>: three. (line 540)
+* subpath <1>: three. (line 556)
* subpictures: Frames and pictures.
(line 113)
* substr: Data types. (line 262)
-* sum: Arrays. (line 216)
+* sum: Arrays. (line 220)
* superpath: Paths. (line 23)
* Suppress: Pens. (line 367)
* SuppressQuiet: Pens. (line 371)
* surface: three. (line 46)
-* surface <1>: three. (line 118)
-* surface <2>: three. (line 132)
-* surface <3>: graph3. (line 99)
-* SVG: Options. (line 162)
+* surface <1>: three. (line 104)
+* surface <2>: three. (line 128)
+* surface <3>: three. (line 142)
+* surface <4>: graph3. (line 99)
+* SVG: Options. (line 172)
* system: Data types. (line 354)
-* system <1>: Options. (line 182)
+* system <1>: Options. (line 192)
* syzygy: syzygy. (line 6)
* tab: Files. (line 65)
* tab completion: Drawing in interactive mode.
@@ -10086,22 +10293,22 @@ Index
(line 20)
* tanh: Mathematical functions.
(line 6)
-* target: three. (line 375)
+* target: three. (line 395)
* tell: Files. (line 97)
* tension: Bezier curves. (line 56)
* tension <1>: three. (line 6)
* tensionSpecifier: Paths and guides. (line 402)
* tensor product shading: fill. (line 78)
* tensorshade: fill. (line 78)
-* tessellation: three. (line 144)
+* tessellation: three. (line 154)
* tex: Frames and pictures.
(line 305)
-* tex <1>: Options. (line 157)
+* tex <1>: Options. (line 167)
* TeX fonts: Pens. (line 213)
* TeX string: Data types. (line 208)
* texcommand: Configuring. (line 74)
* TeXHead: draw. (line 26)
-* TeXHead3: three. (line 606)
+* TeXHead3: three. (line 622)
* texpath: Configuring. (line 74)
* texpath <1>: label. (line 113)
* texpreamble: Frames and pictures.
@@ -10111,13 +10318,13 @@ Index
* textbook graph: graph. (line 360)
* tgz: UNIX binary distributions.
(line 6)
-* thick: three. (line 156)
-* thin: three. (line 156)
+* thick: three. (line 166)
+* thin: three. (line 166)
* this: Structures. (line 6)
* three: three. (line 6)
-* ThreeViews: three. (line 441)
-* ThreeViewsFR: three. (line 441)
-* ThreeViewsUS: three. (line 441)
+* ThreeViews: three. (line 457)
+* ThreeViewsFR: three. (line 457)
+* ThreeViewsUS: three. (line 457)
* tick: graph. (line 330)
* ticks: graph. (line 160)
* Ticks: graph. (line 160)
@@ -10132,28 +10339,28 @@ Index
* times: Paths and guides. (line 220)
* times <1>: Paths and guides. (line 224)
* Top: graph. (line 135)
-* TopView: three. (line 426)
+* TopView: three. (line 442)
* trace: Debugger. (line 50)
* trailingzero: graph. (line 175)
* transform: Transforms. (line 6)
-* transform <1>: three. (line 515)
-* transform3: three. (line 478)
+* transform <1>: three. (line 531)
+* transform3: three. (line 494)
* transparency: Pens. (line 254)
* transparent: three. (line 97)
-* transpose: Arrays. (line 208)
-* transpose <1>: Arrays. (line 211)
+* transpose: Arrays. (line 212)
+* transpose <1>: Arrays. (line 215)
* tree: tree. (line 6)
* trembling: trembling. (line 6)
* triangle: geometry. (line 6)
-* triangles: three. (line 144)
-* triangulate: contour. (line 149)
-* tridiagonal: Arrays. (line 274)
+* triangles: three. (line 154)
+* triangulate: contour. (line 192)
+* tridiagonal: Arrays. (line 278)
* trigonometric integrals: Mathematical functions.
(line 48)
* triple: Data types. (line 137)
* TrueMargin: draw. (line 42)
-* TrueMargin3: three. (line 622)
-* tube: three. (line 156)
+* TrueMargin3: three. (line 638)
+* tube: three. (line 166)
* tube <1>: tube. (line 6)
* tutorial: Tutorial. (line 6)
* type1cm: Pens. (line 192)
@@ -10167,16 +10374,16 @@ Index
(line 165)
* UnFill <2>: Frames and pictures.
(line 168)
-* uniform: Arrays. (line 150)
+* uniform: Arrays. (line 154)
* uninstall: Uninstall. (line 6)
* unique: math. (line 59)
* unit: Data types. (line 83)
* unit <1>: Data types. (line 174)
* unitbox: Paths. (line 44)
-* unitbox <1>: three. (line 347)
+* unitbox <1>: three. (line 367)
* unitcircle: Paths. (line 17)
* unitcircle <1>: Paths. (line 17)
-* unitcircle <2>: three. (line 315)
+* unitcircle <2>: three. (line 335)
* unitrand: Mathematical functions.
(line 39)
* unitsize: Figure size. (line 39)
@@ -10186,7 +10393,7 @@ Index
(line 6)
* unpacking: Rest arguments. (line 39)
* unravel: Import. (line 29)
-* up: three. (line 375)
+* up: three. (line 395)
* update: Files. (line 38)
* UpsideDown: Frames and pictures.
(line 104)
@@ -10199,47 +10406,48 @@ Index
* user-defined operators: User-defined operators.
(line 6)
* usleep: Data types. (line 379)
+* v3d: three. (line 300)
* value: math. (line 34)
* value <1>: math. (line 37)
* var: Variable initializers.
(line 55)
* variable initializers: Variable initializers.
(line 6)
-* vectorfield: graph. (line 1004)
-* vectorfield <1>: graph. (line 1043)
+* vectorfield: graph. (line 1023)
+* vectorfield <1>: graph. (line 1062)
* vectorfield3: graph3. (line 157)
-* vectorization: Arrays. (line 331)
+* vectorization: Arrays. (line 335)
* verbatim: Frames and pictures.
(line 297)
-* vertex-dependent colors: three. (line 109)
+* vertex-dependent colors: three. (line 119)
* Vertical: flowchart. (line 77)
* Viewport: three. (line 76)
* viewportheight: LaTeX usage. (line 50)
-* viewportmargin: three. (line 303)
-* viewportsize: three. (line 303)
+* viewportmargin: three. (line 323)
+* viewportsize: three. (line 323)
* viewportwidth: LaTeX usage. (line 50)
-* views: three. (line 272)
+* views: three. (line 279)
* vim: Editing modes. (line 32)
* virtual functions: Structures. (line 182)
* void: Data types. (line 10)
* W: Labels. (line 18)
-* WebGL: three. (line 223)
+* WebGL: three. (line 233)
* whatever: Paths and guides. (line 246)
* Wheel: palette. (line 22)
* wheel mouse: GUI. (line 6)
* while: Programming. (line 48)
* White: three. (line 76)
-* white-space string delimiter mode: Arrays. (line 362)
+* white-space string delimiter mode: Arrays. (line 366)
* width: LaTeX usage. (line 50)
* windingnumber: Paths and guides. (line 283)
-* word: Arrays. (line 362)
+* word: Arrays. (line 366)
* write: Files. (line 57)
-* write <1>: Arrays. (line 401)
-* X: three. (line 315)
+* write <1>: Arrays. (line 405)
+* X: three. (line 335)
* xasy: GUI. (line 6)
* xaxis3: graph3. (line 7)
* xdr: Files. (line 80)
-* xelatex: Options. (line 157)
+* xelatex: Options. (line 167)
* XEquals: graph. (line 265)
* xequals: graph. (line 278)
* xlimits: graph. (line 639)
@@ -10248,10 +10456,10 @@ Index
* xpart: Data types. (line 94)
* xpart <1>: Data types. (line 185)
* xscale: Transforms. (line 30)
-* xscale3: three. (line 485)
+* xscale3: three. (line 501)
* xtick: graph. (line 330)
-* XY: three. (line 500)
-* XY <1>: three. (line 515)
+* XY: three. (line 516)
+* XY <1>: three. (line 531)
* XYEquals: graph3. (line 21)
* XYZero: graph3. (line 21)
* XZEquals: graph3. (line 21)
@@ -10261,7 +10469,7 @@ Index
(line 6)
* Y <1>: Mathematical functions.
(line 48)
-* Y <2>: three. (line 315)
+* Y <2>: three. (line 335)
* yaxis3: graph3. (line 7)
* YEquals: graph. (line 128)
* yequals: graph. (line 278)
@@ -10269,14 +10477,14 @@ Index
* ypart: Data types. (line 97)
* ypart <1>: Data types. (line 188)
* yscale: Transforms. (line 32)
-* yscale3: three. (line 487)
+* yscale3: three. (line 503)
* ytick: graph. (line 330)
-* YX: three. (line 515)
-* YZ: three. (line 515)
+* YX: three. (line 531)
+* YZ: three. (line 531)
* YZEquals: graph3. (line 21)
* YZero: graph. (line 123)
* YZZero: graph3. (line 21)
-* Z: three. (line 315)
+* Z: three. (line 335)
* zaxis3: graph3. (line 7)
* zeroTransform: Transforms. (line 44)
* zerowinding: Pens. (line 164)
@@ -10293,158 +10501,165 @@ Index
* zeta: Mathematical functions.
(line 48)
* zpart: Data types. (line 191)
-* zscale3: three. (line 489)
-* ZX: three. (line 515)
-* ZX <1>: three. (line 515)
-* ZY: three. (line 515)
+* zscale3: three. (line 505)
+* ZX: three. (line 531)
+* ZX <1>: three. (line 531)
+* ZY: three. (line 531)

Tag Table:
Node: Top570
-Node: Description7200
-Node: Installation11286
-Node: UNIX binary distributions12332
-Node: MacOS X binary distributions13455
-Node: Microsoft Windows14043
-Node: Configuring15250
-Node: Search paths19862
-Node: Compiling from UNIX source20870
-Node: Editing modes24021
-Node: Git26443
-Node: Uninstall26950
-Node: Tutorial27296
-Node: Drawing in batch mode28143
-Node: Drawing in interactive mode29019
-Node: Figure size30051
-Node: Labels31646
-Node: Paths32474
-Ref: unitcircle33090
-Node: Drawing commands34988
-Node: draw36796
-Ref: arrows37978
-Node: fill43494
-Ref: gradient shading44540
-Node: clip49154
-Node: label49903
-Ref: Label50503
-Node: Bezier curves56361
-Node: Programming60261
-Ref: array iteration62014
-Node: Data types62181
-Ref: format72949
-Node: Paths and guides77395
-Ref: circle77649
-Ref: extension87349
-Node: Pens94159
-Ref: fillrule101850
-Ref: basealign102754
-Ref: transparency106436
-Ref: makepen110030
-Ref: overwrite110914
-Node: Transforms112128
-Node: Frames and pictures114067
-Ref: envelope115225
-Ref: size116318
-Ref: unitsize117305
-Ref: shipout118378
-Ref: filltype120729
-Ref: add124142
-Ref: add about125084
-Ref: tex128114
-Node: Files129010
-Ref: cd130067
-Ref: scroll134969
-Node: Variable initializers137887
-Node: Structures140604
-Node: Operators148182
-Node: Arithmetic & logical148496
-Node: Self & prefix operators150866
-Node: User-defined operators151660
-Node: Implicit scaling152573
-Node: Functions153136
-Ref: stack overflow156278
-Node: Default arguments156560
-Node: Named arguments157316
-Node: Rest arguments159886
-Node: Mathematical functions163008
-Node: Arrays167665
-Ref: sort174954
-Ref: tridiagonal177865
-Ref: solve179096
-Node: Slices183236
-Node: Casts187144
-Node: Import189414
-Node: Static194995
-Node: LaTeX usage197881
-Node: Base modules204376
-Node: plain206853
-Node: simplex207527
-Node: math207800
-Node: interpolate210383
-Node: geometry210662
-Node: trembling211256
-Node: stats211525
-Node: patterns211784
-Node: markers212019
-Node: map213878
-Node: tree214302
-Node: binarytree214486
-Node: drawtree215153
-Node: syzygy215354
-Node: feynman215628
-Node: roundedpath215902
-Node: animation216184
-Ref: animate216605
-Node: embed217717
-Node: slide218671
-Node: MetaPost219002
-Node: babel219718
-Node: labelpath219950
-Node: labelpath3220770
-Node: annotate221081
-Node: CAD221551
-Node: graph221861
-Ref: ticks229021
-Ref: pathmarkers242746
-Ref: marker243217
-Ref: markuniform243571
-Ref: errorbars245379
-Ref: automatic scaling249858
-Node: palette261573
-Ref: images261691
-Ref: image265865
-Ref: logimage266386
-Ref: penimage267492
-Ref: penfunctionimage267755
-Node: three268527
-Ref: PostScript3D298054
-Node: obj299792
-Node: graph3300041
-Ref: GaussianSurface305324
-Node: grid3306474
-Node: solids307259
-Node: tube308251
-Node: flowchart310481
-Node: contour315124
-Node: contour3320439
-Node: smoothcontour3320751
-Node: slopefield322472
-Node: ode323962
-Node: Options324219
-Ref: configuration file331127
-Ref: settings331127
-Ref: texengines332391
-Ref: convert332391
-Node: Interactive mode335835
-Ref: history337985
-Node: GUI339288
-Node: GUI installation339839
-Node: GUI usage340572
-Node: PostScript to Asymptote341635
-Node: Help342394
-Node: Debugger344068
-Node: Credits345824
-Node: Index346932
+Node: Description7317
+Node: Installation11564
+Node: UNIX binary distributions12610
+Node: MacOS X binary distributions13733
+Node: Microsoft Windows14321
+Node: Configuring15529
+Node: Search paths20142
+Node: Compiling from UNIX source21150
+Node: Editing modes24301
+Node: Git26723
+Node: Uninstall27230
+Node: Tutorial27576
+Node: Drawing in batch mode28423
+Node: Drawing in interactive mode29299
+Node: Figure size30331
+Node: Labels31926
+Node: Paths32754
+Ref: unitcircle33370
+Node: Drawing commands35268
+Node: draw37076
+Ref: arrows38258
+Node: fill43773
+Ref: gradient shading44819
+Node: clip49433
+Node: label50182
+Ref: Label50782
+Node: Bezier curves56639
+Node: Programming60539
+Ref: array iteration62292
+Node: Data types62459
+Ref: format73227
+Node: Paths and guides77673
+Ref: circle77927
+Ref: extension87627
+Node: Pens94437
+Ref: fillrule102128
+Ref: basealign103032
+Ref: transparency106714
+Ref: makepen110308
+Ref: overwrite111192
+Node: Transforms112406
+Node: Frames and pictures114345
+Ref: envelope115503
+Ref: size116596
+Ref: unitsize117583
+Ref: shipout118656
+Ref: filltype121007
+Ref: add124420
+Ref: add about125362
+Ref: tex128392
+Node: Files129287
+Ref: cd130344
+Ref: scroll135246
+Node: Variable initializers138164
+Node: Structures140881
+Node: Operators148454
+Node: Arithmetic & logical148768
+Node: Self & prefix operators151138
+Node: User-defined operators151932
+Node: Implicit scaling152845
+Node: Functions153408
+Ref: stack overflow156525
+Node: Default arguments156807
+Node: Named arguments157563
+Node: Rest arguments160133
+Node: Mathematical functions163254
+Node: Arrays167911
+Ref: sort175350
+Ref: tridiagonal178261
+Ref: solve179492
+Node: Slices183632
+Node: Casts187540
+Node: Import189810
+Node: Static195380
+Node: LaTeX usage198266
+Node: Base modules204780
+Node: plain207257
+Node: simplex207931
+Node: math208204
+Node: interpolate210871
+Node: geometry211150
+Node: trembling211744
+Node: stats212013
+Node: patterns212272
+Node: markers212507
+Node: map214365
+Node: tree214789
+Node: binarytree214969
+Node: drawtree215636
+Node: syzygy215837
+Node: feynman216111
+Node: roundedpath216385
+Node: animation216667
+Ref: animate217088
+Node: embed218200
+Node: slide219154
+Node: MetaPost219485
+Node: babel220201
+Node: labelpath220433
+Node: labelpath3221253
+Node: annotate221564
+Node: CAD222034
+Node: graph222344
+Ref: ticks229503
+Ref: pathmarkers243225
+Ref: marker243695
+Ref: markuniform244049
+Ref: errorbars245908
+Ref: automatic scaling251037
+Node: palette262747
+Ref: images262865
+Ref: image267161
+Ref: logimage267682
+Ref: penimage268788
+Ref: penfunctionimage269051
+Node: three269823
+Ref: PostScript3D300123
+Node: obj301861
+Node: graph3302110
+Ref: GaussianSurface307392
+Node: grid3308542
+Node: solids309327
+Node: tube310319
+Node: flowchart312549
+Node: contour317192
+Node: contour3323700
+Node: smoothcontour3324012
+Node: slopefield325731
+Node: ode327220
+Node: Options327477
+Ref: configuration file335032
+Ref: settings335032
+Ref: texengines336296
+Ref: convert336296
+Node: Interactive mode339739
+Ref: history341888
+Node: GUI343191
+Node: GUI installation343741
+Node: GUI usage344474
+Node: Command-Line Interface345537
+Node: Language server protocol346979
+Node: PostScript to Asymptote348404
+Node: Help349182
+Node: Debugger350856
+Node: Credits352612
+Node: Index353837

End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/Master/texmf-dist/doc/man/man1/asy.1 b/Master/texmf-dist/doc/man/man1/asy.1
index 4ad758ce371..faa77d42b14 100644
--- a/Master/texmf-dist/doc/man/man1/asy.1
+++ b/Master/texmf-dist/doc/man/man1/asy.1
@@ -31,6 +31,12 @@ in the user's home directory using the long form:
For a complete
description, see the Info files.
.TP
+.B \-GPUindexing
+Compute indexing partial sums on GPU [true].
+.TP
+.B \-GPUinterlock
+Use fragment shader interlock [true].
+.TP
.B \-V,\-View
View output; command-line only.
.TP
@@ -103,12 +109,12 @@ Default output file precision [7].
.B \-divisor n
Garbage collect using purge(divisor=n) [2].
.TP
+.B \-dvisvgmMultipleFiles
+dvisvgm supports multiple files [false].
+.TP
.B \-embed
Embed rendered preview image [true].
.TP
-.B \-envmap
-Enable environment map image-based lighting (Experimental) [false].
-.TP
.B \-exitonEOF
Exit interactive mode on EOF [true].
.TP
@@ -136,9 +142,18 @@ Show summary of options; command-line only.
.B \-historylines n
Retain n lines of history [1000].
.TP
+.B \-ibl
+Enable environment map image-based lighting [false].
+.TP
.B \-iconify
Iconify rendering window [false].
.TP
+.B \-image string
+Environment image name [snowyField].
+.TP
+.B \-imageDir string
+Environment image library directory [ibl].
+.TP
.B \-inlineimage
Generate inline embedded image [false].
.TP
@@ -172,6 +187,12 @@ Use a local interactive history file [false].
.B \-loop
Loop 3D animations [false].
.TP
+.B \-lossy
+Use single precision for V3D reals [false].
+.TP
+.B \-lsp
+Interactive mode for the Language Server Protocol [false].
+.TP
.B \-m,\-mask
Mask fpu exceptions; command-line only.
.TP
@@ -215,7 +236,10 @@ Delay before attempting initial pdf reload [750000].
Initial 3D rendering screen position [(0,0)].
.TP
.B \-prc
-Embed 3D PRC graphics in PDF output [true].
+Embed 3D PRC graphics in PDF output [false].
+.TP
+.B \-prerender resolution
+Prerender V3D objects (0 implies vector output) [0].
.TP
.B \-prompt string
Prompt [> ].
@@ -304,11 +328,17 @@ Wait for child processes to finish before exiting [false].
.B \-warn string
Enable warning; command-line only.
.TP
+.B \-webgl2
+Use webgl2 if available [false].
+.TP
.B \-where
Show where listed variables are declared [false].
.TP
+.B \-wsl
+Run asy under the Windows Subsystem for Linux. [false].
+.TP
.B \-xasy
-Special interactive mode for xasy [false].
+Interactive mode for xasy [false].
.TP
.B \-zoomPinchCap limit
WebGL maximum zoom pinch [100].
diff --git a/Master/texmf-dist/doc/man/man1/asy.man1.pdf b/Master/texmf-dist/doc/man/man1/asy.man1.pdf
index 5ad06c4775f..673db6f0a48 100644
--- a/Master/texmf-dist/doc/man/man1/asy.man1.pdf
+++ b/Master/texmf-dist/doc/man/man1/asy.man1.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/man/man1/twill.man1.pdf b/Master/texmf-dist/doc/man/man1/twill.man1.pdf
new file mode 100644
index 00000000000..fdfd6f9b516
--- /dev/null
+++ b/Master/texmf-dist/doc/man/man1/twill.man1.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/man/man1/xasy.man1.pdf b/Master/texmf-dist/doc/man/man1/xasy.man1.pdf
index 04d738b3e24..17a722d8967 100644
--- a/Master/texmf-dist/doc/man/man1/xasy.man1.pdf
+++ b/Master/texmf-dist/doc/man/man1/xasy.man1.pdf
Binary files differ