summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/doc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-10-06 17:17:34 +0000
committerKarl Berry <karl@freefriends.org>2019-10-06 17:17:34 +0000
commit7f9f7dad00ea5f025578c491005835740f9ffd90 (patch)
tree011a87a78042a82ea3a18f5c08e60f6a3930bf0b /Build/source/utils/asymptote/doc
parent37d8fb68e502daabe6aa5f5ae9fb78191f275742 (diff)
asy 2.56 sources
git-svn-id: svn://tug.org/texlive/trunk@52300 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/asymptote/doc')
-rw-r--r--Build/source/utils/asymptote/doc/CAD.pdfbin67528 -> 167838 bytes
-rw-r--r--Build/source/utils/asymptote/doc/FAQ/asy-faq.info2
-rwxr-xr-xBuild/source/utils/asymptote/doc/FAQ/install-sh429
-rw-r--r--Build/source/utils/asymptote/doc/Makefile.in31
-rw-r--r--Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdfbin31564 -> 77296 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asy-latex.pdfbin194549 -> 194542 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asy.133
-rw-r--r--Build/source/utils/asymptote/doc/asyRefCard.pdfbin53680 -> 121144 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asymptote.pdfbin1290568 -> 1296654 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asymptote.texi235
-rwxr-xr-xBuild/source/utils/asymptote/doc/install-sh429
-rw-r--r--Build/source/utils/asymptote/doc/png/Makefile.in4
-rw-r--r--Build/source/utils/asymptote/doc/png/asymptote.info1018
13 files changed, 1192 insertions, 989 deletions
diff --git a/Build/source/utils/asymptote/doc/CAD.pdf b/Build/source/utils/asymptote/doc/CAD.pdf
index 0dfca5939ee..3bcbf54f35c 100644
--- a/Build/source/utils/asymptote/doc/CAD.pdf
+++ b/Build/source/utils/asymptote/doc/CAD.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/FAQ/asy-faq.info b/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
index 85f5e93e6a8..8e2bc47ff08 100644
--- a/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
+++ b/Build/source/utils/asymptote/doc/FAQ/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
- 09 Aug 2019
+ 03 Oct 2019
This is the list of Frequently Asked Questions about Asymptote (asy).
diff --git a/Build/source/utils/asymptote/doc/FAQ/install-sh b/Build/source/utils/asymptote/doc/FAQ/install-sh
index 20d8b2eaea9..6781b987bdb 100755
--- a/Build/source/utils/asymptote/doc/FAQ/install-sh
+++ b/Build/source/utils/asymptote/doc/FAQ/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2018-03-11.20; # UTC
+scriptversion=2009-04-28.21; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -35,21 +35,25 @@ scriptversion=2018-03-11.20; # UTC
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
-# 'make' implicit rules from creating a file called install from it
+# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
-tab=' '
nl='
'
-IFS=" $tab$nl"
+IFS=" "" $nl"
-# Set DOITPROG to "echo" to test this script.
+# set DOITPROG to echo to test this script
+# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-}
-doit_exec=${doit:-exec}
+if test -z "$doit"; then
+ doit_exec=exec
+else
+ doit_exec=$doit
+fi
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
@@ -64,6 +68,17 @@ mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
+posix_glob='?'
+initialize_posix_glob='
+ test "$posix_glob" != "?" || {
+ if (set -f) 2>/dev/null; then
+ posix_glob=
+ else
+ posix_glob=:
+ fi
+ }
+'
+
posix_mkdir=
# Desired mode of installed file.
@@ -82,7 +97,7 @@ dir_arg=
dst_arg=
copy_on_change=false
-is_target_a_directory=possibly
+no_target_directory=
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@@ -122,57 +137,42 @@ while test $# -ne 0; do
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
- shift;;
+ shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
- case $mode in
- *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
- echo "$0: invalid mode: $mode" >&2
- exit 1;;
- esac
- shift;;
+ case $mode in
+ *' '* | *' '* | *'
+'* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
-o) chowncmd="$chownprog $2"
- shift;;
+ shift;;
-s) stripcmd=$stripprog;;
- -t)
- is_target_a_directory=always
- dst_arg=$2
- # Protect names problematic for 'test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
- shift;;
+ -t) dst_arg=$2
+ shift;;
- -T) is_target_a_directory=never;;
+ -T) no_target_directory=true;;
--version) echo "$0 $scriptversion"; exit $?;;
- --) shift
- break;;
+ --) shift
+ break;;
- -*) echo "$0: invalid option: $1" >&2
- exit 1;;
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
*) break;;
esac
shift
done
-# We allow the use of options -d and -T together, by making -d
-# take the precedence; this is for compatibility with GNU install.
-
-if test -n "$dir_arg"; then
- if test -n "$dst_arg"; then
- echo "$0: target directory not allowed when installing a directory." >&2
- exit 1
- fi
-fi
-
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
@@ -186,10 +186,6 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
fi
shift # arg
dst_arg=$arg
- # Protect names problematic for 'test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
done
fi
@@ -198,26 +194,13 @@ if test $# -eq 0; then
echo "$0: no input file specified." >&2
exit 1
fi
- # It's OK to call 'install-sh -d' without argument.
+ # It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
- if test $# -gt 1 || test "$is_target_a_directory" = always; then
- if test ! -d "$dst_arg"; then
- echo "$0: $dst_arg: Is not a directory." >&2
- exit 1
- fi
- fi
-fi
-
-if test -z "$dir_arg"; then
- do_exit='(exit $ret); exit $ret'
- trap "ret=129; $do_exit" 1
- trap "ret=130; $do_exit" 2
- trap "ret=141; $do_exit" 13
- trap "ret=143; $do_exit" 15
+ trap '(exit $?); exit' 1 2 13 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
@@ -228,16 +211,16 @@ if test -z "$dir_arg"; then
*[0-7])
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw='% 200'
+ u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw=,u+rw
+ u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
@@ -245,9 +228,9 @@ fi
for src
do
- # Protect names problematic for 'test' and other utilities.
+ # Protect names starting with `-'.
case $src in
- -* | [=\(\)!]) src=./$src;;
+ -*) src=./$src;;
esac
if test -n "$dir_arg"; then
@@ -269,115 +252,129 @@ do
echo "$0: no destination specified." >&2
exit 1
fi
+
dst=$dst_arg
+ # Protect names starting with `-'.
+ case $dst in
+ -*) dst=./$dst;;
+ esac
- # If destination is a directory, append the input filename.
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
if test -d "$dst"; then
- if test "$is_target_a_directory" = never; then
- echo "$0: $dst_arg: Is a directory" >&2
- exit 1
+ if test -n "$no_target_directory"; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
fi
dstdir=$dst
- dstbase=`basename "$src"`
- case $dst in
- */) dst=$dst$dstbase;;
- *) dst=$dst/$dstbase;;
- esac
+ dst=$dstdir/`basename "$src"`
dstdir_status=0
else
- dstdir=`dirname "$dst"`
+ # Prefer dirname, but fall back on a substitute if dirname fails.
+ dstdir=`
+ (dirname "$dst") 2>/dev/null ||
+ expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$dst" : 'X\(//\)[^/]' \| \
+ X"$dst" : 'X\(//\)$' \| \
+ X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+ echo X"$dst" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'
+ `
+
test -d "$dstdir"
dstdir_status=$?
fi
fi
- case $dstdir in
- */) dstdirslash=$dstdir;;
- *) dstdirslash=$dstdir/;;
- esac
-
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, rely on $mkdir_umask.
- if test -n "$dir_arg"; then
- mkdir_mode=-m$mode
- else
- mkdir_mode=
- fi
-
- posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- # Note that $RANDOM variable is not portable (e.g. dash); Use it
- # here however when possible just to lower collision chance.
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-
- trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- # Because "mkdir -p" follows existing symlinks and we likely work
- # directly in world-writeable /tmp, make sure that the '$tmpdir'
- # directory is successfully created first before we actually test
- # 'mkdir -p' feature.
- if (umask $mkdir_umask &&
- $mkdirprog $mkdir_mode "$tmpdir" &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- test_tmpdir="$tmpdir/a"
- ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
- fi
- trap '' 0;;
- esac;;
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writeable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
esac
if
$posix_mkdir && (
- umask $mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
@@ -387,51 +384,53 @@ do
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
- /*) prefix='/';;
- [-=\(\)!]*) prefix='./';;
- *) prefix='';;
+ /*) prefix='/';;
+ -*) prefix='./';;
+ *) prefix='';;
esac
+ eval "$initialize_posix_glob"
+
oIFS=$IFS
IFS=/
- set -f
+ $posix_glob set -f
set fnord $dstdir
shift
- set +f
+ $posix_glob set +f
IFS=$oIFS
prefixes=
for d
do
- test X"$d" = X && continue
-
- prefix=$prefix$d
- if test -d "$prefix"; then
- prefixes=
- else
- if $posix_mkdir; then
- (umask=$mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
- # Don't fail if two instances are running concurrently.
- test -d "$prefix" || exit 1
- else
- case $prefix in
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
- *) qprefix=$prefix;;
- esac
- prefixes="$prefixes '$qprefix'"
- fi
- fi
- prefix=$prefix/
+ test -z "$d" && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
done
if test -n "$prefixes"; then
- # Don't fail if two instances are running concurrently.
- (umask $mkdir_umask &&
- eval "\$doit_exec \$mkdirprog $prefixes") ||
- test -d "$dstdir" || exit 1
- obsolete_mkdir_used=true
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
fi
fi
fi
@@ -444,25 +443,14 @@ do
else
# Make a couple of temp file names in the proper directory.
- dsttmp=${dstdirslash}_inst.$$_
- rmtmp=${dstdirslash}_rm.$$_
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
- (umask $cp_umask &&
- { test -z "$stripcmd" || {
- # Create $dsttmp read-write so that cp doesn't create it read-only,
- # which would cause strip to fail.
- if test -z "$doit"; then
- : >"$dsttmp" # No need to fork-exec 'touch'.
- else
- $doit touch "$dsttmp"
- fi
- }
- } &&
- $doit_exec $cpprog "$src" "$dsttmp") &&
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
@@ -477,12 +465,15 @@ do
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
- set -f &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+ eval "$initialize_posix_glob" &&
+ $posix_glob set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
- set +f &&
+ $posix_glob set +f &&
+
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
@@ -495,24 +486,24 @@ do
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
- { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
- } ||
- { echo "$0: cannot unlink or rename $dst" >&2
- (exit 1); exit 1
- }
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
@@ -521,9 +512,9 @@ do
done
# Local variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
+# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC0"
+# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:
diff --git a/Build/source/utils/asymptote/doc/Makefile.in b/Build/source/utils/asymptote/doc/Makefile.in
index 58dfc179df5..8888df01453 100644
--- a/Build/source/utils/asymptote/doc/Makefile.in
+++ b/Build/source/utils/asymptote/doc/Makefile.in
@@ -24,7 +24,7 @@ asymptote.sty:
dvi: doc asymptote.dvi
-doc: $(DOCFILES) asy.1 faq latexusage.eps
+doc: $(DOCFILES) asy.1 faq
cd png && $(MAKE) all
manpage: $(MANFILES)
@@ -41,19 +41,13 @@ faq:
%.pdf: %.asy
$(ASY) -f pdf -noprc $<
-latexusage.dvi: latexusage.tex asymptote.sty
+latexusage.pdf: latexusage.tex asymptote.sty
rm -f latexusage-*
rm -f latexusage.pre
rm -f latexusage.aux
- latex latexusage
+ pdflatex latexusage
$(ASY) -noprc latexusage-*.asy
- latex latexusage
-
-latexusage.eps: latexusage.dvi
- dvips -o latexusage.eps latexusage
-
-latexusage.pdf: latexusage.dvi
- dvipdf -P latexusage
+ pdflatex latexusage
options: ../settings.cc
$(ASY) -h 2>&1 | grep -iv Asymptote > options
@@ -72,19 +66,16 @@ asymptote.pdf: $(SOURCE) $(ASYFILES:.asy=.pdf) latexusage.pdf
-$(TEXI2DVI) --pdf asymptote.texi
CAD.pdf: CAD.tex CAD1.eps
- latex CAD
- latex CAD
- latex CAD
- dvipdf -P CAD
+ pdflatex CAD
+ pdflatex CAD
+ pdflatex CAD
TeXShopAndAsymptote.pdf: TeXShopAndAsymptote.tex
- latex TeXShopAndAsymptote
- latex TeXShopAndAsymptote
- dvipdf -P TeXShopAndAsymptote
+ pdflatex TeXShopAndAsymptote
+ pdflatex TeXShopAndAsymptote
asyRefCard.pdf: asyRefCard.tex
- tex asyRefCard
- dvipdf -P asyRefCard
+ pdftex asyRefCard
clean: FORCE
-rm -f asy-latex.{aux,idx,ins,log,toc}
@@ -112,7 +103,7 @@ install-prebuilt: install-man options
cd png && $(MAKE) install
cd FAQ && $(MAKE) install-prebuilt
-install-all: $(DOCFILES) $(MANFILES) faq latexusage.eps install-man
+install-all: $(DOCFILES) $(MANFILES) faq install-man
cd png && $(MAKE) install-all
cd FAQ && $(MAKE) install-info
diff --git a/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf b/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
index 1d281e55ac8..ec5dd90e3da 100644
--- a/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
+++ b/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/asy-latex.pdf b/Build/source/utils/asymptote/doc/asy-latex.pdf
index 134eef983cf..07a8671e0b0 100644
--- a/Build/source/utils/asymptote/doc/asy-latex.pdf
+++ b/Build/source/utils/asymptote/doc/asy-latex.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/asy.1 b/Build/source/utils/asymptote/doc/asy.1
index d9380da919f..563f8a3cd64 100644
--- a/Build/source/utils/asymptote/doc/asy.1
+++ b/Build/source/utils/asymptote/doc/asy.1
@@ -34,6 +34,9 @@ description, see the Info files.
.B \-V,\-View
View output; command-line only.
.TP
+.B \-absolute
+Use absolute WebGL dimensions [false].
+.TP
.B \-a,\-align C|B|T|Z
Center, Bottom, Top, or Zero page alignment [C].
.TP
@@ -43,9 +46,6 @@ Directional page alignment (overrides align) [(0,0)].
.B \-antialias n
Antialiasing width for rasterized output [2].
.TP
-.B \-arcballradius pixels
-Arcball radius [750].
-.TP
.B \-auto3D
Automatically activate 3D scene [true].
.TP
@@ -91,12 +91,12 @@ Conserve memory at the expense of speed [false].
.B \-d,\-debug
Enable debugging messages [false].
.TP
+.B \-digits n
+Default output file precision [6].
+.TP
.B \-divisor n
Garbage collect using purge(divisor=n) [2].
.TP
-.B \-doubleclick ms
-Emulated double-click timeout [200].
-.TP
.B \-embed
Embed rendered preview image [true].
.TP
@@ -184,6 +184,9 @@ View output from multiple batch-mode files [false].
.B \-multisample n
Multisampling width for screen images [4].
.TP
+.B \-offline
+Produce offline html files [false].
+.TP
.B \-offscreen
Use offscreen rendering [false].
.TP
@@ -238,6 +241,12 @@ Disable system call [true].
.B \-scroll n
Scroll standard output n lines at a time [0].
.TP
+.B \-shiftHoldDistance n
+WebGL touch screen distance limit for shift mode [20].
+.TP
+.B \-shiftWaitTime ms
+WebGL touch screen shift mode delay [200].
+.TP
.B \-spinstep deg/s
Spin speed [60].
.TP
@@ -280,6 +289,12 @@ Increase verbosity level (can specify multiple times) [0].
.B \-version
Show version; command-line only.
.TP
+.B \-vibrateTime ms
+WebGL shift mode vibrate duration [25].
+.TP
+.B \-viewportmargin pair
+Horizontal and vertical 3D viewport margin [(0.5,0.5)].
+.TP
.B \-wait
Wait for child processes to finish before exiting [false].
.TP
@@ -292,6 +307,12 @@ Show where listed variables are declared [false].
.B \-xasy
Special interactive mode for xasy [false].
.TP
+.B \-zoomPinchCap limit
+WebGL maximum zoom pinch [100].
+.TP
+.B \-zoomPinchFactor n
+WebGL zoom pinch sensitivity [10].
+.TP
.B \-zoomfactor factor
Zoom step factor [1.05].
.TP
diff --git a/Build/source/utils/asymptote/doc/asyRefCard.pdf b/Build/source/utils/asymptote/doc/asyRefCard.pdf
index 2aec920eac2..3942e98e208 100644
--- a/Build/source/utils/asymptote/doc/asyRefCard.pdf
+++ b/Build/source/utils/asymptote/doc/asyRefCard.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/asymptote.pdf b/Build/source/utils/asymptote/doc/asymptote.pdf
index acb402ed1e8..2bdf1b71d98 100644
--- a/Build/source/utils/asymptote/doc/asymptote.pdf
+++ b/Build/source/utils/asymptote/doc/asymptote.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/asymptote.texi b/Build/source/utils/asymptote/doc/asymptote.texi
index b803c7cfc33..aca2cd69b35 100644
--- a/Build/source/utils/asymptote/doc/asymptote.texi
+++ b/Build/source/utils/asymptote/doc/asymptote.texi
@@ -84,7 +84,7 @@ Installation
Tutorial
* Drawing in batch mode:: Run @code{Asymptote} on a text file
-* Drawing in interactive mode:: Running @code{Asymptote} interactively
+* Drawing in interactive mode:: Running @code{Asymptote} interactively
* Figure size:: Specifying the figure size
* Labels:: Adding @code{LaTeX} labels
* Paths:: Drawing lines and curves
@@ -221,6 +221,9 @@ as @TeX{}/@code{LaTeX} is the de-facto standard for typesetting equations.
@item @code{LaTeX} typesetting of labels, for overall document consistency;
+@item the ability to generate and embed 3D vector @acronym{WebGL}
+graphics within @acronym{HTML} files;
+
@item the ability to generate and embed 3D vector @acronym{PRC}
graphics within @acronym{PDF} files;
@@ -254,7 +257,7 @@ Many of the features of @code{Asymptote} are written in the
@code{Asymptote} language itself. While the stock version of
@code{Asymptote} is designed for mathematics typesetting needs, one can
write @code{Asymptote} modules that tailor it to specific
-applications. A scientific graphing module has already been written
+applications; for example, a scientific graphing module is available
(@pxref{graph}). Examples of @code{Asymptote} code and output,
including animations, are available at
@quotation
@@ -382,7 +385,7 @@ The @code{ImageMagick} package from
@url{http://www.imagemagick.org/script/binary-releases.php}
@noindent
-is required to support output formats other than @acronym{EPS},
+is required to support output formats other than @acronym{HTML},
@acronym{PDF}, @acronym{SVG}, and @acronym{PNG} (@pxref{convert}).
The @code{Python 3} interpreter from @url{http://www.python.org} is only required
if you wish to try out the graphical user interface (@pxref{GUI}).
@@ -396,15 +399,11 @@ subdirectory of the installation directory (by default,
@section Configuring
@cindex configuring
@cindex @code{-V}
-@cindex @code{psviewer}
-@cindex @code{pdfviewer}
-@cindex @code{gs}
In interactive mode, or when given the @code{-V} option (the default
when running @code{Asymptote} on a single file under @code{MSDOS}),
@code{Asymptote} will automatically invoke the @code{PostScript}
viewer @code{gv} (under @code{UNIX}) or @code{gsview} (under
-@code{MSDOS} to display graphical output. These defaults may be
-overridden with the configuration variable @code{psviewer}.
+@code{MSDOS} to display graphical output.
The @code{PostScript} viewer should be capable of automatically
redrawing whenever the output file is updated. The default @code{UNIX}
@code{PostScript} viewer @code{gv} supports this (via a @code{SIGHUP}
@@ -418,40 +417,58 @@ Users of @code{gsview} will need to enable @code{Options/Auto Redisplay}
@code{gsview} window; under @code{UNIX} one must manually redisplay by
pressing the @code{r} key).
+@cindex @code{psviewer}
+@cindex @code{pdfviewer}
+@cindex @code{htmlviewer}
+@cindex @code{gs}
+@cindex @code{display}
+@cindex @code{animate}
@cindex @code{settings}
@cindex configuration file
Configuration variables are most easily set as @code{Asymptote}
variables in an optional configuration file @code{config.asy}
@pxref{configuration file}).
-Here are the default values of several important configuration
-variables under @code{UNIX}:
+For example, the setting @code{pdfviewer} specifies the location of
+the @acronym{PDF} viewer. Here are the default values of several
+important configuration variables under @code{UNIX}:
@noindent
@verbatim
import settings;
-psviewer="gv";
pdfviewer="acroread";
+htmlviewer="google-chrome";
+psviewer="gv";
+display="display";
+animate="animate";
gs="gs";
+libgs="";
@end verbatim
@noindent
@cindex @code{cmd}
-Under @code{MSDOS}, the (installation-dependent) default values of
-these configuration variables are determined automatically from the
-@code{Microsoft Windows} registry. Viewer settings (such as
-@code{psviewer} and @code{pdfviewer}) can be set to the string
-@code{cmd} to request the application normally associated with the
-corresponding file type.
-
-For @acronym{PDF} format output, the @code{gs} setting specifies the
-location of the @code{PostScript}-to-@acronym{PDF} processor @code{Ghostscript},
-available from @url{http://downloads.ghostscript.com/public}.
-
-The setting @code{pdfviewer} specifies the location of the @acronym{PDF}
-viewer. On @code{UNIX} systems, to support automatic document
-reloading in @code{Adobe Reader}, we recommend copying the file
-@code{reload.js} from the @code{Asymptote} system directory (by default,
-@code{@value{Datadir}/asymptote} under @code{UNIX} to
+Under @code{MSDOS}, the viewer settings
+@code{htmlviewer}, @code{pdfviewer}, @code{psviewer},
+@code{display}, and @code{animate} default to the string @code{cmd},
+requesting the application normally associated with each file type.
+The (installation-dependent) default values of @code{gs}
+and @code{libgs} are determined automatically from the @code{Microsoft
+Windows} registry. The @code{gs} setting specifies the location of the
+@code{PostScript} processor @code{Ghostscript}, available from
+@url{https://www.ghostscript.com/}.
+
+@noindent
+@cindex @code{htmlviewer}
+The configuration variable @code{htmlviewer} specifies the
+browser to use to display 3D @code{WebGL} output.
+The default setting is @code{google-chrome} under @code{UNIX} and
+@code{cmd} under @code{Microsoft Windows}. Note that @code{Internet Explorer}
+does not support @code{WebGL}; @code{Microsoft Windows} users should set their
+default html browser to @code{chrome} or @code{microsoft-edge}.
+
+On @code{UNIX} systems, to support automatic document
+reloading of @code{PDF} files in @code{Adobe Reader}, we recommend
+copying the file @code{reload.js} from the @code{Asymptote} system
+directory (by default, @code{@value{Datadir}/asymptote} under @code{UNIX} to
@code{~/.adobe/Acrobat/x.x/JavaScripts/},
where @code{x.x} represents the appropriate @code{Adobe Reader}
version number. The automatic document reload feature must then be
@@ -485,22 +502,17 @@ configuration variables @code{paperwidth} and @code{paperheight}.
@cindex @code{texcommand}
@cindex @code{dvips}
@cindex @code{dvisvgm}
-@cindex @code{libgs}
@cindex @code{convert}
-@cindex @code{display}
-@cindex @code{animate}
@cindex @code{ImageMagick}
-The following configuration variables normally do not require adjustment:
+@cindex @code{asygl}
+These additional configuration variables normally do not require adjustment:
@verbatim
config
texpath
texcommand
dvips
dvisvgm
-libgs
convert
-display
-animate
@end verbatim
@noindent
@@ -777,7 +789,7 @@ make uninstall
@menu
* Drawing in batch mode:: Run @code{Asymptote} on a text file
-* Drawing in interactive mode:: Running @code{Asymptote} interactively
+* Drawing in interactive mode:: Running @code{Asymptote} interactively
* Figure size:: Specifying the figure size
* Labels:: Adding @code{LaTeX} labels
* Paths:: Drawing lines and curves
@@ -4384,7 +4396,7 @@ type of the result:
addition
@cindex @code{-}
@item -
-subtractiona
+subtraction
@cindex @code{*}
@item *
multiplication
@@ -5585,7 +5597,7 @@ real[] A=fin;
Another useful mode is comma-separated-value mode,
@code{file csv(bool b=true)}, which causes reads to respect comma delimiters:
@verbatim
-file fin=csv(input("test.txt"));
+file fin=input("test.txt").csv();
real[] A=fin;
@end verbatim
@@ -5594,7 +5606,7 @@ To restrict the number of values read, use the @code{file dimension(int)}
function:
@verbatim
file fin=input("test.txt");
-real[] A=dimension(fin,10);
+real[] A=fin.dimension(10);
@end verbatim
This reads 10 values into A, unless end-of-file (or end-of-line in line mode)
@@ -7786,17 +7798,70 @@ for drawing optional mesh lines for each Bezier patch. The optional
@code{name} parameter is used as a prefix for naming the surface
patches in the @acronym{PRC} model tree.
Here material is a structure defined in @code{three_light.asy}:
+@cindex @code{material}
+@cindex @code{diffusepen}
+@cindex @code{emissivepen}
+@cindex @code{specularpen}
+@cindex @code{opacity}
+@cindex @code{shininess}
+@cindex @code{metallic}
+@cindex @code{freshnel0}
@verbatim
struct material {
pen[] p; // diffusepen,emissivepen,specularpen
real opacity;
real shininess;
-...
+ real metallic;
+ real fresnel0;
}
@end verbatim
@noindent
-These material properties are used to implement @code{OpenGL}-style lighting,
-based on the Phong-Blinn specular model. Sample Bezier surfaces are
+@cindex @code{PBR}
+@cindex @code{physically based rendering}
+These material properties are used to implement physically based
+rendering (PBR) using light properties defined in @code{plain_prethree.asy}
+and @code{three_light.asy}:
+@cindex @code{light}
+@cindex @code{diffuse}
+@cindex @code{specular}
+@cindex @code{background}
+@cindex @code{specularfactor}
+@cindex @code{position}
+@cindex @code{currentlight}
+@cindex @code{Viewport}
+@cindex @code{White}
+@cindex @code{Headlamp}
+@cindex @code{nolight}
+@verbatim
+struct light {
+ real[][] diffuse;
+ real[][] specular;
+ pen background=nullpen; // Background color of the 3D canvas.
+ real specularfactor;
+ triple[] position; // Only directional lights are currently implemented.
+}
+
+light Viewport=light(specularfactor=3,(0.25,-0.25,1));
+
+light White=light(new pen[] {rgb(0.38,0.38,0.45),rgb(0.6,0.6,0.67),
+ rgb(0.5,0.5,0.57)},specularfactor=3,
+ new triple[] {(-2,-1.5,-0.5),(2,1.1,-2.5),(-0.5,0,2)});
+
+light Headlamp=light(gray(0.8),specular=gray(0.7),
+ specularfactor=3,dir(42,48));
+
+currentlight=Headlamp;
+
+light nolight;
+@end verbatim
+@cindex @code{background}
+@cindex @code{transparent}
+The @code{background} pen can be use to set the 3D @code{OpenGL}
+background colour (the default is white). In the case of
+3D @code{WebGL} images one can request a completely transparent background with
+@code{currentlight.background=black+opacity(0.0);}
+
+Sample Bezier surfaces are
contained in the example files @code{@uref{http://asymptote.sourceforge.net/gallery/BezierSurface.pdf,,BezierSurface}@uref{http://asymptote.sourceforge.net/gallery/BezierSurface.asy,,.asy}}, @code{@uref{http://asymptote.sourceforge.net/gallery/teapot.pdf,,teapot}@uref{http://asymptote.sourceforge.net/gallery/teapot.asy,,.asy}},
and @code{@uref{http://asymptote.sourceforge.net/gallery/parametricsurface.pdf,,parametricsurface}@uref{http://asymptote.sourceforge.net/gallery/parametricsurface.asy,,.asy}}. The structure @code{render} contains
specialized rendering options documented at the beginning of module
@@ -7863,14 +7928,16 @@ normals or vertex colors:
@cindex @code{tessellation}
@verbatim
void draw(picture pic=currentpicture, triple[] v, int[][] vi,
- triple[] n={}, int[][] ni={}, material m=currentpen, pen[] p={},
- int[][] pi={}, light light=currentlight);
+ triple[] n={}, int[][] ni=vi, material m=currentpen, pen[] p={},
+ int[][] pi=vi, light light=currentlight);
@end verbatim
-Here, the triple array @code{v} lists the distinct vertices, while
-the array @code{vi} lists integer arrays of length 3 containing
-the indices of @code{v} corresponding to the vertices of each
+Here, the triple array @code{v} lists the (typically distinct) vertices, while
+the array @code{vi} contains integer arrays of length 3 containing
+the indices of the elements in @code{v} that form the vertices of each
triangle. Similarly, the arguments @code{n} and @code{ni} contain
-optional normal data and @code{p} and @code{pi} contain optional pen vertex data.
+optional normal data and @code{p} and @code{pi} contain optional pen
+vertex data. If more than one normal or pen is specified for a vertex, the
+last one specified is used.
An example of this tessellation facility is given in @code{@uref{http://asymptote.sourceforge.net/gallery/triangles.pdf,,triangles}@uref{http://asymptote.sourceforge.net/gallery/triangles.asy,,.asy}}.
@cindex @code{thin}
@@ -7897,18 +7964,17 @@ parameter or the setting @code{thin} is set to @code{false}. The pens
also be used to override these defaults for specific draw commands.
@noindent
-There are four choices for viewing 3D @code{Asymptote} output:
+There are five choices for viewing 3D @code{Asymptote} output:
@enumerate
+
@cindex @code{OpenGL}
@cindex @code{render}
@cindex @code{outformat}
@cindex @code{multisample}
@item Use the native @code{Asymptote} adaptive @code{OpenGL}-based
renderer (with the command-line option @code{-V} and the default settings
-@code{outformat=""} and @code{render=-1}). If you encounter warnings
-from your graphics card driver, try specifying @code{-glOptions=-indirect}
-on the command line. On @code{UNIX} systems with graphics support for
-multisampling, the sample width can be
+@code{outformat=""} and @code{render=-1}). On @code{UNIX} systems with
+graphics support for multisampling, the sample width can be
controlled with the setting @code{multisample}. An initial screen
position can be specified with the pair setting @code{position}, where
negative values are interpreted as relative to the corresponding
@@ -7945,7 +8011,7 @@ The keyboard shortcuts are:
@item y: spin about the Y axis
@item z: spin about the Z axis
@item s: stop spinning
-@item m: rendering mode (solid/mesh/patch)
+@item m: rendering mode (solid/patch/mesh)
@item e: export
@item c: show camera parameters
@item p: play animation
@@ -7961,6 +8027,40 @@ The keyboard shortcuts are:
@item Ctrl-q: exit
@end itemize
+@cindex @code{WebGL}
+@cindex @code{HTML5}
+@cindex @code{mobile browser}
+@item Generate @code{WebGL} interactive vector graphics
+output with the the command-line option and @code{-f html}
+(or the setting @code{outformat="html"}). The resulting
+3D @acronym{HTML} file can then be viewed directly in any modern desktop or
+mobile browser, or even embedded within another web page:
+@verbatim
+<div>
+<object data="logo3.html"
+ style="width:210;height:140;position:relative;top:0;left:0;">
+</object>
+</div>
+@end verbatim
+
+Normally, @code{WebGL} files generated by @code{Asymptote} are
+dynamically remeshed to fit the browser window dimensions.
+However, the setting @code{absolute=true} can be used to force the image to be
+rendered at its designed size (accounting for multiple device pixels
+per @code{css} pixel). This setting should not be used when
+embedding a @code{WebGL} file within another @acronym{HTML} document.
+
+The interactive @code{WebGL} files produced by @code{Asymptote} use the
+default mouse and (many of the same) key bindings as the @code{OpenGL}
+renderer.
+
+By default, viewing the 3D @acronym{HTML} files generated by Asymptote requires
+network access to download the @code{asygl} rendering library, which
+is normally cached by the browser for future use.
+However, the setting @code{offline=true} can be used to embed this
+small (about 42kB) library within a stand-alone @acronym{HTML} file
+that can be viewed offline.
+
@cindex @code{antialias}
@cindex @code{maxviewport}
@cindex @code{maxtile}
@@ -7985,8 +8085,6 @@ setting @code{maxviewport}, which restricts the maximum width and
height of the viewport. On @code{UNIX} systems some graphics
drivers support batch mode (@code{-noV}) rendering in an
iconified window; this can be enabled with the setting @code{iconify=true}.
-Some (broken) @code{UNIX} graphics drivers may require the command line setting
-@code{-glOptions=-indirect}, which requests (slower) indirect rendering.
@cindex @code{prc}
@cindex @code{views}
@@ -8033,7 +8131,7 @@ void size3(picture pic=currentpicture, real x, real y=x, real z=y,
@cindex margins
@cindex @code{viewportmargin}
@cindex @code{viewportsize}
-The resulting simplex linear programming problem is then solved to
+A simplex linear programming problem is then solved to
produce a 3D version of a frame (actually implemented as a 3D picture).
The result is then fit with another application of deferred drawing
to the viewport dimensions corresponding to the usual two-dimensional
@@ -9227,6 +9325,7 @@ variables may also be changed at runtime.
@cindex @code{hyperrefOptions}
@cindex @code{convertOptions}
@cindex @code{gsOptions}
+@cindex @code{htmlviewerOptions}
@cindex @code{psviewerOptions}
@cindex @code{pdfviewerOptions}
@cindex @code{pdfreloadOptions}
@@ -9234,7 +9333,8 @@ variables may also be changed at runtime.
@cindex @code{dvisvgmOptions}
The advanced configuration variables @code{dvipsOptions},
@code{hyperrefOptions}, @code{convertOptions}, @code{gsOptions},
-@code{psviewerOptions}, @code{pdfviewerOptions}, @code{pdfreloadOptions},
+@code{htmlviewerOptions}, @code{psviewerOptions},
+@code{pdfviewerOptions}, @code{pdfreloadOptions},
@code{glOptions}, and @code{dvisvgmOptions} allow specialized options
to be passed as a string to the respective applications or
libraries. The default value of @code{hyperrefOptions} is
@@ -9277,7 +9377,7 @@ produced using the @code{-f} option (or @code{outformat} setting).
@cindex @code{dvisvgm}
@cindex @code{libgs}
To produce @acronym{SVG} output, you will need @code{dvisvgm} (version
-1.5.3 or later) from @url{http://dvisvgm.sourceforge.net} and must use
+2.6.3 or later) from @url{http://dvisvgm.sourceforge.net} and must use
the @code{latex} or @code{tex} tex engine. You might need to adjust
the configuration variable @code{libgs} to point to the location of
your @code{Ghostscript} library @code{libgs.so} (or to an empty
@@ -9510,7 +9610,7 @@ pip3 install cson numpy pyqt5 PyQt5.sip
@end verbatim
Pictures are deconstructed into the @acronym{SVG} image format.
-Since @code{Qt5} does not suport @code{SVG} clipping, you will need
+Since @code{Qt5} does not support @code{SVG} clipping, you will need
the @code{rsvg-convert} utility, which is part of the
@code{librsvg2-tools} package on @code{UNIX} systems
and the @code{librsvg} package on @code{MacOS}; under
@@ -9871,7 +9971,7 @@ Martin Wiebusch, Stefan Knorr, and Supakorn ``Jamie'' Rassameemasmuang.
@c LocalWords: nonoverlapping texengine maxtimes maxheight pdb TEXMFCONFIG Jn
@c LocalWords: piecewisestraight unitrand graphmarkers antialias nolight newl
@c LocalWords: Delaunay Shewchuk convertOptions APPDATA pdfreload tempFile Yn
-@c LocalWords: pdfreloadOptions deferred OpenGL Phong Blinn renderer unitbox
+@c LocalWords: pdfreloadOptions deferred OpenGL renderer unitbox
@c LocalWords: bezulate Shardt's rasterized viewport unitdisk unitplane devel
@c LocalWords: unitcylinder unitcone solidcone unitfrustum unitsphere nslices
@c LocalWords: DPostScript YZZero externalprc nonrendered nosafe KDE
@@ -9945,10 +10045,21 @@ Martin Wiebusch, Stefan Knorr, and Supakorn ``Jamie'' Rassameemasmuang.
@c LocalWords: 5unit 144x144 aligndir smoothcontour3 's 3D 2D cmake
@c LocalWords: 'load 'asy 'lasy 'auto 5bp 1cm 4g 2S 100pt 3t nan 3x
@c LocalWords: 12pt 5mm 25cm 5x 3y 602e 2x 2y 3sin 10cm 204e 10x Ai
-@c LocalWords: Ai Ai Ai Ai Ai Ai Ai 5E 5cm 2N 2E 2n 100d 5z 5y nz
+@c LocalWords: Ai Ai Ai Ai Ai Ai Ai 5E 5cm 2N 2E 2n 100d 5z 5y nz '
@c LocalWords: 5unit Staats implicitsurface overlapedges maxdepth
@c LocalWords: through'' genustwo 144x144 0pt 1filll 's 3D 2D 'load
@c LocalWords: 'asy 'lasy 'auto 5bp 1cm 4g 2S 100pt 3t 12pt 5mm 3x
@c LocalWords: 25cm 5x 3y 602e 2x 2y 3sin 10cm 204e 10x Ai Ai Ai Ai
@c LocalWords: Ai Ai Ai Ai 5E 5cm 2N 2E 2n 100d 5z 5y 5unit 144x144
-@c LocalWords: Frohlich
+@c LocalWords: Frohlich codequoteundirected center 0pt 1filll 's 3D
+@c LocalWords: acknowledgments Colors 2D Color WebGL uref x86 dnf
+@c LocalWords: htmlviewer asygl CPPFLAGS 'load 'asy 'lasy 'auto 5bp
+@c LocalWords: 1cm labeling dotfilltype 4g color colors centered 2S
+@c LocalWords: 100pt 3t forcemath gray colorless miter 12pt 5mm 3x
+@c LocalWords: zeroTransform 25cm Python3 popcount bitreverse 5x 3y
+@c LocalWords: 602e 2x 2y 3sin 10cm 204e 10x Ai Ai Ai Ai Ai Ai Ai
+@c LocalWords: Ai findall ax 5a centers 5E 5cm 2N 2E 2n HTML5 html
+@c LocalWords: logo3 remeshed css 42kB 100d 5z 5y 5unit colored Qt5
+@c LocalWords: behavior beveled usetriangles htmlviewerOptions cson
+@c LocalWords: 144x144 pyqt5 numpy pip3 PyQt5 rsvg librsvg2
+@c LocalWords: librsvg Supakorn Jamie'' Rassameemasmuang
diff --git a/Build/source/utils/asymptote/doc/install-sh b/Build/source/utils/asymptote/doc/install-sh
index 20d8b2eaea9..6781b987bdb 100755
--- a/Build/source/utils/asymptote/doc/install-sh
+++ b/Build/source/utils/asymptote/doc/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2018-03-11.20; # UTC
+scriptversion=2009-04-28.21; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -35,21 +35,25 @@ scriptversion=2018-03-11.20; # UTC
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
-# 'make' implicit rules from creating a file called install from it
+# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
-tab=' '
nl='
'
-IFS=" $tab$nl"
+IFS=" "" $nl"
-# Set DOITPROG to "echo" to test this script.
+# set DOITPROG to echo to test this script
+# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-}
-doit_exec=${doit:-exec}
+if test -z "$doit"; then
+ doit_exec=exec
+else
+ doit_exec=$doit
+fi
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
@@ -64,6 +68,17 @@ mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
+posix_glob='?'
+initialize_posix_glob='
+ test "$posix_glob" != "?" || {
+ if (set -f) 2>/dev/null; then
+ posix_glob=
+ else
+ posix_glob=:
+ fi
+ }
+'
+
posix_mkdir=
# Desired mode of installed file.
@@ -82,7 +97,7 @@ dir_arg=
dst_arg=
copy_on_change=false
-is_target_a_directory=possibly
+no_target_directory=
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@@ -122,57 +137,42 @@ while test $# -ne 0; do
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
- shift;;
+ shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
- case $mode in
- *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
- echo "$0: invalid mode: $mode" >&2
- exit 1;;
- esac
- shift;;
+ case $mode in
+ *' '* | *' '* | *'
+'* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
-o) chowncmd="$chownprog $2"
- shift;;
+ shift;;
-s) stripcmd=$stripprog;;
- -t)
- is_target_a_directory=always
- dst_arg=$2
- # Protect names problematic for 'test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
- shift;;
+ -t) dst_arg=$2
+ shift;;
- -T) is_target_a_directory=never;;
+ -T) no_target_directory=true;;
--version) echo "$0 $scriptversion"; exit $?;;
- --) shift
- break;;
+ --) shift
+ break;;
- -*) echo "$0: invalid option: $1" >&2
- exit 1;;
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
*) break;;
esac
shift
done
-# We allow the use of options -d and -T together, by making -d
-# take the precedence; this is for compatibility with GNU install.
-
-if test -n "$dir_arg"; then
- if test -n "$dst_arg"; then
- echo "$0: target directory not allowed when installing a directory." >&2
- exit 1
- fi
-fi
-
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
@@ -186,10 +186,6 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
fi
shift # arg
dst_arg=$arg
- # Protect names problematic for 'test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
done
fi
@@ -198,26 +194,13 @@ if test $# -eq 0; then
echo "$0: no input file specified." >&2
exit 1
fi
- # It's OK to call 'install-sh -d' without argument.
+ # It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
- if test $# -gt 1 || test "$is_target_a_directory" = always; then
- if test ! -d "$dst_arg"; then
- echo "$0: $dst_arg: Is not a directory." >&2
- exit 1
- fi
- fi
-fi
-
-if test -z "$dir_arg"; then
- do_exit='(exit $ret); exit $ret'
- trap "ret=129; $do_exit" 1
- trap "ret=130; $do_exit" 2
- trap "ret=141; $do_exit" 13
- trap "ret=143; $do_exit" 15
+ trap '(exit $?); exit' 1 2 13 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
@@ -228,16 +211,16 @@ if test -z "$dir_arg"; then
*[0-7])
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw='% 200'
+ u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw=,u+rw
+ u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
@@ -245,9 +228,9 @@ fi
for src
do
- # Protect names problematic for 'test' and other utilities.
+ # Protect names starting with `-'.
case $src in
- -* | [=\(\)!]) src=./$src;;
+ -*) src=./$src;;
esac
if test -n "$dir_arg"; then
@@ -269,115 +252,129 @@ do
echo "$0: no destination specified." >&2
exit 1
fi
+
dst=$dst_arg
+ # Protect names starting with `-'.
+ case $dst in
+ -*) dst=./$dst;;
+ esac
- # If destination is a directory, append the input filename.
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
if test -d "$dst"; then
- if test "$is_target_a_directory" = never; then
- echo "$0: $dst_arg: Is a directory" >&2
- exit 1
+ if test -n "$no_target_directory"; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
fi
dstdir=$dst
- dstbase=`basename "$src"`
- case $dst in
- */) dst=$dst$dstbase;;
- *) dst=$dst/$dstbase;;
- esac
+ dst=$dstdir/`basename "$src"`
dstdir_status=0
else
- dstdir=`dirname "$dst"`
+ # Prefer dirname, but fall back on a substitute if dirname fails.
+ dstdir=`
+ (dirname "$dst") 2>/dev/null ||
+ expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$dst" : 'X\(//\)[^/]' \| \
+ X"$dst" : 'X\(//\)$' \| \
+ X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+ echo X"$dst" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'
+ `
+
test -d "$dstdir"
dstdir_status=$?
fi
fi
- case $dstdir in
- */) dstdirslash=$dstdir;;
- *) dstdirslash=$dstdir/;;
- esac
-
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, rely on $mkdir_umask.
- if test -n "$dir_arg"; then
- mkdir_mode=-m$mode
- else
- mkdir_mode=
- fi
-
- posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- # Note that $RANDOM variable is not portable (e.g. dash); Use it
- # here however when possible just to lower collision chance.
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-
- trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- # Because "mkdir -p" follows existing symlinks and we likely work
- # directly in world-writeable /tmp, make sure that the '$tmpdir'
- # directory is successfully created first before we actually test
- # 'mkdir -p' feature.
- if (umask $mkdir_umask &&
- $mkdirprog $mkdir_mode "$tmpdir" &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- test_tmpdir="$tmpdir/a"
- ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
- fi
- trap '' 0;;
- esac;;
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writeable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
esac
if
$posix_mkdir && (
- umask $mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
@@ -387,51 +384,53 @@ do
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
- /*) prefix='/';;
- [-=\(\)!]*) prefix='./';;
- *) prefix='';;
+ /*) prefix='/';;
+ -*) prefix='./';;
+ *) prefix='';;
esac
+ eval "$initialize_posix_glob"
+
oIFS=$IFS
IFS=/
- set -f
+ $posix_glob set -f
set fnord $dstdir
shift
- set +f
+ $posix_glob set +f
IFS=$oIFS
prefixes=
for d
do
- test X"$d" = X && continue
-
- prefix=$prefix$d
- if test -d "$prefix"; then
- prefixes=
- else
- if $posix_mkdir; then
- (umask=$mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
- # Don't fail if two instances are running concurrently.
- test -d "$prefix" || exit 1
- else
- case $prefix in
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
- *) qprefix=$prefix;;
- esac
- prefixes="$prefixes '$qprefix'"
- fi
- fi
- prefix=$prefix/
+ test -z "$d" && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
done
if test -n "$prefixes"; then
- # Don't fail if two instances are running concurrently.
- (umask $mkdir_umask &&
- eval "\$doit_exec \$mkdirprog $prefixes") ||
- test -d "$dstdir" || exit 1
- obsolete_mkdir_used=true
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
fi
fi
fi
@@ -444,25 +443,14 @@ do
else
# Make a couple of temp file names in the proper directory.
- dsttmp=${dstdirslash}_inst.$$_
- rmtmp=${dstdirslash}_rm.$$_
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
- (umask $cp_umask &&
- { test -z "$stripcmd" || {
- # Create $dsttmp read-write so that cp doesn't create it read-only,
- # which would cause strip to fail.
- if test -z "$doit"; then
- : >"$dsttmp" # No need to fork-exec 'touch'.
- else
- $doit touch "$dsttmp"
- fi
- }
- } &&
- $doit_exec $cpprog "$src" "$dsttmp") &&
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
@@ -477,12 +465,15 @@ do
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
- set -f &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+ eval "$initialize_posix_glob" &&
+ $posix_glob set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
- set +f &&
+ $posix_glob set +f &&
+
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
@@ -495,24 +486,24 @@ do
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
- { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
- } ||
- { echo "$0: cannot unlink or rename $dst" >&2
- (exit 1); exit 1
- }
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
@@ -521,9 +512,9 @@ do
done
# Local variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
+# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC0"
+# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:
diff --git a/Build/source/utils/asymptote/doc/png/Makefile.in b/Build/source/utils/asymptote/doc/png/Makefile.in
index 44e3fbdf4a2..fc36836b010 100644
--- a/Build/source/utils/asymptote/doc/png/Makefile.in
+++ b/Build/source/utils/asymptote/doc/png/Makefile.in
@@ -13,9 +13,9 @@ all: html info
%.png: ../%.asy
cd .. && $(ASY) -f png -o png/ $(notdir $<)
-latexusage.png: ../latexusage.eps
+latexusage.png: ../latexusage.pdf
gs -q -dNOPAUSE -dBATCH -sDEVICE=pngalpha -dEPSCrop -dSAFER -r72x72 \
- -sOutputFile=latexusage.png ../latexusage.eps
+ -sOutputFile=latexusage.png ../latexusage.pdf
index.html: $(SOURCE) $(ASYFILES:.asy=.png) latexusage.png
makeinfo --html ../asymptote -o .
diff --git a/Build/source/utils/asymptote/doc/png/asymptote.info b/Build/source/utils/asymptote/doc/png/asymptote.info
index 408f26e0c8f..e865344c7c0 100644
--- a/Build/source/utils/asymptote/doc/png/asymptote.info
+++ b/Build/source/utils/asymptote/doc/png/asymptote.info
@@ -1,7 +1,7 @@
This is asymptote.info, produced by makeinfo version 6.5 from
asymptote.texi.
-This file documents 'Asymptote', version 2.52.
+This file documents 'Asymptote', version 2.56.
<http://asymptote.sourceforge.net>
@@ -22,7 +22,7 @@ File: asymptote.info, Node: Top, Next: Description, Prev: (dir), Up: (dir)
Asymptote
*********
-This file documents 'Asymptote', version 2.52.
+This file documents 'Asymptote', version 2.56.
<http://asymptote.sourceforge.net>
@@ -68,7 +68,7 @@ Installation
Tutorial
* Drawing in batch mode:: Run 'Asymptote' on a text file
-* Drawing in interactive mode:: Running 'Asymptote' interactively
+* Drawing in interactive mode:: Running 'Asymptote' interactively
* Figure size:: Specifying the figure size
* Labels:: Adding 'LaTeX' labels
* Paths:: Drawing lines and curves
@@ -203,6 +203,9 @@ weaker syntax and capabilities) called 'MetaPost'.
* 'LaTeX' typesetting of labels, for overall document consistency;
+ * the ability to generate and embed 3D vector WebGL graphics within
+ HTML files;
+
* the ability to generate and embed 3D vector PRC graphics within PDF
files;
@@ -234,8 +237,8 @@ weaker syntax and capabilities) called 'MetaPost'.
Many of the features of 'Asymptote' are written in the 'Asymptote'
language itself. While the stock version of 'Asymptote' is designed for
mathematics typesetting needs, one can write 'Asymptote' modules that
-tailor it to specific applications. A scientific graphing module has
-already been written (*note graph::). Examples of 'Asymptote' code and
+tailor it to specific applications; for example, a scientific graphing
+module is available (*note graph::). Examples of 'Asymptote' code and
output, including animations, are available at
<http://asymptote.sourceforge.net/gallery/>
Clicking on an example file name in this manual, like 'Pythagoras', will
@@ -338,7 +341,7 @@ available from <http://www.cs.wisc.edu/~ghost/gsview/>.
The 'ImageMagick' package from
<http://www.imagemagick.org/script/binary-releases.php>
-is required to support output formats other than EPS, PDF, SVG, and PNG
+is required to support output formats other than HTML, PDF, SVG, and PNG
(*note convert::). The 'Python 3' interpreter from
<http://www.python.org> is only required if you wish to try out the
graphical user interface (*note GUI::).
@@ -356,43 +359,51 @@ File: asymptote.info, Node: Configuring, Next: Search paths, Prev: Microsoft
In interactive mode, or when given the '-V' option (the default when
running 'Asymptote' on a single file under 'MSDOS'), 'Asymptote' will
automatically invoke the 'PostScript' viewer 'gv' (under 'UNIX') or
-'gsview' (under 'MSDOS' to display graphical output. These defaults may
-be overridden with the configuration variable 'psviewer'. The
-'PostScript' viewer should be capable of automatically redrawing
-whenever the output file is updated. The default 'UNIX' 'PostScript'
-viewer 'gv' supports this (via a 'SIGHUP' signal). Version 'gv-3.6.3'
-or later (from <http://ftp.gnu.org/gnu/gv/>) is required for interactive
-mode to work properly. Users of 'ggv' will need to enable 'Watch file'
-under 'Edit/Postscript Viewer Preferences'. Users of 'gsview' will need
-to enable 'Options/Auto Redisplay' (however, under 'MSDOS' it is still
+'gsview' (under 'MSDOS' to display graphical output. The 'PostScript'
+viewer should be capable of automatically redrawing whenever the output
+file is updated. The default 'UNIX' 'PostScript' viewer 'gv' supports
+this (via a 'SIGHUP' signal). Version 'gv-3.6.3' or later (from
+<http://ftp.gnu.org/gnu/gv/>) is required for interactive mode to work
+properly. Users of 'ggv' will need to enable 'Watch file' under
+'Edit/Postscript Viewer Preferences'. Users of 'gsview' will need to
+enable 'Options/Auto Redisplay' (however, under 'MSDOS' it is still
necessary to click on the 'gsview' window; under 'UNIX' one must
manually redisplay by pressing the 'r' key).
Configuration variables are most easily set as 'Asymptote' variables
in an optional configuration file 'config.asy' *note configuration
-file::). Here are the default values of several important configuration
-variables under 'UNIX':
+file::). For example, the setting 'pdfviewer' specifies the location of
+the PDF viewer. Here are the default values of several important
+configuration variables under 'UNIX':
import settings;
-psviewer="gv";
pdfviewer="acroread";
+htmlviewer="google-chrome";
+psviewer="gv";
+display="display";
+animate="animate";
gs="gs";
-
-Under 'MSDOS', the (installation-dependent) default values of these
-configuration variables are determined automatically from the 'Microsoft
-Windows' registry. Viewer settings (such as 'psviewer' and 'pdfviewer')
-can be set to the string 'cmd' to request the application normally
-associated with the corresponding file type.
-
- For PDF format output, the 'gs' setting specifies the location of the
-'PostScript'-to-PDF processor 'Ghostscript', available from
-<http://downloads.ghostscript.com/public>.
-
- The setting 'pdfviewer' specifies the location of the PDF viewer. On
-'UNIX' systems, to support automatic document reloading in 'Adobe
-Reader', we recommend copying the file 'reload.js' from the 'Asymptote'
-system directory (by default, '/usr/local/share/asymptote' under 'UNIX'
-to '~/.adobe/Acrobat/x.x/JavaScripts/', where 'x.x' represents the
+libgs="";
+
+Under 'MSDOS', the viewer settings 'htmlviewer', 'pdfviewer',
+'psviewer', 'display', and 'animate' default to the string 'cmd',
+requesting the application normally associated with each file type. The
+(installation-dependent) default values of 'gs' and 'libgs' are
+determined automatically from the 'Microsoft Windows' registry. The
+'gs' setting specifies the location of the 'PostScript' processor
+'Ghostscript', available from <https://www.ghostscript.com/>.
+
+The configuration variable 'htmlviewer' specifies the browser to use to
+display 3D 'WebGL' output. The default setting is 'google-chrome' under
+'UNIX' and 'cmd' under 'Microsoft Windows'. Note that 'Internet
+Explorer' does not support 'WebGL'; 'Microsoft Windows' users should set
+their default html browser to 'chrome' or 'microsoft-edge'.
+
+ On 'UNIX' systems, to support automatic document reloading of 'PDF'
+files in 'Adobe Reader', we recommend copying the file 'reload.js' from
+the 'Asymptote' system directory (by default,
+'/usr/local/share/asymptote' under 'UNIX' to
+'~/.adobe/Acrobat/x.x/JavaScripts/', where 'x.x' represents the
appropriate 'Adobe Reader' version number. The automatic document
reload feature must then be explicitly enabled by putting
import settings;
@@ -411,17 +422,14 @@ changed to 'a4' with the configuration variable 'papertype'. Alignment
to other paper sizes can be obtained by setting the configuration
variables 'paperwidth' and 'paperheight'.
- The following configuration variables normally do not require
+ These additional configuration variables normally do not require
adjustment:
config
texpath
texcommand
dvips
dvisvgm
-libgs
convert
-display
-animate
Warnings (such as "unbounded" and "offaxis") may be enabled or
disabled with the functions
@@ -634,7 +642,7 @@ File: asymptote.info, Node: Tutorial, Next: Drawing commands, Prev: Installat
* Menu:
* Drawing in batch mode:: Run 'Asymptote' on a text file
-* Drawing in interactive mode:: Running 'Asymptote' interactively
+* Drawing in interactive mode:: Running 'Asymptote' interactively
* Figure size:: Specifying the figure size
* Labels:: Adding 'LaTeX' labels
* Paths:: Drawing lines and curves
@@ -3447,7 +3455,7 @@ same type, which will also be the type of the result:
'+'
addition
'-'
- subtractiona
+ subtraction
'*'
multiplication
'/'
@@ -4320,13 +4328,13 @@ real[] A=fin;
Another useful mode is comma-separated-value mode, 'file csv(bool
b=true)', which causes reads to respect comma delimiters:
-file fin=csv(input("test.txt"));
+file fin=input("test.txt").csv();
real[] A=fin;
To restrict the number of values read, use the 'file dimension(int)'
function:
file fin=input("test.txt");
-real[] A=dimension(fin,10);
+real[] A=fin.dimension(10);
This reads 10 values into A, unless end-of-file (or end-of-line in
line mode) occurs first. Attempting to read beyond the end of the file
@@ -6802,13 +6810,41 @@ struct material {
pen[] p; // diffusepen,emissivepen,specularpen
real opacity;
real shininess;
-...
+ real metallic;
+ real fresnel0;
+}
+These material properties are used to implement physically based
+rendering (PBR) using light properties defined in 'plain_prethree.asy'
+and 'three_light.asy':
+struct light {
+ real[][] diffuse;
+ real[][] specular;
+ pen background=nullpen; // Background color of the 3D canvas.
+ real specularfactor;
+ triple[] position; // Only directional lights are currently implemented.
}
-These material properties are used to implement 'OpenGL'-style lighting,
-based on the Phong-Blinn specular model. 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.asy'.
+
+light Viewport=light(specularfactor=3,(0.25,-0.25,1));
+
+light White=light(new pen[] {rgb(0.38,0.38,0.45),rgb(0.6,0.6,0.67),
+ rgb(0.5,0.5,0.57)},specularfactor=3,
+ new triple[] {(-2,-1.5,-0.5),(2,1.1,-2.5),(-0.5,0,2)});
+
+light Headlamp=light(gray(0.8),specular=gray(0.7),
+ specularfactor=3,dir(42,48));
+
+currentlight=Headlamp;
+
+light nolight;
+ The 'background' pen can be use to set the 3D 'OpenGL' background
+colour (the default is white). In the case of 3D 'WebGL' images one can
+request a completely transparent background with
+'currentlight.background=black+opacity(0.0);'
+
+ 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.asy'.
The examples 'elevation.asy' and 'sphericalharmonic.asy' illustrate
how to draw a surface with patch-dependent colors. The examples
@@ -6847,14 +6883,15 @@ bounded by cyclic paths of length '4' or less.
composed of many 3D triangles, with specified vertices, and optional
normals or vertex colors:
void draw(picture pic=currentpicture, triple[] v, int[][] vi,
- triple[] n={}, int[][] ni={}, material m=currentpen, pen[] p={},
- int[][] pi={}, light light=currentlight);
- Here, the triple array 'v' lists the distinct vertices, while the
-array 'vi' lists integer arrays of length 3 containing the indices of
-'v' corresponding to the vertices of each triangle. Similarly, the
-arguments 'n' and 'ni' contain optional normal data and 'p' and 'pi'
-contain optional pen vertex data. An example of this tessellation
-facility is given in 'triangles.asy'.
+ triple[] n={}, int[][] ni=vi, material m=currentpen, pen[] p={},
+ int[][] pi=vi, light light=currentlight);
+ Here, the triple array 'v' lists the (typically distinct) vertices,
+while the array 'vi' contains integer arrays of length 3 containing the
+indices of the elements in 'v' that form the vertices of each triangle.
+Similarly, the arguments 'n' and 'ni' contain optional normal data and
+'p' and 'pi' contain optional pen vertex data. If more than one normal
+or pen is specified for a vertex, the last one specified is used. An
+example of this tessellation facility is given in 'triangles.asy'.
Arbitrary thick three-dimensional curves and line caps (which the
'OpenGL' standard does not require implementations to provide) are
@@ -6872,17 +6909,16 @@ 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 four choices for viewing 3D 'Asymptote' output:
+There are five 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
- 'outformat=""' and 'render=-1'). If you encounter warnings from
- your graphics card driver, try specifying '-glOptions=-indirect' on
- the command line. On 'UNIX' systems with graphics support for
- multisampling, the sample width can be controlled with the setting
- 'multisample'. An initial screen position can be specified with
- the pair setting 'position', where negative values are interpreted
- as relative to the corresponding maximum screen dimension. The
- default settings
+ 'outformat=""' and 'render=-1'). On 'UNIX' systems with graphics
+ support for multisampling, the sample width can be controlled with
+ the setting 'multisample'. An initial screen position can be
+ specified with the pair setting 'position', where negative values
+ are interpreted as relative to the corresponding maximum screen
+ dimension. The default settings
import settings;
leftbutton=new string[] {"rotate","zoom","shift","pan"};
middlebutton=new string[] {""};
@@ -6908,7 +6944,7 @@ There are four choices for viewing 3D 'Asymptote' output:
* y: spin about the Y axis
* z: spin about the Z axis
* s: stop spinning
- * m: rendering mode (solid/mesh/patch)
+ * m: rendering mode (solid/patch/mesh)
* e: export
* c: show camera parameters
* p: play animation
@@ -6923,7 +6959,36 @@ There are four choices for viewing 3D 'Asymptote' output:
* q: exit
* Ctrl-q: exit
- 2. Render the scene to a specified rasterized format 'outformat' at
+ 2. Generate 'WebGL' interactive vector graphics output with the the
+ command-line option and '-f html' (or the setting
+ '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>
+
+ Normally, 'WebGL' files generated by 'Asymptote' are dynamically
+ remeshed to fit the browser window dimensions. However, the
+ setting 'absolute=true' can be used to force the image to be
+ rendered at its designed size (accounting for multiple device
+ pixels per 'css' pixel). This setting should not be used when
+ embedding a 'WebGL' file within another HTML document.
+
+ The interactive 'WebGL' files produced by 'Asymptote' use the
+ default mouse and (many of the same) key bindings as the 'OpenGL'
+ renderer.
+
+ By default, viewing the 3D HTML files generated by Asymptote
+ requires network access to download the 'asygl' rendering library,
+ which is normally cached by the browser for future use. However,
+ the setting 'offline=true' can be used to embed this small (about
+ 42kB) library within a stand-alone HTML file that can be viewed
+ offline.
+
+ 3. Render the scene to a specified rasterized format 'outformat' at
the resolution of 'n' pixels per 'bp', as specified by the setting
'render=n'. A negative value of 'n' is interpreted as '|2n|' for
EPS and PDF formats and '|n|' for other formats. The default value
@@ -6939,12 +7004,9 @@ There are four choices for viewing 3D 'Asymptote' output:
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'. Some
- (broken) 'UNIX' graphics drivers may require the command line
- setting '-glOptions=-indirect', which requests (slower) indirect
- rendering.
+ window; this can be enabled with the setting 'iconify=true'.
- 3. Embed the 3D PRC format in a PDF file and view the resulting PDF
+ 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
@@ -6965,7 +7027,7 @@ There are four choices for viewing 3D 'Asymptote' output:
The open-source PRC specification is available from
<http://livedocs.adobe.com/acrobat_sdk/9/Acrobat9_HTMLHelp/API_References/PRCReference/PRC_Format_Specification/>.
- 4. Project the scene to a two-dimensional vector (EPS or PDF) format
+ 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::).
@@ -6975,12 +7037,12 @@ each of the three dimensions can optionally be specified with the
routine
void size3(picture pic=currentpicture, real x, real y=x, real z=y,
bool keepAspect=pic.keepAspect);
-The resulting simplex linear programming problem is then solved to
-produce a 3D version of a frame (actually implemented as a 3D picture).
-The result is then fit with another application of deferred drawing to
-the viewport dimensions corresponding to the usual two-dimensional
-picture 'size' parameters. The global pair 'viewportmargin' may be used
-to add horizontal and vertical margins to the viewport dimensions.
+A simplex linear programming problem is then solved to produce a 3D
+version of a frame (actually implemented as a 3D picture). The result
+is then fit with another application of deferred drawing to the viewport
+dimensions corresponding to the usual two-dimensional picture 'size'
+parameters. The global pair 'viewportmargin' may be used to add
+horizontal and vertical margins to the viewport dimensions.
Alternatively, a minimum 'viewportsize' may be specified. A 3D picture
'pic' can be explicitly fit to a 3D frame by calling
frame pic.fit3(projection P=currentprojection);
@@ -8053,10 +8115,10 @@ Usage: ../asy [options] [file ...]
Options (negate by replacing - with -no):
-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]
-aligndir pair Directional page alignment (overrides align) [(0,0)]
-antialias n Antialiasing width for rasterized output [2]
--arcballradius pixels Arcball radius [750]
-auto3D Automatically activate 3D scene [true]
-autobillboard 3D labels always face viewer by default [true]
-autoimport string Module to automatically import
@@ -8072,8 +8134,8 @@ Options (negate by replacing - with -no):
-c,-command string Command to autoexecute
-compact Conserve memory at the expense of speed [false]
-d,-debug Enable debugging messages [false]
+-digits n Default output file precision [6]
-divisor n Garbage collect using purge(divisor=n) [2]
--doubleclick ms Emulated double-click timeout [200]
-embed Embed rendered preview image [true]
-envmap Enable environment map image-based lighting (Experimental) [false]
-exitonEOF Exit interactive mode on EOF [true]
@@ -8103,6 +8165,7 @@ Options (negate by replacing - with -no):
-multiline Input code over multiple lines at the prompt [false]
-multipleView View output from multiple batch-mode files [false]
-multisample n Multisampling width for screen images [4]
+-offline Produce offline html files [false]
-offscreen Use offscreen rendering [false]
-O,-offset pair PostScript offset [(0,0)]
-f,-outformat format Convert each output file to specified format
@@ -8121,6 +8184,8 @@ Options (negate by replacing - with -no):
-rgb Convert cmyk colors to rgb [false]
-safe Disable system call [true]
-scroll n Scroll standard output n lines at a time [0]
+-shiftHoldDistance n WebGL touch screen distance limit for shift mode [20]
+-shiftWaitTime ms WebGL touch screen shift mode delay [200]
-spinstep deg/s Spin speed [60]
-svgemulation Emulate unimplemented SVG shading [false]
-tabcompletion Interactive prompt auto-completion [true]
@@ -8135,10 +8200,14 @@ Options (negate by replacing - with -no):
-u,-user string General purpose user string
-v,-verbose Increase verbosity level (can specify multiple times) [0]
-version Show version; command-line only
+-vibrateTime ms WebGL shift mode vibrate duration [25]
+-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
-where Show where listed variables are declared [false]
-xasy Special 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]
-zoomstep step Mouse motion zoom step [0.1]
@@ -8177,11 +8246,11 @@ interactiveMask=true;
Command-line options override these defaults. Most configuration
variables may also be changed at runtime. The advanced configuration
variables 'dvipsOptions', 'hyperrefOptions', 'convertOptions',
-'gsOptions', 'psviewerOptions', 'pdfviewerOptions', 'pdfreloadOptions',
-'glOptions', and 'dvisvgmOptions' allow specialized options to be passed
-as a string to the respective applications or libraries. The default
-value of 'hyperrefOptions' is 'setpagesize=false,unicode,pdfborder=0 0
-0'.
+'gsOptions', 'htmlviewerOptions', 'psviewerOptions', 'pdfviewerOptions',
+'pdfreloadOptions', 'glOptions', and 'dvisvgmOptions' allow specialized
+options to be passed as a string to the respective applications or
+libraries. The default value of 'hyperrefOptions' is
+'setpagesize=false,unicode,pdfborder=0 0 0'.
If you insert
import plain;
@@ -8194,7 +8263,7 @@ tex engine and PDF for the 'pdflatex', 'xelatex', 'context', 'luatex',
and 'lualatex' tex engines. Alternative output formats may be produced
using the '-f' option (or 'outformat' setting).
- To produce SVG output, you will need 'dvisvgm' (version 1.5.3 or
+ To produce SVG output, you will need 'dvisvgm' (version 2.6.3 or
later) from <http://dvisvgm.sourceforge.net> and must use the 'latex' or
'tex' tex engine. You might need to adjust the configuration variable
'libgs' to point to the location of your 'Ghostscript' library
@@ -8377,7 +8446,7 @@ packages 'pyqt5', 'cson', and 'numpy':
pip3 install cson numpy pyqt5 PyQt5.sip
Pictures are deconstructed into the SVG image format. Since 'Qt5'
-does not suport 'SVG' clipping, you will need the 'rsvg-convert'
+does not support 'SVG' clipping, you will need the 'rsvg-convert'
utility, which is part of the 'librsvg2-tools' package on 'UNIX' systems
and the 'librsvg' package on 'MacOS'; under 'Microsoft Windows', it is
available as
@@ -8595,9 +8664,9 @@ Index
* ---: Bezier curves. (line 84)
* -=: Self & prefix operators.
(line 6)
-* -c: Options. (line 186)
-* -l: Options. (line 205)
-* -u: Options. (line 196)
+* -c: Options. (line 193)
+* -l: Options. (line 212)
+* -u: Options. (line 203)
* -V: Configuring. (line 6)
* -V <1>: Drawing in batch mode.
(line 16)
@@ -8610,7 +8679,7 @@ Index
* 2D graphs: graph. (line 6)
* 3D graphs: graph3. (line 6)
* 3D grids: grid3. (line 6)
-* 3D PostScript: three. (line 580)
+* 3D PostScript: three. (line 634)
* :: Arithmetic & logical.
(line 61)
* ::: Bezier curves. (line 70)
@@ -8638,14 +8707,14 @@ Index
(line 53)
* ||: Arithmetic & logical.
(line 51)
-* a4: Configuring. (line 58)
+* a4: Configuring. (line 66)
* abort: Data types. (line 363)
* abs: Data types. (line 65)
* abs <1>: Mathematical functions.
(line 35)
* accel: Paths and guides. (line 126)
* accel <1>: Paths and guides. (line 132)
-* accel <2>: three. (line 481)
+* accel <2>: three. (line 535)
* access: Import. (line 6)
* acknowledgments: Credits. (line 6)
* acos: Mathematical functions.
@@ -8658,8 +8727,8 @@ Index
(line 212)
* add <1>: Frames and pictures.
(line 228)
-* add <2>: three. (line 253)
-* addViews: three. (line 374)
+* add <2>: three. (line 307)
+* addViews: three. (line 428)
* adjust: Pens. (line 123)
* Ai: Mathematical functions.
(line 48)
@@ -8670,35 +8739,35 @@ Index
* alias: Structures. (line 62)
* alias <1>: Arrays. (line 174)
* Align: label. (line 12)
-* aligndir: Options. (line 178)
+* aligndir: Options. (line 185)
* all: Arrays. (line 325)
* Allow: Pens. (line 347)
* and: Bezier curves. (line 56)
* AND: Arithmetic & logical.
(line 68)
* angle: Data types. (line 73)
-* animate: Configuring. (line 64)
+* animate: Configuring. (line 20)
* animate <1>: Files. (line 155)
* animate <2>: animation. (line 12)
* animation: animation. (line 6)
* animation <1>: animation. (line 6)
* annotate: annotate. (line 6)
-* antialias: three. (line 192)
-* antialias <1>: Options. (line 149)
+* antialias: three. (line 249)
+* antialias <1>: Options. (line 156)
* append: Files. (line 36)
* append <1>: Arrays. (line 39)
* arc: Paths and guides. (line 24)
* Arc: Paths and guides. (line 37)
-* arc <1>: three. (line 264)
+* arc <1>: three. (line 318)
* ArcArrow: draw. (line 26)
-* ArcArrow3: three. (line 547)
+* ArcArrow3: three. (line 601)
* ArcArrows: draw. (line 26)
-* ArcArrows3: three. (line 547)
+* ArcArrows3: three. (line 601)
* arclength: Paths and guides. (line 153)
-* arclength <1>: three. (line 481)
+* arclength <1>: three. (line 535)
* arcpoint: Paths and guides. (line 163)
* arctime: Paths and guides. (line 157)
-* arctime <1>: three. (line 481)
+* arctime <1>: three. (line 535)
* arguments: Default arguments. (line 6)
* arithmetic operators: Arithmetic & logical.
(line 6)
@@ -8712,10 +8781,10 @@ Index
* arrow keys: Drawing in interactive mode.
(line 11)
* arrow keys <1>: GUI usage. (line 6)
-* Arrow3: three. (line 547)
+* Arrow3: three. (line 601)
* arrows: draw. (line 26)
* Arrows: draw. (line 26)
-* Arrows3: three. (line 547)
+* Arrows3: three. (line 601)
* as: Import. (line 67)
* ascii: Data types. (line 308)
* ascii <1>: Data types. (line 308)
@@ -8733,10 +8802,11 @@ Index
* asy <1>: Import. (line 101)
* asy-mode: Editing modes. (line 6)
* asy.vim: Editing modes. (line 32)
+* asygl: Configuring. (line 72)
* asyinclude: LaTeX usage. (line 45)
* asymptote.sty: LaTeX usage. (line 6)
* asymptote.xml: Editing modes. (line 48)
-* ASYMPTOTE_CONFIG: Options. (line 120)
+* ASYMPTOTE_CONFIG: Options. (line 127)
* atan: Mathematical functions.
(line 6)
* aTan: Mathematical functions.
@@ -8750,8 +8820,8 @@ Index
(line 273)
* attach <1>: LaTeX usage. (line 50)
* attach <2>: graph. (line 407)
-* autoadjust: three. (line 339)
-* autoimport: Options. (line 116)
+* autoadjust: three. (line 393)
+* autoimport: Options. (line 123)
* automatic scaling: graph. (line 691)
* automatic scaling <1>: graph. (line 691)
* axialshade: fill. (line 43)
@@ -8761,13 +8831,15 @@ Index
* axis <3>: graph3. (line 82)
* azimuth: Data types. (line 153)
* babel: babel. (line 6)
+* background: three. (line 76)
+* background <1>: three. (line 97)
* background color: Frames and pictures.
(line 180)
-* BackView: three. (line 367)
+* BackView: three. (line 421)
* Bar: draw. (line 19)
-* Bar3: three. (line 547)
+* Bar3: three. (line 601)
* Bars: draw. (line 19)
-* Bars3: three. (line 547)
+* Bars3: three. (line 601)
* barsize: draw. (line 19)
* base modules: Base modules. (line 6)
* basealign: Pens. (line 181)
@@ -8776,30 +8848,30 @@ Index
(line 6)
* beep: Data types. (line 381)
* BeginArcArrow: draw. (line 26)
-* BeginArcArrow3: three. (line 547)
+* BeginArcArrow3: three. (line 601)
* BeginArrow: draw. (line 26)
-* BeginArrow3: three. (line 547)
+* BeginArrow3: three. (line 601)
* BeginBar: draw. (line 19)
-* BeginBar3: three. (line 547)
+* BeginBar3: three. (line 601)
* BeginDotMargin: draw. (line 42)
-* BeginDotMargin3: three. (line 563)
+* BeginDotMargin3: three. (line 617)
* BeginMargin: draw. (line 42)
-* BeginMargin3: three. (line 563)
+* BeginMargin3: three. (line 617)
* BeginPenMargin: draw. (line 42)
-* BeginPenMargin2: three. (line 563)
-* BeginPenMargin3: three. (line 563)
+* BeginPenMargin2: three. (line 617)
+* BeginPenMargin3: three. (line 617)
* 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 88)
-* Bezier triangle: three. (line 88)
-* bezulate: three. (line 106)
+* Bezier patch: three. (line 116)
+* Bezier triangle: three. (line 116)
+* bezulate: three. (line 134)
* Bi: Mathematical functions.
(line 48)
-* Billboard: three. (line 451)
+* Billboard: three. (line 505)
* binary: Files. (line 76)
* binary format: Files. (line 76)
* binary operators: Arithmetic & logical.
@@ -8807,7 +8879,7 @@ Index
* binarytree: binarytree. (line 6)
* Bi_deriv: Mathematical functions.
(line 48)
-* black stripes: three. (line 192)
+* black stripes: three. (line 249)
* Blank: draw. (line 26)
* block.bottom: flowchart. (line 19)
* block.bottomleft: flowchart. (line 19)
@@ -8826,7 +8898,7 @@ Index
(line 6)
* Bottom: graph. (line 132)
* BottomTop: graph. (line 138)
-* BottomView: three. (line 367)
+* BottomView: three. (line 421)
* bounding box: Frames and pictures.
(line 180)
* Bounds: graph3. (line 21)
@@ -8834,8 +8906,8 @@ Index
(line 25)
* box <1>: Frames and pictures.
(line 130)
-* box <2>: three. (line 286)
-* box <3>: three. (line 288)
+* box <2>: three. (line 340)
+* box <3>: three. (line 342)
* bp: Drawing in batch mode.
(line 23)
* brace: Paths and guides. (line 51)
@@ -8853,7 +8925,7 @@ Index
* CAD: CAD. (line 6)
* calculateTransform: Frames and pictures.
(line 118)
-* camera: three. (line 333)
+* camera: three. (line 387)
* casts: Casts. (line 6)
* cbrt: Mathematical functions.
(line 6)
@@ -8861,7 +8933,7 @@ Index
* ceil: Mathematical functions.
(line 26)
* Center: label. (line 60)
-* center: three. (line 316)
+* center: three. (line 370)
* checker: Pens. (line 269)
* Chinese: unicode. (line 12)
* choose: Mathematical functions.
@@ -8870,7 +8942,7 @@ Index
(line 48)
* circle: Paths and guides. (line 10)
* Circle: Paths and guides. (line 18)
-* circle <1>: three. (line 260)
+* circle <1>: three. (line 314)
* circle <2>: flowchart. (line 61)
* circlebarframe: markers. (line 18)
* CJK: unicode. (line 12)
@@ -8881,7 +8953,7 @@ Index
* CLZ: Arithmetic & logical.
(line 68)
* cm: Figure size. (line 18)
-* cmd: Configuring. (line 31)
+* cmd: Configuring. (line 35)
* cmyk: Pens. (line 38)
* colatitude: Data types. (line 158)
* color: Pens. (line 23)
@@ -8892,7 +8964,7 @@ Index
* colors: Pens. (line 54)
* comma: Files. (line 61)
* comma-separated-value mode: Arrays. (line 357)
-* command-line options: Configuring. (line 83)
+* command-line options: Configuring. (line 88)
* command-line options <1>: Options. (line 6)
* comment character: Files. (line 16)
* compass directions: Labels. (line 18)
@@ -8903,14 +8975,14 @@ Index
* conditional: Programming. (line 26)
* conditional <1>: Arithmetic & logical.
(line 61)
-* config: Configuring. (line 64)
-* config <1>: Options. (line 120)
-* configuration file: Configuring. (line 21)
-* configuration file <1>: Options. (line 120)
+* config: Configuring. (line 72)
+* config <1>: Options. (line 127)
+* configuration file: Configuring. (line 20)
+* configuration file <1>: Options. (line 127)
* configuring: Configuring. (line 6)
* conj: Data types. (line 62)
* constructors: Structures. (line 91)
-* context: Options. (line 149)
+* context: Options. (line 156)
* continue: Programming. (line 48)
* continue <1>: Debugger. (line 31)
* contour: contour. (line 6)
@@ -8918,11 +8990,11 @@ Index
* controls: Bezier curves. (line 45)
* controls <1>: three. (line 6)
* controlSpecifier: Paths and guides. (line 396)
-* convert: Configuring. (line 64)
+* convert: Configuring. (line 72)
* convert <1>: Files. (line 155)
* convert <2>: animation. (line 6)
-* convert <3>: Options. (line 149)
-* convertOptions: Options. (line 135)
+* convert <3>: Options. (line 156)
+* convertOptions: Options. (line 142)
* Coons shading: fill. (line 77)
* copy: Arrays. (line 167)
* cos: Mathematical functions.
@@ -8946,8 +9018,9 @@ Index
* 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 364)
+* currentprojection: three. (line 418)
* curve: slopefield. (line 20)
* custom axis types: graph. (line 141)
* custom mark routine: graph. (line 578)
@@ -8959,7 +9032,7 @@ Index
* cyclic: Paths and guides. (line 85)
* cyclic <1>: Paths and guides. (line 376)
* cyclic <2>: Arrays. (line 39)
-* cyclic <3>: three. (line 481)
+* cyclic <3>: three. (line 535)
* Cyrillic: unicode. (line 7)
* dashdotted: Pens. (line 102)
* dashed: Pens. (line 102)
@@ -8973,7 +9046,7 @@ Index
* default arguments: Default arguments. (line 6)
* defaultformat: graph. (line 175)
* DefaultHead: draw. (line 26)
-* DefaultHead3: three. (line 547)
+* DefaultHead3: three. (line 601)
* defaultpen: Pens. (line 49)
* defaultpen <1>: Pens. (line 122)
* defaultpen <2>: Pens. (line 127)
@@ -8993,17 +9066,19 @@ Index
* description: Description. (line 6)
* diagonal: Arrays. (line 299)
* diamond: flowchart. (line 54)
+* diffuse: three. (line 76)
+* diffusepen: three. (line 66)
* dimension: Arrays. (line 362)
* dir: Search paths. (line 9)
* dir <1>: Data types. (line 90)
* dir <2>: Data types. (line 180)
* dir <3>: Paths and guides. (line 109)
-* dir <4>: three. (line 481)
+* dir <4>: three. (line 535)
* direction specifier: Bezier curves. (line 6)
* directory: Files. (line 25)
* dirSpecifier: Paths and guides. (line 390)
* dirtime: Paths and guides. (line 166)
-* display: Configuring. (line 64)
+* display: Configuring. (line 20)
* do: Programming. (line 48)
* DOSendl: Files. (line 61)
* DOSnewl: Files. (line 61)
@@ -9013,11 +9088,11 @@ Index
* dot <3>: Arrays. (line 254)
* dot <4>: Arrays. (line 257)
* DotMargin: draw. (line 42)
-* DotMargin3: three. (line 563)
+* DotMargin3: three. (line 617)
* DotMargins: draw. (line 42)
-* DotMargins3: three. (line 563)
+* DotMargins3: three. (line 617)
* dotted: Pens. (line 102)
-* double deferred drawing: three. (line 238)
+* double deferred drawing: three. (line 292)
* double precision: Files. (line 76)
* draw: Drawing commands. (line 31)
* draw <1>: draw. (line 6)
@@ -9025,15 +9100,15 @@ Index
* draw <2>: draw. (line 112)
* Draw <1>: Frames and pictures.
(line 160)
-* draw <3>: three. (line 114)
+* draw <3>: three. (line 142)
* drawing commands: Drawing commands. (line 6)
* drawline: math. (line 9)
* drawtree: drawtree. (line 6)
-* dvips: Configuring. (line 64)
-* dvipsOptions: Options. (line 135)
-* dvisvgm: Configuring. (line 64)
-* dvisvgm <1>: Options. (line 154)
-* dvisvgmOptions: Options. (line 135)
+* dvips: Configuring. (line 72)
+* dvipsOptions: Options. (line 142)
+* dvisvgm: Configuring. (line 72)
+* dvisvgm <1>: Options. (line 161)
+* dvisvgmOptions: Options. (line 142)
* E: Labels. (line 18)
* E <1>: Mathematical functions.
(line 48)
@@ -9048,33 +9123,34 @@ Index
* else: Programming. (line 26)
* emacs: Editing modes. (line 6)
* embed: embed. (line 6)
-* Embedded: three. (line 451)
+* Embedded: three. (line 505)
+* emissivepen: three. (line 66)
* empty: Frames and pictures.
(line 7)
* EndArcArrow: draw. (line 26)
-* EndArcArrow3: three. (line 547)
+* EndArcArrow3: three. (line 601)
* EndArrow: draw. (line 26)
-* EndArrow3: three. (line 547)
+* EndArrow3: three. (line 601)
* EndBar: draw. (line 19)
-* EndBar3: three. (line 547)
+* EndBar3: three. (line 601)
* EndDotMargin: draw. (line 42)
-* EndDotMargin3: three. (line 563)
+* EndDotMargin3: three. (line 617)
* endl: Files. (line 61)
* EndMargin: draw. (line 42)
-* EndMargin3: three. (line 563)
+* EndMargin3: three. (line 617)
* EndPenMargin: draw. (line 42)
-* EndPenMargin2: three. (line 563)
-* EndPenMargin3: three. (line 563)
+* EndPenMargin2: three. (line 617)
+* EndPenMargin3: three. (line 617)
* EndPoint: label. (line 55)
* envelope: Frames and pictures.
(line 25)
-* environment variables: Configuring. (line 87)
+* environment variables: Configuring. (line 92)
* eof: Files. (line 93)
* eof <1>: Arrays. (line 339)
* eol: Files. (line 93)
* eol <1>: Arrays. (line 339)
* EPS: label. (line 78)
-* EPS <1>: Options. (line 149)
+* EPS <1>: Options. (line 156)
* erase: Drawing in interactive mode.
(line 11)
* erase <1>: Data types. (line 256)
@@ -9111,12 +9187,12 @@ Index
* extension: Paths and guides. (line 246)
* extension <1>: MetaPost. (line 10)
* external: embed. (line 11)
-* extrude: three. (line 475)
+* extrude: three. (line 529)
* F: Mathematical functions.
(line 48)
* fabs: Mathematical functions.
(line 6)
-* face: three. (line 588)
+* face: three. (line 642)
* factorial: Mathematical functions.
(line 39)
* Fedora: UNIX binary distributions.
@@ -9146,7 +9222,7 @@ Index
* firstcut: Paths and guides. (line 262)
* fit: Frames and pictures.
(line 113)
-* fit3: three. (line 251)
+* fit3: three. (line 305)
* fixedscaling: Frames and pictures.
(line 81)
* floor: Mathematical functions.
@@ -9162,12 +9238,13 @@ Index
* fontsize: Pens. (line 192)
* for: Programming. (line 26)
* format: Data types. (line 289)
-* format <1>: Options. (line 149)
+* format <1>: Options. (line 156)
* forum: Help. (line 6)
* frame: Frames and pictures.
(line 7)
+* freshnel0: three. (line 66)
* from: Import. (line 16)
-* FrontView: three. (line 367)
+* FrontView: three. (line 421)
* function declarations: Functions. (line 79)
* Function shading: fill. (line 99)
* function shading: fill. (line 99)
@@ -9186,8 +9263,8 @@ Index
* getstring: Files. (line 118)
* gettriple: Files. (line 118)
* git: Git. (line 6)
-* glOptions: three. (line 192)
-* glOptions <1>: Options. (line 135)
+* glOptions: three. (line 249)
+* glOptions <1>: Options. (line 142)
* GNU Scientific Library: Mathematical functions.
(line 48)
* gouraudshade: fill. (line 62)
@@ -9203,18 +9280,19 @@ Index
* grid: Pens. (line 269)
* grid <1>: graph. (line 747)
* grid3: grid3. (line 6)
-* gs: Configuring. (line 6)
+* gs: Configuring. (line 20)
* GSL: Compiling from UNIX source.
(line 63)
* gsl: Mathematical functions.
(line 48)
-* gsOptions: Options. (line 135)
+* gsOptions: Options. (line 142)
* GUI: GUI. (line 6)
* GUI installation: GUI installation. (line 6)
* GUI usage: GUI usage. (line 6)
* guide: Paths and guides. (line 314)
* guide3: three. (line 6)
* hatch: Pens. (line 286)
+* Headlamp: three. (line 76)
* height: LaTeX usage. (line 50)
* help: Interactive mode. (line 42)
* help <1>: Help. (line 6)
@@ -9225,34 +9303,38 @@ Index
* hex <1>: Pens. (line 64)
* hexadecimal: Data types. (line 305)
* hexadecimal <1>: Pens. (line 62)
-* hidden surface removal: three. (line 588)
+* hidden surface removal: three. (line 642)
* histogram: Mathematical functions.
(line 39)
* history: Files. (line 143)
* history <1>: Interactive mode. (line 54)
* historylines: Interactive mode. (line 57)
* HookHead: draw. (line 26)
-* HookHead3: three. (line 547)
+* HookHead3: three. (line 601)
* Horizontal: flowchart. (line 77)
-* hyperrefOptions: Options. (line 135)
+* HTML5: three. (line 220)
+* htmlviewer: Configuring. (line 20)
+* htmlviewer <1>: Configuring. (line 43)
+* htmlviewerOptions: Options. (line 142)
+* hyperrefOptions: Options. (line 142)
* hypot: Mathematical functions.
(line 6)
* I: Mathematical functions.
(line 48)
-* iconify: three. (line 192)
+* iconify: three. (line 249)
* identity: Transforms. (line 24)
* identity <1>: Mathematical functions.
(line 6)
* identity <2>: Arrays. (line 296)
-* identity4: three. (line 419)
+* identity4: three. (line 473)
* if: Programming. (line 26)
* IgnoreAspect: Frames and pictures.
(line 63)
* image: palette. (line 33)
* image <1>: palette. (line 58)
-* ImageMagick: Configuring. (line 64)
+* ImageMagick: Configuring. (line 72)
* ImageMagick <1>: animation. (line 6)
-* ImageMagick <2>: Options. (line 149)
+* ImageMagick <2>: Options. (line 156)
* images: palette. (line 6)
* implicit casts: Casts. (line 6)
* implicit linear solver: MetaPost. (line 10)
@@ -9280,7 +9362,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 510)
+* insphere: three. (line 564)
* inst: Debugger. (line 35)
* installation: Installation. (line 6)
* int: Data types. (line 30)
@@ -9300,23 +9382,23 @@ Index
* interpolate: interpolate. (line 6)
* intersect: Paths and guides. (line 195)
* intersect <1>: math. (line 13)
-* intersect <2>: three. (line 481)
+* intersect <2>: three. (line 535)
* intersectionpoint: Paths and guides. (line 238)
* intersectionpoint <1>: math. (line 17)
-* intersectionpoint <2>: three. (line 481)
+* intersectionpoint <2>: three. (line 535)
* intersectionpoints: Paths and guides. (line 242)
-* intersectionpoints <1>: three. (line 481)
-* intersectionpoints <2>: three. (line 494)
+* intersectionpoints <1>: three. (line 535)
+* intersectionpoints <2>: three. (line 548)
* intersections: Paths and guides. (line 206)
* intersections <1>: Paths and guides. (line 213)
-* intersections <2>: three. (line 481)
-* intersections <3>: three. (line 487)
+* intersections <2>: three. (line 535)
+* intersections <3>: three. (line 541)
* InTicks: graph3. (line 35)
* intMax: Data types. (line 30)
* intMin: Data types. (line 30)
* inverse: Transforms. (line 16)
* inverse <1>: Arrays. (line 302)
-* invert: three. (line 409)
+* invert: three. (line 463)
* invisible: Pens. (line 43)
* isnan: Data types. (line 35)
* i_scaled: Mathematical functions.
@@ -9335,7 +9417,7 @@ Index
* keepAspect <1>: Frames and pictures.
(line 63)
* keepAspect <2>: LaTeX usage. (line 50)
-* keyboard bindings:: three. (line 170)
+* keyboard bindings:: three. (line 198)
* keys: Arrays. (line 39)
* keyword: Named arguments. (line 37)
* keyword-only: Named arguments. (line 37)
@@ -9348,7 +9430,7 @@ Index
* label <1>: label. (line 6)
* Label <1>: label. (line 14)
* Label <2>: graph. (line 330)
-* label <2>: three. (line 445)
+* label <2>: three. (line 499)
* labelpath: labelpath. (line 6)
* labelpath3: labelpath3. (line 6)
* labelx: graph. (line 330)
@@ -9357,7 +9439,7 @@ Index
(line 104)
* lastcut: Paths and guides. (line 266)
* lasy-mode: Editing modes. (line 6)
-* latex: Options. (line 149)
+* latex: Options. (line 156)
* LaTeX fonts: Pens. (line 206)
* LaTeX usage: LaTeX usage. (line 6)
* latexmk: LaTeX usage. (line 30)
@@ -9372,7 +9454,7 @@ Index
* LeftSide: label. (line 60)
* LeftTicks: graph. (line 160)
* LeftTicks <1>: graph. (line 233)
-* LeftView: three. (line 367)
+* LeftView: three. (line 421)
* legend: Drawing commands. (line 31)
* legend <1>: draw. (line 64)
* legend <2>: graph. (line 425)
@@ -9384,16 +9466,16 @@ Index
* length <3>: Paths and guides. (line 76)
* length <4>: Paths and guides. (line 373)
* length <5>: Arrays. (line 39)
-* length <6>: three. (line 481)
-* letter: Configuring. (line 58)
+* length <6>: three. (line 535)
+* letter: Configuring. (line 66)
* lexorder: math. (line 67)
* lexorder <1>: math. (line 70)
-* libgs: Configuring. (line 64)
-* libgs <1>: Options. (line 154)
+* libgs: Options. (line 161)
* libm routines: Mathematical functions.
(line 6)
* libsigsegv: Functions. (line 100)
* libsigsegv <1>: Help. (line 27)
+* light: three. (line 76)
* limits: graph. (line 640)
* line: Arrays. (line 339)
* line <1>: Arrays. (line 343)
@@ -9421,19 +9503,19 @@ Index
* longdashed: Pens. (line 102)
* longitude: Data types. (line 168)
* loop: Programming. (line 26)
-* lualatex: Options. (line 149)
-* luatex: Options. (line 149)
+* lualatex: Options. (line 156)
+* luatex: Options. (line 156)
* MacOS X binary distributions: MacOS X binary distributions.
(line 6)
* makepen: Pens. (line 322)
* map: Arrays. (line 131)
* Margin: draw. (line 42)
* Margin <1>: draw. (line 42)
-* Margin3: three. (line 563)
-* Margin3 <1>: three. (line 563)
+* Margin3: three. (line 617)
+* Margin3 <1>: three. (line 617)
* Margins: draw. (line 42)
-* margins: three. (line 244)
-* Margins3: three. (line 563)
+* margins: three. (line 298)
+* Margins3: three. (line 617)
* mark: graph. (line 481)
* markangle: markers. (line 35)
* marker: graph. (line 481)
@@ -9441,6 +9523,7 @@ Index
* marknodes: graph. (line 481)
* markuniform: graph. (line 481)
* mask: Data types. (line 35)
+* material: three. (line 66)
* math: math. (line 6)
* mathematical functions: Mathematical functions.
(line 6)
@@ -9449,12 +9532,13 @@ Index
(line 7)
* max <2>: Arrays. (line 221)
* max <3>: Arrays. (line 231)
-* max <4>: three. (line 481)
+* max <4>: three. (line 535)
* maxbound: Data types. (line 134)
* maxbound <1>: Data types. (line 204)
-* maxtile: three. (line 192)
+* maxtile: three. (line 249)
* maxtimes: Paths and guides. (line 233)
-* maxviewport: three. (line 192)
+* maxviewport: three. (line 249)
+* metallic: three. (line 66)
* MetaPost: MetaPost. (line 6)
* MetaPost ... : Bezier curves. (line 70)
* MetaPost cutafter: Paths and guides. (line 267)
@@ -9463,9 +9547,9 @@ Index
* MetaPost whatever: MetaPost. (line 10)
* Microsoft Windows: Microsoft Windows. (line 6)
* MidArcArrow: draw. (line 26)
-* MidArcArrow3: three. (line 547)
+* MidArcArrow3: three. (line 601)
* MidArrow: draw. (line 26)
-* MidArrow3: three. (line 547)
+* MidArrow3: three. (line 601)
* MidPoint: label. (line 55)
* midpoint: Paths and guides. (line 180)
* min: Paths and guides. (line 275)
@@ -9473,7 +9557,7 @@ Index
(line 7)
* min <2>: Arrays. (line 216)
* min <3>: Arrays. (line 226)
-* min <4>: three. (line 481)
+* min <4>: three. (line 535)
* minbound: Data types. (line 131)
* minbound <1>: Data types. (line 201)
* minipage: label. (line 116)
@@ -9482,15 +9566,16 @@ Index
* miterlimit: Pens. (line 159)
* mktemp: Files. (line 44)
* mm: Figure size. (line 18)
+* mobile browser: three. (line 220)
* mode: Files. (line 76)
* mode <1>: Files. (line 89)
* monotonic: graph. (line 36)
* mouse: GUI. (line 6)
-* mouse bindings: three. (line 151)
+* mouse bindings: three. (line 179)
* mouse wheel: GUI usage. (line 6)
* Move: Pens. (line 359)
* MoveQuiet: Pens. (line 365)
-* multisample: three. (line 142)
+* multisample: three. (line 172)
* N: Labels. (line 18)
* name: Files. (line 89)
* named arguments: Named arguments. (line 6)
@@ -9512,13 +9597,14 @@ Index
* NoFill: draw. (line 26)
* NoFill <1>: Frames and pictures.
(line 154)
+* nolight: three. (line 76)
* NoMargin: draw. (line 42)
-* NoMargin3: three. (line 563)
+* NoMargin3: three. (line 617)
* None: draw. (line 19)
* None <1>: draw. (line 26)
* none: Files. (line 61)
-* normal: three. (line 467)
-* nosafe: Options. (line 173)
+* normal: three. (line 521)
+* nosafe: Options. (line 180)
* NOT: Arithmetic & logical.
(line 68)
* notaknot: graph. (line 36)
@@ -9530,22 +9616,23 @@ Index
(line 140)
* nullpen <2>: Frames and pictures.
(line 149)
-* NURBS: three. (line 343)
-* O: three. (line 256)
+* NURBS: three. (line 397)
+* O: three. (line 310)
* obj: obj. (line 6)
-* oblique: three. (line 299)
-* obliqueX: three. (line 306)
-* obliqueY: three. (line 312)
-* obliqueZ: three. (line 299)
+* oblique: three. (line 353)
+* obliqueX: three. (line 360)
+* obliqueY: three. (line 366)
+* obliqueZ: three. (line 353)
* ode: ode. (line 6)
* offset: Pens. (line 123)
-* offset <1>: Options. (line 178)
+* offset <1>: Options. (line 185)
* OmitTick: graph. (line 223)
* OmitTickInterval: graph. (line 223)
* OmitTickIntervals: graph. (line 223)
* opacity: Pens. (line 237)
+* opacity <1>: three. (line 66)
* open: Files. (line 12)
-* OpenGL: three. (line 142)
+* OpenGL: three. (line 172)
* operator: User-defined operators.
(line 6)
* operator +(...string[] a).: Data types. (line 283)
@@ -9562,15 +9649,15 @@ Index
* OR: Arithmetic & logical.
(line 68)
* orient: Data types. (line 108)
-* orient <1>: three. (line 498)
+* orient <1>: three. (line 552)
* orientation: Frames and pictures.
(line 104)
-* orthographic: three. (line 316)
-* outformat: three. (line 142)
+* orthographic: three. (line 370)
+* outformat: three. (line 172)
* outprefix: Frames and pictures.
(line 91)
* output: Files. (line 36)
-* output <1>: Options. (line 149)
+* output <1>: Options. (line 156)
* OutTicks: graph3. (line 35)
* overloading functions: Functions. (line 55)
* overwrite: Pens. (line 344)
@@ -9581,15 +9668,15 @@ Index
* pair: Figure size. (line 6)
* pair <1>: Data types. (line 46)
* pairs: Arrays. (line 236)
-* paperheight: Configuring. (line 58)
-* papertype: Configuring. (line 58)
-* paperwidth: Configuring. (line 58)
+* paperheight: Configuring. (line 66)
+* papertype: Configuring. (line 66)
+* paperwidth: Configuring. (line 66)
* parallelogram: flowchart. (line 47)
* parametric surface: graph3. (line 99)
* parametrized curve: graph. (line 640)
* partialsum: math. (line 53)
* partialsum <1>: math. (line 56)
-* patch-dependent colors: three. (line 79)
+* patch-dependent colors: three. (line 107)
* path: Paths. (line 6)
* path <1>: Paths and guides. (line 7)
* path <2>: three. (line 42)
@@ -9600,45 +9687,48 @@ Index
* path[]: Paths. (line 23)
* patterns: Pens. (line 255)
* patterns <1>: patterns. (line 6)
-* PDF: Options. (line 149)
-* pdflatex: Options. (line 149)
-* pdfreloadOptions: Options. (line 135)
-* pdfviewer: Configuring. (line 6)
-* pdfviewerOptions: Options. (line 135)
+* PBR: three. (line 74)
+* PDF: Options. (line 156)
+* pdflatex: Options. (line 156)
+* pdfreloadOptions: Options. (line 142)
+* pdfviewer: Configuring. (line 20)
+* pdfviewerOptions: Options. (line 142)
* pen: Pens. (line 6)
* PenMargin: draw. (line 42)
-* PenMargin2: three. (line 563)
-* PenMargin3: three. (line 563)
+* PenMargin2: three. (line 617)
+* PenMargin3: three. (line 617)
* PenMargins: draw. (line 42)
-* PenMargins2: three. (line 563)
-* PenMargins3: three. (line 563)
+* PenMargins2: three. (line 617)
+* PenMargins3: three. (line 617)
* periodic: graph. (line 36)
* perl: LaTeX usage. (line 30)
* perpendicular: geometry. (line 6)
-* perspective: three. (line 343)
+* perspective: three. (line 397)
+* physically based rendering: three. (line 74)
* picture: Frames and pictures.
(line 39)
* picture alignment: Frames and pictures.
(line 228)
* piecewisestraight: Paths and guides. (line 92)
-* pixel: three. (line 570)
+* pixel: three. (line 624)
* Pl: Mathematical functions.
(line 48)
* plain: plain. (line 6)
-* planar: three. (line 88)
-* plane: three. (line 282)
-* planeproject: three. (line 464)
+* planar: three. (line 116)
+* plane: three. (line 336)
+* planeproject: three. (line 518)
* point: Paths and guides. (line 95)
* point <1>: Paths and guides. (line 379)
-* point <2>: three. (line 481)
+* point <2>: three. (line 535)
* polar: Data types. (line 148)
* polargraph: graph. (line 88)
* polygon: graph. (line 481)
* pop: Arrays. (line 39)
* Portrait: Frames and pictures.
(line 104)
+* position: three. (line 76)
* postcontrol: Paths and guides. (line 146)
-* postcontrol <1>: three. (line 481)
+* postcontrol <1>: three. (line 535)
* postfix operators: Self & prefix operators.
(line 19)
* postscript: Frames and pictures.
@@ -9647,18 +9737,18 @@ Index
* PostScript subpath: Paths. (line 23)
* pow10: Mathematical functions.
(line 6)
-* prc: three. (line 213)
+* prc: three. (line 267)
* precision: Files. (line 93)
* precontrol: Paths and guides. (line 139)
-* precontrol <1>: three. (line 481)
+* precontrol <1>: three. (line 535)
* prefix operators: Self & prefix operators.
(line 6)
* private: Structures. (line 6)
* programming: Programming. (line 6)
* pstoedit: PostScript to Asymptote.
(line 6)
-* psviewer: Configuring. (line 6)
-* psviewerOptions: Options. (line 135)
+* psviewer: Configuring. (line 20)
+* psviewerOptions: Options. (line 142)
* pt: Figure size. (line 18)
* public: Structures. (line 6)
* push: Arrays. (line 39)
@@ -9666,7 +9756,7 @@ Index
* quadraticroots: Arrays. (line 305)
* quadraticroots <1>: Arrays. (line 310)
* quarticroots: math. (line 22)
-* quick reference: Description. (line 81)
+* quick reference: Description. (line 84)
* quit: Drawing in interactive mode.
(line 11)
* quit <1>: Interactive mode. (line 54)
@@ -9682,7 +9772,7 @@ Index
* radians: Mathematical functions.
(line 17)
* radius: Paths and guides. (line 135)
-* radius <1>: three. (line 481)
+* radius <1>: three. (line 535)
* Rainbow: palette. (line 12)
* rand: Mathematical functions.
(line 39)
@@ -9700,7 +9790,7 @@ Index
* realmult: Data types. (line 100)
* rectangle: flowchart. (line 34)
* recursion: Functions. (line 100)
-* reference: Description. (line 81)
+* reference: Description. (line 84)
* reflect: Transforms. (line 42)
* Relative: label. (line 50)
* Relative <1>: label. (line 60)
@@ -9710,8 +9800,8 @@ Index
(line 6)
* rename: Files. (line 152)
* render: three. (line 46)
-* render <1>: three. (line 142)
-* render <2>: Options. (line 149)
+* render <1>: three. (line 172)
+* render <2>: Options. (line 156)
* replace: Data types. (line 269)
* resetdefaultpen: Pens. (line 371)
* rest arguments: Rest arguments. (line 6)
@@ -9723,7 +9813,7 @@ Index
* reverse <1>: Paths and guides. (line 183)
* reverse <2>: Paths and guides. (line 382)
* reverse <3>: Arrays. (line 136)
-* reverse <4>: three. (line 481)
+* reverse <4>: three. (line 535)
* rewind: Files. (line 93)
* rfind: Data types. (line 246)
* rgb: Pens. (line 30)
@@ -9735,9 +9825,9 @@ Index
* RightSide: label. (line 60)
* RightTicks: graph. (line 160)
* RightTicks <1>: graph. (line 233)
-* RightView: three. (line 367)
+* RightView: three. (line 421)
* Rotate: label. (line 36)
-* rotate: three. (line 435)
+* rotate: three. (line 489)
* Rotate(pair z): label. (line 39)
* round: Mathematical functions.
(line 26)
@@ -9750,7 +9840,7 @@ Index
* runtime imports: Import. (line 97)
* Russian: unicode. (line 7)
* S: Labels. (line 18)
-* safe: Options. (line 173)
+* safe: Options. (line 180)
* save: Frames and pictures.
(line 285)
* saveline: Files. (line 135)
@@ -9760,8 +9850,8 @@ Index
* scale <2>: Transforms. (line 36)
* scale <3>: graph. (line 691)
* Scale <1>: graph. (line 708)
-* scale <4>: three. (line 434)
-* scale3: three. (line 432)
+* scale <4>: three. (line 488)
+* scale3: three. (line 486)
* scaled graph: graph. (line 671)
* scientific graph: graph. (line 388)
* scroll: Files. (line 109)
@@ -9781,8 +9871,8 @@ Index
* self operators: Self & prefix operators.
(line 6)
* sequence: Arrays. (line 118)
-* settings: Configuring. (line 21)
-* settings <1>: Options. (line 120)
+* settings: Configuring. (line 20)
+* settings <1>: Options. (line 127)
* sgn: Mathematical functions.
(line 26)
* shading: fill. (line 32)
@@ -9790,11 +9880,12 @@ Index
* shift: Transforms. (line 26)
* shift <1>: Transforms. (line 28)
* shift <2>: Transforms. (line 46)
-* shift <3>: three. (line 424)
+* shift <3>: three. (line 478)
* shiftless: Transforms. (line 46)
+* shininess: three. (line 66)
* shipout: Frames and pictures.
(line 91)
-* showtarget: three. (line 316)
+* showtarget: three. (line 370)
* Si: Mathematical functions.
(line 48)
* signedint: Files. (line 76)
@@ -9814,9 +9905,9 @@ Index
* singlereal <1>: Files. (line 89)
* sinh: Mathematical functions.
(line 6)
-* SixViews: three. (line 382)
-* SixViewsFR: three. (line 382)
-* SixViewsUS: three. (line 382)
+* SixViews: three. (line 436)
+* SixViewsFR: three. (line 436)
+* SixViewsUS: three. (line 436)
* size: Figure size. (line 6)
* size <1>: Paths and guides. (line 81)
* size <2>: Paths and guides. (line 370)
@@ -9824,9 +9915,9 @@ Index
(line 48)
* size <4>: Frames and pictures.
(line 74)
-* size <5>: three. (line 481)
-* size <6>: Options. (line 149)
-* size3: three. (line 241)
+* size <5>: three. (line 535)
+* size <6>: Options. (line 156)
+* size3: three. (line 295)
* Slant: label. (line 42)
* slant: Transforms. (line 38)
* sleep: Data types. (line 375)
@@ -9847,6 +9938,9 @@ Index
* sort: Arrays. (line 177)
* sort <1>: Arrays. (line 181)
* sort <2>: Arrays. (line 196)
+* specular: three. (line 76)
+* specularfactor: three. (line 76)
+* specularpen: three. (line 66)
* Spline: graph. (line 33)
* Spline <1>: graph3. (line 99)
* split: Data types. (line 278)
@@ -9867,7 +9961,7 @@ Index
* stop: Debugger. (line 10)
* straight: Paths and guides. (line 88)
* Straight: graph. (line 30)
-* straight <1>: three. (line 481)
+* straight <1>: three. (line 535)
* strftime: Data types. (line 320)
* strftime <1>: Data types. (line 345)
* string: Data types. (line 207)
@@ -9879,7 +9973,7 @@ Index
* struct: Structures. (line 6)
* structures: Structures. (line 6)
* subpath: Paths and guides. (line 186)
-* subpath <1>: three. (line 481)
+* subpath <1>: three. (line 535)
* subpictures: Frames and pictures.
(line 113)
* substr: Data types. (line 261)
@@ -9888,12 +9982,12 @@ Index
* Suppress: Pens. (line 351)
* SuppressQuiet: Pens. (line 355)
* surface: three. (line 46)
-* surface <1>: three. (line 88)
-* surface <2>: three. (line 102)
+* surface <1>: three. (line 116)
+* surface <2>: three. (line 130)
* surface <3>: graph3. (line 99)
-* SVG: Options. (line 154)
+* SVG: Options. (line 161)
* system: Data types. (line 353)
-* system <1>: Options. (line 173)
+* system <1>: Options. (line 180)
* syzygy: syzygy. (line 6)
* tab: Files. (line 61)
* tab completion: Drawing in interactive mode.
@@ -9904,23 +9998,23 @@ Index
(line 20)
* tanh: Mathematical functions.
(line 6)
-* target: three. (line 316)
+* target: three. (line 370)
* tell: Files. (line 93)
* tension: Bezier curves. (line 56)
* tension <1>: three. (line 6)
* tensionSpecifier: Paths and guides. (line 402)
* tensor product shading: fill. (line 77)
* tensorshade: fill. (line 77)
-* tessellation: three. (line 114)
+* tessellation: three. (line 142)
* tex: Frames and pictures.
(line 302)
-* tex <1>: Options. (line 149)
+* tex <1>: Options. (line 156)
* TeX fonts: Pens. (line 215)
* TeX string: Data types. (line 207)
-* texcommand: Configuring. (line 64)
+* texcommand: Configuring. (line 72)
* TeXHead: draw. (line 26)
-* TeXHead3: three. (line 547)
-* texpath: Configuring. (line 64)
+* TeXHead3: three. (line 601)
+* texpath: Configuring. (line 72)
* texpath <1>: label. (line 113)
* texpreamble: Frames and pictures.
(line 311)
@@ -9929,13 +10023,13 @@ Index
* textbook graph: graph. (line 360)
* tgz: UNIX binary distributions.
(line 6)
-* thick: three. (line 125)
-* thin: three. (line 125)
+* thick: three. (line 154)
+* thin: three. (line 154)
* this: Structures. (line 6)
* three: three. (line 6)
-* ThreeViews: three. (line 382)
-* ThreeViewsFR: three. (line 382)
-* ThreeViewsUS: three. (line 382)
+* ThreeViews: three. (line 436)
+* ThreeViewsFR: three. (line 436)
+* ThreeViewsUS: three. (line 436)
* tick: graph. (line 330)
* ticks: graph. (line 160)
* Ticks: graph. (line 160)
@@ -9950,27 +10044,28 @@ Index
* times: Paths and guides. (line 220)
* times <1>: Paths and guides. (line 224)
* Top: graph. (line 135)
-* TopView: three. (line 367)
+* TopView: three. (line 421)
* trace: Debugger. (line 50)
* trailingzero: graph. (line 175)
* transform: Transforms. (line 6)
-* transform <1>: three. (line 456)
-* transform3: three. (line 419)
+* transform <1>: three. (line 510)
+* transform3: three. (line 473)
* transparency: Pens. (line 237)
+* transparent: three. (line 97)
* transpose: Arrays. (line 203)
* transpose <1>: Arrays. (line 206)
* tree: tree. (line 6)
* trembling: trembling. (line 6)
* triangle: geometry. (line 6)
-* triangles: three. (line 114)
+* triangles: three. (line 142)
* triangulate: contour. (line 149)
* tridiagonal: Arrays. (line 261)
* trigonometric integrals: Mathematical functions.
(line 48)
* triple: Data types. (line 137)
* TrueMargin: draw. (line 42)
-* TrueMargin3: three. (line 563)
-* tube: three. (line 125)
+* TrueMargin3: three. (line 617)
+* tube: three. (line 154)
* tube <1>: tube. (line 6)
* tutorial: Tutorial. (line 6)
* type1cm: Pens. (line 192)
@@ -9991,10 +10086,10 @@ Index
* unit: Data types. (line 83)
* unit <1>: Data types. (line 173)
* unitbox: Paths. (line 44)
-* unitbox <1>: three. (line 288)
+* unitbox <1>: three. (line 342)
* unitcircle: Paths. (line 17)
* unitcircle <1>: Paths. (line 17)
-* unitcircle <2>: three. (line 256)
+* unitcircle <2>: three. (line 310)
* unitrand: Mathematical functions.
(line 39)
* unitsize: Figure size. (line 39)
@@ -10004,7 +10099,7 @@ Index
(line 6)
* unpacking: Rest arguments. (line 39)
* unravel: Import. (line 29)
-* up: three. (line 316)
+* up: three. (line 370)
* update: Files. (line 36)
* UpsideDown: Frames and pictures.
(line 104)
@@ -10028,32 +10123,35 @@ Index
* vectorization: Arrays. (line 318)
* verbatim: Frames and pictures.
(line 294)
-* vertex-dependent colors: three. (line 79)
+* vertex-dependent colors: three. (line 107)
* Vertical: flowchart. (line 77)
+* Viewport: three. (line 76)
* viewportheight: LaTeX usage. (line 50)
-* viewportmargin: three. (line 244)
-* viewportsize: three. (line 244)
+* viewportmargin: three. (line 298)
+* viewportsize: three. (line 298)
* viewportwidth: LaTeX usage. (line 50)
-* views: three. (line 213)
+* views: three. (line 267)
* vim: Editing modes. (line 32)
* virtual functions: Structures. (line 181)
* void: Data types. (line 10)
* W: Labels. (line 18)
+* WebGL: three. (line 220)
* 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 349)
* width: LaTeX usage. (line 50)
* windingnumber: Paths and guides. (line 283)
* word: Arrays. (line 349)
* write: Files. (line 53)
* write <1>: Arrays. (line 388)
-* X: three. (line 256)
+* X: three. (line 310)
* xasy: GUI. (line 6)
* xaxis3: graph3. (line 7)
* xdr: Files. (line 76)
-* xelatex: Options. (line 149)
+* xelatex: Options. (line 156)
* XEquals: graph. (line 265)
* xequals: graph. (line 278)
* xlimits: graph. (line 640)
@@ -10062,10 +10160,10 @@ Index
* xpart: Data types. (line 94)
* xpart <1>: Data types. (line 184)
* xscale: Transforms. (line 30)
-* xscale3: three. (line 426)
+* xscale3: three. (line 480)
* xtick: graph. (line 330)
-* XY: three. (line 441)
-* XY <1>: three. (line 456)
+* XY: three. (line 495)
+* XY <1>: three. (line 510)
* XYEquals: graph3. (line 21)
* XYZero: graph3. (line 21)
* XZEquals: graph3. (line 21)
@@ -10075,7 +10173,7 @@ Index
(line 6)
* Y <1>: Mathematical functions.
(line 48)
-* Y <2>: three. (line 256)
+* Y <2>: three. (line 310)
* yaxis3: graph3. (line 7)
* YEquals: graph. (line 128)
* yequals: graph. (line 278)
@@ -10083,14 +10181,14 @@ Index
* ypart: Data types. (line 97)
* ypart <1>: Data types. (line 187)
* yscale: Transforms. (line 32)
-* yscale3: three. (line 428)
+* yscale3: three. (line 482)
* ytick: graph. (line 330)
-* YX: three. (line 456)
-* YZ: three. (line 456)
+* YX: three. (line 510)
+* YZ: three. (line 510)
* YZEquals: graph3. (line 21)
* YZero: graph. (line 123)
* YZZero: graph3. (line 21)
-* Z: three. (line 256)
+* Z: three. (line 310)
* zaxis3: graph3. (line 7)
* zeroTransform: Transforms. (line 44)
* zerowinding: Pens. (line 164)
@@ -10107,159 +10205,159 @@ Index
* zeta: Mathematical functions.
(line 48)
* zpart: Data types. (line 190)
-* zscale3: three. (line 430)
-* ZX: three. (line 456)
-* ZX <1>: three. (line 456)
-* ZY: three. (line 456)
+* zscale3: three. (line 484)
+* ZX: three. (line 510)
+* ZX <1>: three. (line 510)
+* ZY: three. (line 510)

Tag Table:
Node: Top570
-Node: Description7279
-Node: Installation11100
-Node: UNIX binary distributions12144
-Node: MacOS X binary distributions13274
-Node: Microsoft Windows13828
-Node: Configuring15032
-Node: Search paths19178
-Node: Compiling from UNIX source20017
-Node: Editing modes23077
-Node: Git25498
-Node: Uninstall25898
-Node: Tutorial26244
-Node: Drawing in batch mode27132
-Node: Drawing in interactive mode28007
-Node: Figure size29039
-Node: Labels30631
-Node: Paths31458
-Ref: unitcircle32073
-Node: Drawing commands33973
-Node: draw35688
-Ref: arrows36870
-Node: fill42383
-Ref: gradient shading43429
-Node: clip47936
-Node: label48523
-Ref: Label49123
-Node: Bezier curves54968
-Node: Programming58865
-Ref: array iteration60618
-Node: Data types60785
-Ref: format71447
-Node: Paths and guides75893
-Ref: circle76147
-Ref: extension85854
-Node: Pens92663
-Ref: fillrule100352
-Ref: basealign101256
-Ref: transparency104090
-Ref: makepen107670
-Ref: overwrite108553
-Node: Transforms109767
-Node: Frames and pictures111599
-Ref: envelope112757
-Ref: size113850
-Ref: unitsize114837
-Ref: shipout115910
-Ref: filltype118261
-Ref: add121433
-Ref: add about122439
-Ref: tex125468
-Node: Files126364
-Ref: cd127351
-Ref: scroll132036
-Node: Variable initializers134954
-Node: Structures137671
-Node: Operators145173
-Node: Arithmetic & logical145487
-Node: Self & prefix operators147858
-Node: User-defined operators148652
-Node: Implicit scaling149565
-Node: Functions150128
-Ref: stack overflow153271
-Node: Default arguments153553
-Node: Named arguments154309
-Node: Rest arguments156879
-Node: Mathematical functions160001
-Node: Arrays164664
-Ref: sort171772
-Ref: tridiagonal174397
-Ref: solve175628
-Node: Slices179767
-Node: Casts183675
-Node: Import185942
-Node: Static191200
-Node: LaTeX usage194093
-Node: Base modules200608
-Node: plain203165
-Node: simplex203839
-Node: math204113
-Node: interpolate206822
-Node: geometry207101
-Node: trembling207695
-Node: stats207964
-Node: patterns208224
-Node: markers208460
-Node: tree210320
-Node: binarytree210505
-Node: drawtree211171
-Node: syzygy211372
-Node: feynman211646
-Node: roundedpath211921
-Node: animation212204
-Ref: animate212625
-Node: embed213742
-Node: slide214697
-Node: MetaPost215038
-Node: unicode215757
-Node: latin1216631
-Node: babel217000
-Node: labelpath217230
-Node: labelpath3218051
-Node: annotate218362
-Node: CAD218832
-Node: graph219143
-Ref: ticks226304
-Ref: pathmarkers240096
-Ref: marker240567
-Ref: markuniform240921
-Ref: errorbars242729
-Ref: automatic scaling247203
-Node: palette258950
-Ref: images259068
-Ref: image263242
-Ref: logimage263762
-Ref: penimage264867
-Ref: penfunctionimage265129
-Node: three265900
-Ref: PostScript3D292907
-Node: obj294645
-Node: graph3294894
-Ref: GaussianSurface300174
-Node: grid3301323
-Node: solids302107
-Node: tube303099
-Node: flowchart305333
-Node: contour309941
-Node: contour3315256
-Node: smoothcontour3315569
-Node: slopefield317290
-Node: ode318779
-Node: Options319036
-Ref: configuration file325418
-Ref: settings325418
-Ref: texengines326661
-Ref: convert326661
-Node: Interactive mode329985
-Ref: history332135
-Node: GUI333441
-Node: GUI installation333992
-Node: GUI usage334721
-Node: PostScript to Asymptote335637
-Node: Help336395
-Node: Debugger338049
-Node: Credits339805
-Node: Index340822
+Node: Description7280
+Node: Installation11190
+Node: UNIX binary distributions12234
+Node: MacOS X binary distributions13364
+Node: Microsoft Windows13918
+Node: Configuring15123
+Node: Search paths19579
+Node: Compiling from UNIX source20418
+Node: Editing modes23478
+Node: Git25899
+Node: Uninstall26299
+Node: Tutorial26645
+Node: Drawing in batch mode27534
+Node: Drawing in interactive mode28409
+Node: Figure size29441
+Node: Labels31033
+Node: Paths31860
+Ref: unitcircle32475
+Node: Drawing commands34375
+Node: draw36090
+Ref: arrows37272
+Node: fill42785
+Ref: gradient shading43831
+Node: clip48338
+Node: label48925
+Ref: Label49525
+Node: Bezier curves55370
+Node: Programming59267
+Ref: array iteration61020
+Node: Data types61187
+Ref: format71849
+Node: Paths and guides76295
+Ref: circle76549
+Ref: extension86256
+Node: Pens93065
+Ref: fillrule100754
+Ref: basealign101658
+Ref: transparency104492
+Ref: makepen108072
+Ref: overwrite108955
+Node: Transforms110169
+Node: Frames and pictures112001
+Ref: envelope113159
+Ref: size114252
+Ref: unitsize115239
+Ref: shipout116312
+Ref: filltype118663
+Ref: add121835
+Ref: add about122841
+Ref: tex125870
+Node: Files126766
+Ref: cd127753
+Ref: scroll132438
+Node: Variable initializers135356
+Node: Structures138073
+Node: Operators145575
+Node: Arithmetic & logical145889
+Node: Self & prefix operators148259
+Node: User-defined operators149053
+Node: Implicit scaling149966
+Node: Functions150529
+Ref: stack overflow153672
+Node: Default arguments153954
+Node: Named arguments154710
+Node: Rest arguments157280
+Node: Mathematical functions160402
+Node: Arrays165065
+Ref: sort172173
+Ref: tridiagonal174798
+Ref: solve176029
+Node: Slices180169
+Node: Casts184077
+Node: Import186344
+Node: Static191602
+Node: LaTeX usage194495
+Node: Base modules201010
+Node: plain203567
+Node: simplex204241
+Node: math204515
+Node: interpolate207224
+Node: geometry207503
+Node: trembling208097
+Node: stats208366
+Node: patterns208626
+Node: markers208862
+Node: tree210722
+Node: binarytree210907
+Node: drawtree211573
+Node: syzygy211774
+Node: feynman212048
+Node: roundedpath212323
+Node: animation212606
+Ref: animate213027
+Node: embed214144
+Node: slide215099
+Node: MetaPost215440
+Node: unicode216159
+Node: latin1217033
+Node: babel217402
+Node: labelpath217632
+Node: labelpath3218453
+Node: annotate218764
+Node: CAD219234
+Node: graph219545
+Ref: ticks226706
+Ref: pathmarkers240498
+Ref: marker240969
+Ref: markuniform241323
+Ref: errorbars243131
+Ref: automatic scaling247605
+Node: palette259352
+Ref: images259470
+Ref: image263644
+Ref: logimage264164
+Ref: penimage265269
+Ref: penfunctionimage265531
+Node: three266302
+Ref: PostScript3D295414
+Node: obj297152
+Node: graph3297401
+Ref: GaussianSurface302681
+Node: grid3303830
+Node: solids304614
+Node: tube305606
+Node: flowchart307840
+Node: contour312448
+Node: contour3317763
+Node: smoothcontour3318076
+Node: slopefield319797
+Node: ode321286
+Node: Options321543
+Ref: configuration file328391
+Ref: settings328391
+Ref: texengines329655
+Ref: convert329655
+Node: Interactive mode332979
+Ref: history335129
+Node: GUI336435
+Node: GUI installation336986
+Node: GUI usage337716
+Node: PostScript to Asymptote338632
+Node: Help339390
+Node: Debugger341044
+Node: Credits342800
+Node: Index343817

End Tag Table