summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-05-18 22:47:34 +0000
committerKarl Berry <karl@freefriends.org>2013-05-18 22:47:34 +0000
commit8da523330e61ea8e7b930c09cecaddec0b3a72a0 (patch)
tree07f156e733c33e3f416fa3de086bec250c693a25 /Master
parentbaff4255d94a765ab41d84c89ea23e44151770ee (diff)
asymptote 2.22
git-svn-id: svn://tug.org/texlive/trunk@30566 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rwxr-xr-xMaster/bin/i386-linux/asybin4152184 -> 4159480 bytes
-rwxr-xr-xMaster/texmf-dist/asymptote/GUI/xasy2asy.py4
-rwxr-xr-xMaster/texmf-dist/asymptote/GUI/xasyMainWin.py4
-rwxr-xr-xMaster/texmf-dist/asymptote/GUI/xasyVersion.py2
-rw-r--r--Master/texmf-dist/asymptote/asy-keywords.el4
-rw-r--r--Master/texmf-dist/asymptote/geometry.asy2
-rw-r--r--Master/texmf-dist/asymptote/graph.asy6
-rw-r--r--Master/texmf-dist/asymptote/math.asy20
-rw-r--r--Master/texmf-dist/asymptote/plain_picture.asy11
-rw-r--r--Master/texmf-dist/asymptote/three_light.asy2
-rw-r--r--Master/texmf-dist/asymptote/three_surface.asy9
-rw-r--r--Master/texmf-dist/asymptote/version.asy2
-rw-r--r--Master/texmf-dist/doc/asymptote/CAD.pdfbin68115 -> 68115 bytes
-rw-r--r--Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdfbin31517 -> 31847 bytes
-rw-r--r--Master/texmf-dist/doc/asymptote/asy-latex.pdfbin194493 -> 194493 bytes
-rw-r--r--Master/texmf-dist/doc/asymptote/asyRefCard.pdfbin53907 -> 53907 bytes
-rw-r--r--Master/texmf-dist/doc/asymptote/asymptote.pdfbin1235449 -> 1234580 bytes
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/shade.asy1
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/tvgen.asy779
-rw-r--r--Master/texmf-dist/doc/info/asy-faq.info2
-rw-r--r--Master/texmf-dist/doc/info/asymptote.info648
-rw-r--r--Master/texmf-dist/doc/man/man1/xasy.man1.pdfbin3859 -> 3863 bytes
-rwxr-xr-xMaster/tlpkg/asymptote/asy.exebin6361600 -> 6360064 bytes
23 files changed, 836 insertions, 660 deletions
diff --git a/Master/bin/i386-linux/asy b/Master/bin/i386-linux/asy
index 18d38183425..ba35e4ae05f 100755
--- a/Master/bin/i386-linux/asy
+++ b/Master/bin/i386-linux/asy
Binary files differ
diff --git a/Master/texmf-dist/asymptote/GUI/xasy2asy.py b/Master/texmf-dist/asymptote/GUI/xasy2asy.py
index 7779e073f81..984bd1f5dd9 100755
--- a/Master/texmf-dist/asymptote/GUI/xasy2asy.py
+++ b/Master/texmf-dist/asymptote/GUI/xasy2asy.py
@@ -18,8 +18,8 @@ from tempfile import mkdtemp
# PIL support is now mandatory due to rotations
try:
- import ImageTk
- import Image
+ from PIL import ImageTk
+ from PIL import Image
except:
pass
diff --git a/Master/texmf-dist/asymptote/GUI/xasyMainWin.py b/Master/texmf-dist/asymptote/GUI/xasyMainWin.py
index 0967107ac1a..e3a0044011a 100755
--- a/Master/texmf-dist/asymptote/GUI/xasyMainWin.py
+++ b/Master/texmf-dist/asymptote/GUI/xasyMainWin.py
@@ -40,8 +40,8 @@ from xasyActions import *
import string
try:
- import ImageTk
- import Image
+ from PIL import ImageTk
+ from PIL import Image
PILAvailable = True
except:
PILAvailable = False
diff --git a/Master/texmf-dist/asymptote/GUI/xasyVersion.py b/Master/texmf-dist/asymptote/GUI/xasyVersion.py
index 3afa87ce72c..692c96cf45c 100755
--- a/Master/texmf-dist/asymptote/GUI/xasyVersion.py
+++ b/Master/texmf-dist/asymptote/GUI/xasyVersion.py
@@ -1,2 +1,2 @@
#!/usr/bin/env python
-xasyVersion = "2.21"
+xasyVersion = "2.22"
diff --git a/Master/texmf-dist/asymptote/asy-keywords.el b/Master/texmf-dist/asymptote/asy-keywords.el
index 4298d20ef11..505d37c2c4f 100644
--- a/Master/texmf-dist/asymptote/asy-keywords.el
+++ b/Master/texmf-dist/asymptote/asy-keywords.el
@@ -2,7 +2,7 @@
;; This file is automatically generated by asy-list.pl.
;; Changes will be overwritten.
;;
-(defvar asy-keywords-version "2.21")
+(defvar asy-keywords-version "2.22")
(defvar asy-keyword-name '(
and controls tension atleast curl if else while for do return break continue struct typedef new access import unravel from include quote static public private restricted this explicit true false null cycle newframe operator ))
@@ -11,7 +11,7 @@ and controls tension atleast curl if else while for do return break continue str
Braid FitResult Label Legend Segment Solution TreeNode abscissa arc arrowhead binarytree binarytreeNode block bool bool3 bounds bqe circle conic coord coordsys cputime ellipse file filltype frame grid3 guide horner hsv hyperbola indexedTransform int inversion key light line linefit marginT marker mass object pair parabola path path3 pen picture point position projection real revolution scaleT scientific segment side slice solution splitface string surface tensionSpecifier ticklocate ticksgridT tickvalues transform transformation tree triangle trilinear triple vector vertex void ))
(defvar asy-function-name '(
-AND Arc ArcArrow ArcArrows Arrow Arrows Automatic AvantGarde BBox BWRainbow BWRainbow2 Bar Bars BeginArcArrow BeginArrow BeginBar BeginDotMargin BeginMargin BeginPenMargin Blank Bookman Bottom BottomTop Bounds Break Broken BrokenLog CLZ CTZ Ceil Circle CircleBarIntervalMarker Cos Courier CrossIntervalMarker DOSendl DOSnewl DefaultFormat DefaultLogFormat Degrees Dir DotMargin DotMargins Dotted Draw Drawline Embed EndArcArrow EndArrow EndBar EndDotMargin EndMargin EndPenMargin Fill FillDraw Floor Format Full Gaussian Gaussrand Gaussrandpair Gradient Grayscale Helvetica Hermite HookHead InOutTicks InTicks Jn Label Landscape Left LeftRight LeftTicks Legend Linear Log LogFormat Margin Margins Mark MidArcArrow MidArrow NOT NewCenturySchoolBook NoBox NoMargin NoModifier NoTicks NoTicks3 NoZero NoZeroFormat None OR OmitFormat OmitTick OmitTickInterval OmitTickIntervals OutTicks Ox Oy Palatino PaletteTicks Pen PenMargin PenMargins Pentype Portrait RadialShade RadialShadeDraw Rainbow Range Relative Right RightTicks Rotate Round SQR Scale ScaleX ScaleY ScaleZ Seascape Segment Shift Sin Slant Spline StickIntervalMarker Straight Symbol Tan TeXify Ticks Ticks3 TildeIntervalMarker TimesRoman Top TrueMargin UnFill UpsideDown Wheel X XEquals XOR XY XYEquals XYZero XYgrid XZEquals XZZero XZero XZgrid Y YEquals YXgrid YZ YZEquals YZZero YZero YZgrid Yn Z ZX ZXgrid ZYgrid ZapfChancery ZapfDingbats _begingroup3 _cputime _draw _eval _image _labelpath _projection _strokepath _texpath aCos aSin aTan abort abs accel acos acosh acot acsc activatequote add addArrow addMargins addSaveFunction addpenarc addpenline adjust alias align all altitude angabscissa angle angpoint animate annotate anticomplementary antipedal apply approximate arc arcarrowsize arccircle arcdir arcfromcenter arcfromfocus arclength arcnodesnumber arcpoint arcsubtended arcsubtendedcenter arctime arctopath array arrow arrow2 arrowbase arrowbasepoints arrowsize ascii asec asin asinh ask assert asy asycode asydir asyfigure asyfilecode asyinclude asywrite atan atan2 atanh atbreakpoint atexit attach attract atupdate autoformat autoscale autoscale3 axes axes3 axialshade axis axiscoverage azimuth babel background bangles bar barmarksize barsize basealign baseline bbox beep begin beginclip begingroup beginpoint between bevel bezier bezierP bezierPP bezierPPP bezulate bibliography bibliographystyle binarytree binarytreeNode binomial bins bisector bisectorpoint bispline blend blockconnector box bqe breakpoint breakpoints brick buildRestoreDefaults buildRestoreThunk buildcycle bulletcolor byte calculateScaling canonical canonicalcartesiansystem cartesiansystem case1 case2 case3 case4 cbrt cd ceil center centerToFocus centroid cevian change2 changecoordsys checkSegment checkconditionlength checker checkincreasing checklengths checkposition checktriangle choose circle circlebarframe circlemarkradius circlenodesnumber circumcenter circumcircle clamped clear clip clipdraw close cmyk code colatitude collect collinear color colorless colors colorspace comma compassmark complement complementary concat concurrent cone conic conicnodesnumber conictype conj connect connected connectedindex containmentTree contains contour contour3 contouredges controlSpecifier convert coordinates coordsys copy copyPairOrTriple cos cosh cot countIntersections cputime crop cropcode cross crossframe crosshatch crossmarksize csc cubicroots curabscissa curlSpecifier curpoint currentarrow currentexitfunction currentmomarrow currentpolarconicroutine curve cut cutafter cutbefore cyclic cylinder deactivatequote debugger deconstruct defaultdir defaultformat defaultpen defined degenerate degrees delete deletepreamble determinant diagonal diamond diffdiv dir dirSpecifier dirtime display distance divisors do_overpaint dot dotframe dotsize downcase draw drawAll drawDoubleLine drawFermion drawGhost drawGluon drawMomArrow drawPRCcylinder drawPRCdisk drawPRCsphere drawPRCtube drawPhoton drawScalar drawVertex drawVertexBox drawVertexBoxO drawVertexBoxX drawVertexO drawVertexOX drawVertexTriangle drawVertexTriangleO drawVertexX drawarrow drawarrow2 drawline drawpixel drawtick duplicate elle ellipse ellipsenodesnumber embed embed3 embedplayer empty enclose end endScript endclip endgroup endgroup3 endl endpoint endpoints eof eol equation equations erase erasestep erf erfc error errorbar errorbars eval excenter excircle exit exitXasyMode exitfunction exp expfactors expi expm1 exradius extend extension extouch fabs factorial fermat fft fhorner figure file filecode fill filldraw filloutside fillrule filltype find finite finiteDifferenceJacobian firstcut firstframe fit fit2 fixedscaling floor flush fmdefaults fmod focusToCenter font fontcommand fontsize foot format frac frequency fromCenter fromFocus fspline functionshade gamma generate_random_backtrace generateticks gergonne getc getint getpair getreal getstring gettriple gluon gouraudshade graph graphic gray grestore grid grid3 gsave halfbox hatch hdiffdiv hermite hex histogram history hline hprojection hsv hyperbola hyperbolanodesnumber hyperlink hypot identity image incenter incentral incircle increasing incrementposition indexedTransform indexedfigure initXasyMode initdefaults input inradius insert inside integrate interactive interior interp interpolate intersect intersection intersectionpoint intersectionpoints intersections intouch inverse inversion invisible is3D isCCW isDuplicate isnan isogonal isogonalconjugate isotomic isotomicconjugate isparabola italic item jobname key kurtosis kurtosisexcess label labelaxis labelmargin labelpath labels labeltick labelx labelx3 labely labely3 labelz labelz3 lastcut latex latitude latticeshade layer layout ldexp leastsquares legend legenditem length lexorder lift light limits line linear linecap lineinversion linejoin linemargin lineskip linetype linewidth link list lm_enorm lm_evaluate_default lm_lmdif lm_lmpar lm_minimize lm_print_default lm_print_quiet lm_qrfac lm_qrsolv locale locate locatefile location log log10 log1p logaxiscoverage longitude lookup makeNode makedraw makepen map margin markangle markangleradius markanglespace markarc marker markinterval marknodes markrightangle markthin markuniform mass masscenter massformat math max max3 maxAfterTransform maxbezier maxbound maxcoords maxlength maxratio maxtimes mean medial median midpoint min min3 minAfterTransform minbezier minbound minipage minratio mintimes miterlimit mktemp momArrowPath momarrowsize monotonic multifigure nativeformat natural needshipout newl newpage newslide newton newtree nextframe nextnormal nextpage nib nodabscissa none norm normalvideo notaknot nowarn numberpage nurb object offset onpath opacity opposite orientation origin orthic orthocentercenter outformat outline outname outprefix output overloadedMessage overwrite pack pad pairs palette parabola parabolanodesnumber parallel parallelogram partialsum path path3 pattern pause pdf pedal periodic perp perpendicular perpendicularmark phantom phi1 phi2 phi3 photon piecewisestraight point polar polarconicroutine polargraph polygon postcontrol postscript pow10 ppoint prc prc0 precision precontrol prepend printBytecode print_random_addresses project projection purge pwhermite quadrant quadraticroots quantize quarticroots quotient radialshade radians radicalcenter radicalline radius rand randompath rd readline realmult realquarticroots rectangle rectangular rectify reflect relabscissa relative relativedistance reldir relpoint reltime remainder remark removeDuplicates rename replace report resetdefaultpen restore restoredefaults reverse reversevideo rf rfind rgb rgba rgbint rms rotate rotateO rotation round roundbox roundedpath roundrectangle same samecoordsys sameside sample save savedefaults saveline scale scale3 scaleO scaleT scaleless scientific search searchindex searchtree sec secondaryX secondaryY seconds section sector seek seekeof segment sequence setcontour setpens sgn sgnd sharpangle sharpdegrees shift shiftless shipout shipout3 show side simeq simpson sin sinh size size3 skewness skip slant sleep slope slopefield solve solveBVP sort sourceline sphere split sqrt square srand standardizecoordsys startScript stdev step stickframe stickmarksize stickmarkspace stop straight straightness string stripdirectory stripextension stripfile stripsuffix strokepath subdivide subitem subpath substr sum surface symmedial symmedian system tab tableau tan tangent tangential tangents tanh tell tensionSpecifier tensorshade tex texcolor texify texpath texpreamble texreset texshipout texsize textpath thick thin tick tickMax tickMax3 tickMin tickMin3 ticklabelshift ticklocate tildeframe tildemarksize tile tiling time times title titlepage topbox transform transformation transpose trembleFuzz triangle triangleAbc triangleabc triangulate tricoef tridiagonal trilinear trim truepoint tube uncycle unfill uniform unique unit unitrand unitsize unityroot unstraighten upcase updatefunction uperiodic upscale uptodate usepackage usersetting usetypescript usleep value variance variancebiased vbox vector vectorfield verbatim view vline vperiodic vprojection warn warning windingnumber write xaxis xaxis3 xaxis3At xaxisAt xequals xlimits xpart xscale xscaleO xtick xtick3 xtrans yaxis yaxis3 yaxis3At yaxisAt yequals ylimits ypart yscale yscaleO ytick ytick3 ytrans zaxis3 zaxis3At zero zero3 zlimits zpart ztick ztick3 ztrans ))
+AND Arc ArcArrow ArcArrows Arrow Arrows Automatic AvantGarde BBox BWRainbow BWRainbow2 Bar Bars BeginArcArrow BeginArrow BeginBar BeginDotMargin BeginMargin BeginPenMargin Blank Bookman Bottom BottomTop Bounds Break Broken BrokenLog CLZ CTZ Ceil Circle CircleBarIntervalMarker Cos Courier CrossIntervalMarker DOSendl DOSnewl DefaultFormat DefaultLogFormat Degrees Dir DotMargin DotMargins Dotted Draw Drawline Embed EndArcArrow EndArrow EndBar EndDotMargin EndMargin EndPenMargin Fill FillDraw Floor Format Full Gaussian Gaussrand Gaussrandpair Gradient Grayscale Helvetica Hermite HookHead InOutTicks InTicks Jn Label Landscape Left LeftRight LeftTicks Legend Linear Log LogFormat Margin Margins Mark MidArcArrow MidArrow NOT NewCenturySchoolBook NoBox NoMargin NoModifier NoTicks NoTicks3 NoZero NoZeroFormat None OR OmitFormat OmitTick OmitTickInterval OmitTickIntervals OutTicks Ox Oy Palatino PaletteTicks Pen PenMargin PenMargins Pentype Portrait RadialShade RadialShadeDraw Rainbow Range Relative Right RightTicks Rotate Round SQR Scale ScaleX ScaleY ScaleZ Seascape Segment Shift Sin Slant Spline StickIntervalMarker Straight Symbol Tan TeXify Ticks Ticks3 TildeIntervalMarker TimesRoman Top TrueMargin UnFill UpsideDown Wheel X XEquals XOR XY XYEquals XYZero XYgrid XZEquals XZZero XZero XZgrid Y YEquals YXgrid YZ YZEquals YZZero YZero YZgrid Yn Z ZX ZXgrid ZYgrid ZapfChancery ZapfDingbats _begingroup3 _cputime _draw _eval _image _labelpath _projection _strokepath _texpath aCos aSin aTan abort abs accel acos acosh acot acsc activatequote add addArrow addMargins addSaveFunction addpenarc addpenline adjust alias align all altitude angabscissa angle angpoint animate annotate anticomplementary antipedal apply approximate arc arcarrowsize arccircle arcdir arcfromcenter arcfromfocus arclength arcnodesnumber arcpoint arcsubtended arcsubtendedcenter arctime arctopath array arrow arrow2 arrowbase arrowbasepoints arrowsize ascii asec asin asinh ask assert asy asycode asydir asyfigure asyfilecode asyinclude asywrite atan atan2 atanh atbreakpoint atexit attach attract atupdate autoformat autoscale autoscale3 axes axes3 axialshade axis axiscoverage azimuth babel background bangles bar barmarksize barsize basealign baseline bbox beep begin beginclip begingroup beginpoint between bevel bezier bezierP bezierPP bezierPPP bezulate bibliography bibliographystyle binarytree binarytreeNode binomial bins bisector bisectorpoint bispline blend blockconnector box bqe breakpoint breakpoints brick buildRestoreDefaults buildRestoreThunk buildcycle bulletcolor byte calculateScaling canonical canonicalcartesiansystem cartesiansystem case1 case2 case3 case4 cbrt cd ceil center centerToFocus centroid cevian change2 changecoordsys checkSegment checkconditionlength checker checkincreasing checklengths checkposition checktriangle choose circle circlebarframe circlemarkradius circlenodesnumber circumcenter circumcircle clamped clear clip clipdraw close cmyk code colatitude collect collinear color colorless colors colorspace comma compassmark complement complementary concat concurrent cone conic conicnodesnumber conictype conj connect connected connectedindex containmentTree contains contour contour3 contouredges controlSpecifier convert coordinates coordsys copy copyPairOrTriple cos cosh cot countIntersections cputime crop cropcode cross crossframe crosshatch crossmarksize csc cubicroots curabscissa curlSpecifier curpoint currentarrow currentexitfunction currentmomarrow currentpolarconicroutine curve cut cutafter cutbefore cyclic cylinder deactivatequote debugger deconstruct defaultdir defaultformat defaultpen defined degenerate degrees delete deletepreamble determinant diagonal diamond diffdiv dir dirSpecifier dirtime display distance divisors do_overpaint dot dotframe dotsize downcase draw drawAll drawDoubleLine drawFermion drawGhost drawGluon drawMomArrow drawPRCcylinder drawPRCdisk drawPRCsphere drawPRCtube drawPhoton drawScalar drawVertex drawVertexBox drawVertexBoxO drawVertexBoxX drawVertexO drawVertexOX drawVertexTriangle drawVertexTriangleO drawVertexX drawarrow drawarrow2 drawline drawpixel drawtick duplicate elle ellipse ellipsenodesnumber embed embed3 embedplayer empty enclose end endScript endclip endgroup endgroup3 endl endpoint endpoints eof eol equation equations erase erasestep erf erfc error errorbar errorbars eval excenter excircle exit exitXasyMode exitfunction exp expfactors expi expm1 exradius extend extension extouch fabs factorial fermat fft fhorner figure file filecode fill filldraw filloutside fillrule filltype find finite finiteDifferenceJacobian firstcut firstframe fit fit2 fixedscaling floor flush fmdefaults fmod focusToCenter font fontcommand fontsize foot format frac frequency fromCenter fromFocus fspline functionshade gamma generate_random_backtrace generateticks gergonne getc getint getpair getreal getstring gettriple gluon gouraudshade graph graphic gray grestore grid grid3 gsave halfbox hatch hdiffdiv hermite hex histogram history hline hprojection hsv hyperbola hyperbolanodesnumber hyperlink hypot identity image incenter incentral incircle increasing incrementposition indexedTransform indexedfigure initXasyMode initdefaults input inradius insert inside integrate interactive interior interp interpolate intersect intersection intersectionpoint intersectionpoints intersections intouch inverse inversion invisible is3D isCCW isDuplicate isnan isogonal isogonalconjugate isotomic isotomicconjugate isparabola italic item jobname key kurtosis kurtosisexcess label labelaxis labelmargin labelpath labels labeltick labelx labelx3 labely labely3 labelz labelz3 lastcut latex latitude latticeshade layer layout ldexp leastsquares legend legenditem length lexorder lift light limits line linear linecap lineinversion linejoin linemargin lineskip linetype linewidth link list lm_enorm lm_evaluate_default lm_lmdif lm_lmpar lm_minimize lm_print_default lm_print_quiet lm_qrfac lm_qrsolv locale locate locatefile location log log10 log1p logaxiscoverage longitude lookup makeNode makedraw makepen map margin markangle markangleradius markanglespace markarc marker markinterval marknodes markrightangle markthin markuniform mass masscenter massformat math max max3 maxAfterTransform maxbezier maxbound maxcoords maxlength maxratio maxtimes mean medial median midpoint min min3 minAfterTransform minbezier minbound minipage minratio mintimes miterlimit mktemp momArrowPath momarrowsize monotonic multifigure nativeformat natural needshipout newl newpage newslide newton newtree nextframe nextnormal nextpage nib nodabscissa none norm normalvideo notaknot nowarn numberpage nurb object offset onpath opacity opposite orientation origin orthic orthocentercenter outformat outline outname outprefix output overloadedMessage overwrite pack pad pairs palette parabola parabolanodesnumber parallel parallelogram partialsum path path3 pattern pause pdf pedal periodic perp perpendicular perpendicularmark phantom phi1 phi2 phi3 photon piecewisestraight point polar polarconicroutine polargraph polygon postcontrol postscript pow10 ppoint prc prc0 precision precontrol prepend printBytecode print_random_addresses project projection purge pwhermite quadrant quadraticroots quantize quarticroots quotient radialshade radians radicalcenter radicalline radius rand randompath rd readline realmult realquarticroots rectangle rectangular rectify reflect relabscissa relative relativedistance reldir relpoint reltime remainder remark removeDuplicates rename replace report resetdefaultpen restore restoredefaults reverse reversevideo rf rfind rgb rgba rgbint rms rotate rotateO rotation round roundbox roundedpath roundrectangle same samecoordsys sameside sample save savedefaults saveline scale scale3 scaleO scaleT scaleless scientific search searchindex searchtree sec secondaryX secondaryY seconds section sector seek seekeof segment segmentlimits sequence setcontour setpens sgn sgnd sharpangle sharpdegrees shift shiftless shipout shipout3 show side simeq simpson sin sinh size size3 skewness skip slant sleep slope slopefield solve solveBVP sort sourceline sphere split sqrt square srand standardizecoordsys startScript stdev step stickframe stickmarksize stickmarkspace stop straight straightness string stripdirectory stripextension stripfile stripsuffix strokepath subdivide subitem subpath substr sum surface symmedial symmedian system tab tableau tan tangent tangential tangents tanh tell tensionSpecifier tensorshade tex texcolor texify texpath texpreamble texreset texshipout texsize textpath thick thin tick tickMax tickMax3 tickMin tickMin3 ticklabelshift ticklocate tildeframe tildemarksize tile tiling time times title titlepage topbox transform transformation transpose trembleFuzz triangle triangleAbc triangleabc triangulate tricoef tridiagonal trilinear trim truepoint tube uncycle unfill uniform unique unit unitrand unitsize unityroot unstraighten upcase updatefunction uperiodic upscale uptodate usepackage usersetting usetypescript usleep value variance variancebiased vbox vector vectorfield verbatim view vline vperiodic vprojection warn warning windingnumber write xaxis xaxis3 xaxis3At xaxisAt xequals xlimits xpart xscale xscaleO xtick xtick3 xtrans yaxis yaxis3 yaxis3At yaxisAt yequals ylimits ypart yscale yscaleO ytick ytick3 ytrans zaxis3 zaxis3At zero zero3 zlimits zpart ztick ztick3 ztrans ))
(defvar asy-variable-name '(
AliceBlue Align Allow AntiqueWhite Apricot Aqua Aquamarine Aspect Azure BeginPoint Beige Bisque Bittersweet Black BlanchedAlmond Blue BlueGreen BlueViolet Both Break BrickRed Brown BurlyWood BurntOrange CCW CW CadetBlue CarnationPink Center Centered Cerulean Chartreuse Chocolate Coeff Coral CornflowerBlue Cornsilk Crimson Crop Cyan Dandelion DarkBlue DarkCyan DarkGoldenrod DarkGray DarkGreen DarkKhaki DarkMagenta DarkOliveGreen DarkOrange DarkOrchid DarkRed DarkSalmon DarkSeaGreen DarkSlateBlue DarkSlateGray DarkTurquoise DarkViolet DeepPink DeepSkyBlue DefaultHead DimGray DodgerBlue Dotted Down Draw E ENE EPS ESE E_Euler E_PC E_RK2 E_RK3BS Emerald EndPoint Euler Fill FillDraw FireBrick FloralWhite ForestGreen Fuchsia Gainsboro GhostWhite Gold Goldenrod Gray Green GreenYellow Honeydew HookHead Horizontal HotPink I IgnoreAspect IndianRed Indigo Ivory JOIN_IN JOIN_OUT JungleGreen Khaki LM_DWARF LM_MACHEP LM_SQRT_DWARF LM_SQRT_GIANT LM_USERTOL Label Lavender LavenderBlush LawnGreen Left LeftJustified LeftSide LemonChiffon LightBlue LightCoral LightCyan LightGoldenrodYellow LightGreen LightGrey LightPink LightSalmon LightSeaGreen LightSkyBlue LightSlateGray LightSteelBlue LightYellow Lime LimeGreen Linear Linen Log Logarithmic Magenta Mahogany Mark MarkFill MarkPath Maroon Max MediumAquamarine MediumBlue MediumOrchid MediumPurple MediumSeaGreen MediumSlateBlue MediumSpringGreen MediumTurquoise MediumVioletRed Melon MidPoint MidnightBlue Min MintCream MistyRose Moccasin Move MoveQuiet Mulberry N NE NNE NNW NW NavajoWhite Navy NavyBlue NoAlign NoCrop NoFill NoSide OldLace Olive OliveDrab OliveGreen Orange OrangeRed Orchid Ox Oy PC PaleGoldenrod PaleGreen PaleTurquoise PaleVioletRed PapayaWhip Peach PeachPuff Periwinkle Peru PineGreen Pink Plum PowderBlue ProcessBlue Purple RK2 RK3 RK3BS RK4 RK5 RK5DP RK5F RawSienna Red RedOrange RedViolet Rhodamine Right RightJustified RightSide RosyBrown RoyalBlue RoyalPurple RubineRed S SE SSE SSW SW SaddleBrown Salmon SandyBrown SeaGreen Seashell Sepia Sienna Silver SimpleHead SkyBlue SlateBlue SlateGray Snow SpringGreen SteelBlue Suppress SuppressQuiet Tan TeXHead Teal TealBlue Thistle Ticksize Tomato Turquoise UnFill Up VERSION Value Vertical Violet VioletRed W WNW WSW Wheat White WhiteSmoke WildStrawberry XYAlign YAlign Yellow YellowGreen YellowOrange addpenarc addpenline align allowstepping angularsystem animationdelay appendsuffix arcarrowangle arcarrowfactor arrow2sizelimit arrowangle arrowbarb arrowdir arrowfactor arrowhookfactor arrowlength arrowsizelimit arrowtexfactor authorpen axis axiscoverage axislabelfactor background backgroundcolor backgroundpen barfactor barmarksizefactor basealign baselinetemplate beveljoin bigvertexpen bigvertexsize black blue bm bottom bp brown bullet byfoci byvertices camerafactor chartreuse circlemarkradiusfactor circlenodesnumberfactor circleprecision circlescale cm codefile codepen codeskip colorPen coloredNodes coloredSegments conditionlength conicnodesfactor count cputimeformat crossmarksizefactor currentcoordsys currentlight currentpatterns currentpen currentpicture currentposition currentprojection curvilinearsystem cuttings cyan darkblue darkbrown darkcyan darkgray darkgreen darkgrey darkmagenta darkolive darkred dashdotted dashed datepen dateskip debuggerlines debugging deepblue deepcyan deepgray deepgreen deepgrey deepmagenta deepred default defaultControl defaultS defaultbackpen defaultcoordsys defaultexcursion defaultfilename defaultformat defaultmassformat defaultpen defaultseparator diagnostics differentlengths dot dotfactor dotframe dotted doublelinepen doublelinespacing down duplicateFuzz edge ellipsenodesnumberfactor eps epsgeo epsilon evenodd expansionfactor extendcap exterior fermionpen figureborder figuremattpen file3 firstnode firststep foregroundcolor fuchsia fuzz gapfactor ghostpen gluonamplitude gluonpen gluonratio gray green grey hatchepsilon havepagenumber heavyblue heavycyan heavygray heavygreen heavygrey heavymagenta heavyred hline hwratio hyperbola hyperbolanodesnumberfactor identity4 ignore inXasyMode inch inches includegraphicscommand inf infinity institutionpen intMax intMin interior invert invisible itempen itemskip itemstep labelmargin landscape lastnode left legendhskip legendlinelength legendmargin legendmarkersize legendmaxrelativewidth legendvskip lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightolive lightred lightyellow line linemargin lm_infmsg lm_shortmsg longdashdotted longdashed magenta magneticRadius mantissaBits markangleradius markangleradiusfactor markanglespace markanglespacefactor mediumblue mediumcyan mediumgray mediumgreen mediumgrey mediummagenta mediumred mediumyellow middle minDistDefault minblockheight minblockwidth mincirclediameter minipagemargin minipagewidth minvertexangle miterjoin mm momarrowfactor momarrowlength momarrowmargin momarrowoffset momarrowpen monoPen morepoints nCircle newbulletcolor ngraph nil nmesh nobasealign nodeMarginDefault nodesystem nomarker nopoint noprimary nullpath nullpen numarray ocgindex oldbulletcolor olive orange origin overpaint page pageheight pagemargin pagenumberalign pagenumberpen pagenumberposition pagewidth paleblue palecyan palegray palegreen palegrey palemagenta palered paleyellow parabolanodesnumberfactor perpfactor phi photonamplitude photonpen photonratio pi pink plain plain_bounds plain_scaling plus preamblenodes pt purple r3 r4a r4b randMax realDigits realEpsilon realMax realMin red relativesystem reverse right roundcap roundjoin royalblue salmon saveFunctions scalarpen sequencereal settings shipped signedtrailingzero solid springgreen sqrtEpsilon squarecap squarepen startposition stdin stdout stepfactor stepfraction steppagenumberpen stepping stickframe stickmarksizefactor stickmarkspacefactor swap textpen ticksize tildeframe tildemarksizefactor tinv titlealign titlepagepen titlepageposition titlepen titleskip top trailingzero treeLevelStep treeMinNodeWidth treeNodeStep trembleAngle trembleFrequency trembleRandom undefined unitcircle unitsquare up urlpen urlskip version vertexpen vertexsize viewportmargin viewportsize vline white wye xformStack yellow ylabelwidth zerotickfuzz zerowinding ))
diff --git a/Master/texmf-dist/asymptote/geometry.asy b/Master/texmf-dist/asymptote/geometry.asy
index bbbc823fc54..6dc10674bd9 100644
--- a/Master/texmf-dist/asymptote/geometry.asy
+++ b/Master/texmf-dist/asymptote/geometry.asy
@@ -4099,7 +4099,7 @@ real arclength(ellipse el, real angle1, real angle2,
real S(real a)
{//Return the arclength from 0 to the angle 'a' (in degrees)
// given form the center of the ellipse.
- real gle = atan(el.a * Tan(a)/el.b)+
+ real gle = atan(el.a * tan(radians(a))/el.b)+
pi * (((a%90 == 0 && a != 0) ? floor(a/90) - 1 : floor(a/90)) -
((a%180 == 0) ? 0 : floor(a/180)) -
(a%360 == 0 ? floor(a/(360)) : 0));
diff --git a/Master/texmf-dist/asymptote/graph.asy b/Master/texmf-dist/asymptote/graph.asy
index 410c59cf13a..c50a7a67b2c 100644
--- a/Master/texmf-dist/asymptote/graph.asy
+++ b/Master/texmf-dist/asymptote/graph.asy
@@ -235,8 +235,10 @@ ticklabel Format(string s=defaultformat)
ticklabel OmitFormat(string s=defaultformat ... real[] x)
{
return new string(real v) {
- int i=find(x == v);
- return i < 0 ? format(s,v) : "";
+ string V=format(s,v);
+ for(real a : x)
+ if(format(s,a) == V) return "";
+ return V;
};
}
diff --git a/Master/texmf-dist/asymptote/math.asy b/Master/texmf-dist/asymptote/math.asy
index 77c0664895f..46d663d3181 100644
--- a/Master/texmf-dist/asymptote/math.asy
+++ b/Master/texmf-dist/asymptote/math.asy
@@ -149,8 +149,9 @@ bool increasing(real[] a, bool strict=false)
return all(b);
}
-// Return the indices of consecutive true-element segments of bool[] b.
-int[][] segment(bool[] b)
+// Return the first and last indices of consecutive true-element segments
+// of bool[] b.
+int[][] segmentlimits(bool[] b)
{
int[][] segment;
bool[] n=copy(b);
@@ -159,15 +160,24 @@ int[][] segment(bool[] b)
int[] edge=(b != n) ? sequence(1,b.length) : null;
edge.insert(0,0);
int stop=edge[0];
- for(int i=0; i < edge.length-1;) {
+ for(int i=1; i < edge.length; ++i) {
int start=stop;
- stop=edge[++i];
+ stop=edge[i];
if(b[start])
- segment.push(sequence(start,stop-1));
+ segment.push(new int[] {start,stop-1});
}
return segment;
}
+// Return the indices of consecutive true-element segments of bool[] b.
+int[][] segment(bool[] b)
+{
+ int[][] S=segmentlimits(b);
+ return sequence(new int[](int i) {
+ return sequence(S[i][0],S[i][1]);
+ },S[0].length);
+}
+
// If the sorted array a does not contain x, insert it sequentially,
// returning the index of x in the resulting array.
int unique(real[] a, real x) {
diff --git a/Master/texmf-dist/asymptote/plain_picture.asy b/Master/texmf-dist/asymptote/plain_picture.asy
index 5b06b7f737c..5f4d759663a 100644
--- a/Master/texmf-dist/asymptote/plain_picture.asy
+++ b/Master/texmf-dist/asymptote/plain_picture.asy
@@ -1250,19 +1250,20 @@ void latticeshade(picture pic=currentpicture, path[] g, bool stroke=false,
}
void axialshade(picture pic=currentpicture, path[] g, bool stroke=false,
- pen pena, pair a, pen penb, pair b, bool copy=true)
+ pen pena, pair a, bool extenda=true,
+ pen penb, pair b, bool extendb=true, bool copy=true)
{
if(copy)
g=copy(g);
pic.add(new void(frame f, transform t) {
- axialshade(f,t*g,stroke,pena,t*a,penb,t*b,false);
+ axialshade(f,t*g,stroke,pena,t*a,extenda,penb,t*b,extendb,false);
},true);
pic.addPath(g);
}
void radialshade(picture pic=currentpicture, path[] g, bool stroke=false,
- pen pena, pair a, real ra, pen penb, pair b, real rb,
- bool copy=true)
+ pen pena, pair a, real ra, bool extenda=true,
+ pen penb, pair b, real rb, bool extendb=true, bool copy=true)
{
if(copy)
g=copy(g);
@@ -1270,7 +1271,7 @@ void radialshade(picture pic=currentpicture, path[] g, bool stroke=false,
pair A=t*a, B=t*b;
real RA=abs(t*(a+ra)-A);
real RB=abs(t*(b+rb)-B);
- radialshade(f,t*g,stroke,pena,A,RA,penb,B,RB,false);
+ radialshade(f,t*g,stroke,pena,A,RA,extenda,penb,B,RB,extendb,false);
},true);
pic.addPath(g);
}
diff --git a/Master/texmf-dist/asymptote/three_light.asy b/Master/texmf-dist/asymptote/three_light.asy
index 73f68b62a86..6cbd9b6f0be 100644
--- a/Master/texmf-dist/asymptote/three_light.asy
+++ b/Master/texmf-dist/asymptote/three_light.asy
@@ -79,7 +79,7 @@ pen color(triple normal, material m, light light, transform3 T=light.T) {
triple[] position=light.position;
if(invisible((pen) m)) return invisible;
if(position.length == 0) return m.diffuse();
- normal=unit(T*normal);
+ normal=unit(transpose(inverse(shiftless(T)))*normal);
if(settings.twosided) normal *= sgn(normal.z);
real s=m.shininess*128;
real[] Diffuse=rgba(m.diffuse());
diff --git a/Master/texmf-dist/asymptote/three_surface.asy b/Master/texmf-dist/asymptote/three_surface.asy
index 0ef497f6d56..85d32b08eb6 100644
--- a/Master/texmf-dist/asymptote/three_surface.asy
+++ b/Master/texmf-dist/asymptote/three_surface.asy
@@ -321,9 +321,12 @@ patch operator * (transform3 t, patch s)
Si[j]=t*si[j];
}
- transform3 t0=shiftless(t);
- for(int i=0; i < s.normals.length; ++i)
- S.normals[i]=t0*s.normals[i];
+ if(s.normals.length > 0) {
+ transform3 t0=shiftless(t);
+ t0=determinant(t0) == 0 ? identity4 : transpose(inverse(t0));
+ for(int i=0; i < s.normals.length; ++i)
+ S.normals[i]=t0*s.normals[i];
+ }
S.colors=copy(s.colors);
S.planar=s.planar;
diff --git a/Master/texmf-dist/asymptote/version.asy b/Master/texmf-dist/asymptote/version.asy
index 74236e525b9..8cba4c8e34e 100644
--- a/Master/texmf-dist/asymptote/version.asy
+++ b/Master/texmf-dist/asymptote/version.asy
@@ -1 +1 @@
-string VERSION="2.21";
+string VERSION="2.22";
diff --git a/Master/texmf-dist/doc/asymptote/CAD.pdf b/Master/texmf-dist/doc/asymptote/CAD.pdf
index c5c3fef48b6..63384ce0276 100644
--- a/Master/texmf-dist/doc/asymptote/CAD.pdf
+++ b/Master/texmf-dist/doc/asymptote/CAD.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf b/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf
index 83e2f90ea74..0a0d2b16423 100644
--- a/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf
+++ b/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/asymptote/asy-latex.pdf b/Master/texmf-dist/doc/asymptote/asy-latex.pdf
index 49a797348ee..ec56b3bc517 100644
--- a/Master/texmf-dist/doc/asymptote/asy-latex.pdf
+++ b/Master/texmf-dist/doc/asymptote/asy-latex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/asymptote/asyRefCard.pdf b/Master/texmf-dist/doc/asymptote/asyRefCard.pdf
index fa105896284..cc95d25d1df 100644
--- a/Master/texmf-dist/doc/asymptote/asyRefCard.pdf
+++ b/Master/texmf-dist/doc/asymptote/asyRefCard.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/asymptote/asymptote.pdf b/Master/texmf-dist/doc/asymptote/asymptote.pdf
index d6463b5390c..69c5e84ff67 100644
--- a/Master/texmf-dist/doc/asymptote/asymptote.pdf
+++ b/Master/texmf-dist/doc/asymptote/asymptote.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/asymptote/examples/shade.asy b/Master/texmf-dist/doc/asymptote/examples/shade.asy
index 66b8880fd4b..889834585cb 100644
--- a/Master/texmf-dist/doc/asymptote/examples/shade.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/shade.asy
@@ -1,4 +1,3 @@
-
size(100,0);
radialshade(unitsquare,yellow,(0,0),0,red,(0,0),1);
diff --git a/Master/texmf-dist/doc/asymptote/examples/tvgen.asy b/Master/texmf-dist/doc/asymptote/examples/tvgen.asy
index 1a9f151df26..c7898fe7129 100644
--- a/Master/texmf-dist/doc/asymptote/examples/tvgen.asy
+++ b/Master/texmf-dist/doc/asymptote/examples/tvgen.asy
@@ -1,5 +1,5 @@
/* tvgen - draw pm5544-like television test cards.
- * Copyright (C) 2007, 2009, Servaas Vandenberghe.
+ * Copyright (C) 2007, 2009, 2012, Servaas Vandenberghe.
*
* The tvgen code below is free software: you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License as
@@ -16,13 +16,14 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*
- * tvgen-1.1/tvgen.asy
+ * tvgen-1.2/tvgen.asy http://picaros.org/ftp/soft/tvgen-1.2.tgz
* This asy script generates pm5544-like television test cards. The image
* parameters were derived from a 1990 recording. The basic parameters
* conform to itu-r bt.470, bt.601, and bt.709. There is no unique image
* since local variants exist and parameters have varied over time.
*/
//papertype="a4";
+import plain;
int verbose=settings.verbose/*+2*/; /* uncomment for debug info */
/* tv dot coordinates --> PS points */
@@ -46,25 +47,144 @@ path tvrect(int lc, int tr, int rc, int br, real xd, real yd, int Nv) {
return z[0]--z[1]--z[2]--z[3]--cycle;
}
+/********************* horizontal castellations ********************/
+/* Draw a horizontal red line in the top left and the bottom right
+ * castellation. These testlines disappear if the monitor is not set
+ * in a dot-exact mode. An example is image crop due to overscan.
+ *
+ * For 625 line systems any analog-compatible processing removes
+ * these red testlines since the first halfline of the odd field and
+ * the last halfline of the even field are ignored. A full 576
+ * visible line frame often results via a final copy paste operation.
+ */
+void castelhor(int colortv, int[] rccoll, int[] rccolr, int cmaxi, int Nh,
+ int topdist, int botdist,
+ pen pdef, real xd, real yd, int Nv) {
+ pen pblack, pwhite, pred;
+ int i;
+
+ pblack = pdef+gray(0.0);
+ pwhite = pdef+gray(1.0);
+ pred = pdef+rgb(0.75, 0, 0);
+
+ /** top and bottom: white corners. **/
+ for (i=-1; i<=cmaxi; ++i) {
+ pen pcast;
+ int inext, lc, rc, tr, br;
+ path zzc;
+
+ inext = i+1;
+ if (inext%2 == 0) {
+ pcast = pwhite;
+ } else {
+ pcast = pblack;
+ }
+
+ if (i >= 0) {
+ lc = rccolr[i];
+ } else {
+ lc = 0;
+ }
+ if (inext <= cmaxi) {
+ rc = rccoll[inext];
+ } else {
+ rc = Nh;
+ }
+
+ if (i == 0 && colortv > 0 && topdist > 1) {
+ path zzr;
+ zzr = tvrect(lc,0, rc,1, xd,yd,Nv);
+ fill(zzr, p=pred);
+ tr = 1;
+ } else {
+ tr = 0;
+ }
+ zzc = tvrect(lc,tr, rc,topdist, xd,yd,Nv);
+ fill(zzc, p=pcast);
+
+ if (inext == cmaxi && colortv > 0 && botdist+1 < Nv) {
+ path zzr;
+ zzr = tvrect(lc,Nv-1, rc,Nv, xd,yd,Nv);
+ fill(zzr, p=pred);
+ br = Nv-1;
+ } else {
+ br = Nv;
+ }
+ zzc = tvrect(lc,botdist, rc,br, xd,yd,Nv);
+ fill(zzc, p=pcast);
+ }
+
+ return;
+}
+
+/********************* vertical castellations ********************/
+/* The bottom right red rectangle tests for a non causal color FIR
+ * filter in the receiver. The last 2..4 dots then typically appear
+ * colorless, green, or cyan.
+ *
+ * This stems from the fact that the chroma subcarrier is of lower
+ * bandwidth than luma and thus continues after the last active sample.
+ * These trailing (y,u,v) samples result from an abrupt signal to zero
+ * transition and depend on the transmit and receive filters. Samples
+ * from VHS, system B/G/D/K, system I, or a DVD player output are
+ * different. Nevertheless, a sharpening filter uses this data and so
+ * adds false color to the last dots.
+ */
+void castelver(int colortv, int leftdist, int rightdist, int Nh,
+ int[] rcrowb, int[] rcrowt, int rmaxi,
+ pen pdef, real xd, real yd, int Nv) {
+ pen pblack, pwhite;
+ int i;
+
+ pblack = pdef+gray(0.0);
+ pwhite = pdef+gray(1.0);
+
+ for (i=0; i<rmaxi; ++i) {
+ int inext = i+1;
+ pen pcastl, pcastr;
+ int tr, br;
+ path zzc;
+
+ if (inext%2 == 0) {
+ pcastl = pwhite;
+ } else {
+ pcastl = pblack;
+ }
+ if (inext == rmaxi && colortv>0) {
+ pcastr = pdef+rgb(0.75,0.0,0);
+ } else {
+ pcastr = pcastl;
+ }
+
+ tr=rcrowb[i];
+ br=rcrowt[i+1];
+ zzc=tvrect( 0,tr, leftdist,br, xd,yd,Nv);
+ fill(zzc, p=pcastl);
+ zzc=tvrect(rightdist,tr, Nh,br, xd,yd,Nv);
+ fill(zzc, p=pcastr);
+ }
+ return;
+}
/********************* image aspect ratio markers ********************/
-void rimarkers(real rimage, int Nh, int Nhc, int os, int Nvc, int Nsy, pen pdef, real xd, real yd, int Nv) {
+void rimarkers(real rimage, int Nh, int Nhc, int os, int Nvc, int Nsy,
+ pen pdef, real xd, real yd, int Nv) {
int[] ridefN={ 4, 16 };
int[] ridefD={ 3, 9 };
int i;
- for(i=0; i<2; ++i) {
+ for (i=0; i<2; ++i) {
real rid=ridefN[i]/ridefD[i];
- if(rimage>rid) {
+ if (rimage>rid) {
int off, offa, offb;
- /* Nhdef=Nh/rimage*rid */
- off=round(Nh/rimage*rid/2);
+ /* Nhdef=Nh*rid/rimage */
+ off=round(Nh*rid/rimage/2);
offa=off+os;
offb=off-os;
// write(offa,offb);
- if(2*offa<Nh) {
+ if (2*offa<Nh) {
int hy, tr, br;
path zz;
@@ -83,50 +203,113 @@ void rimarkers(real rimage, int Nh, int Nhc, int os, int Nvc, int Nsy, pen pdef,
return;
}
-/************* cross hatch: line pairing, center interlace test *************/
-void centerline(int[] coff, int[] coffa, int[] coffb, int Nhc, int divsx,
- int os, int[] rcrowc, int Nvc, int divsy,
+/************* crosshatch: line pairing, center interlace test *************/
+/* There are 2 coordinate systems in use:
+ * 1. integer number based for the gridlines
+ *
+ * coff, Nhc, rccoll[], rccolc[], rccolr[] : vertical gridlines,
+ * rcrowc, Nvc : horizontal gridlines,
+ *
+ * 2. real number based for the center circle
+ *
+ * ccenter={ cx=Nh/2, cy=Nv/2} : the true image center,
+ * rcoff rcright rcleft : offset to ccenter and points on the circle.
+ *
+ * Both centers coincide if Nh and Nv are even.
+ */
+void centerline(int colortv,
+ int[] rccoll, int[] rccolc, int[] rccolr, int divsx,
+ int Nhc, int os,
+ int[] rcrowt, int[] rcrowc, int[] rcrowb, int divsy,
+ int Nvc,
pair ccenter, real[] rcoff, pair[] rcright, pair[] rcleft,
pen pdef, real xd, real yd, int Nv) {
- pair[] z;
- int col;
- pen pblack=pdef+gray(0.0), pwhite=pdef+gray(1.0);
-
- z[0]=rcright[divsy];
-
- col=Nhc+coff[0];
- z[1]=tvps(col,rcrowc[divsy], xd,yd,Nv);
- z[2]=tvps(col,rcrowc[divsy-1], xd,yd,Nv);
- col=Nhc-coff[0];
- z[3]=tvps(col,rcrowc[divsy-1], xd,yd,Nv);
- z[4]=tvps(col,rcrowc[divsy], xd,yd,Nv);
-
- z[5]=rcleft[divsy];
- z[6]=rcleft[divsy+1];
-
- z[7]=tvps(col,rcrowc[divsy+1], xd,yd,Nv);
- z[8]=tvps(col,rcrowc[divsy+2], xd,yd,Nv);
- col=Nhc+coff[0];
- z[9]=tvps(col,rcrowc[divsy+2], xd,yd,Nv);
- z[10]=tvps(col,rcrowc[divsy+1], xd,yd,Nv);
-
- z[11]=rcright[divsy+1];
- fill(z[1]--z[2]--z[3]--z[4] //--z[5]--z[6]
- --arc(ccenter, z[5], z[6])
- --z[7]--z[8]--z[9]--z[10] //--z[11]--z[0]
- --arc(ccenter,z[11], z[0])
- --cycle, p=pblack);
-
- int i, maxoff, rows, tr, br;
+ pen pblack, pwhite;
+ int cmaxi, maxoff, mincol, maxcol;
+ int rows, tr, br;
path zz;
- maxoff=floor(rcoff[divsy]);
+ cmaxi=2*divsx+1;
+
+ pblack=pdef+gray(0.0);
+ pwhite=pdef+gray(1.0);
+
+ /* black background for center cross */
+ if (colortv > 0) {
+ /* black, vertical gridlines redrawn below */
+ pair[] z;
+ int col;
+
+ z[0]=rcright[divsy];
+
+ col = rccolc[divsx+1];
+ z[1]=tvps(col,rcrowc[divsy], xd,yd,Nv);
+ z[2]=tvps(col,rcrowc[divsy-1], xd,yd,Nv);
+ col = rccolc[divsx];
+ z[3]=tvps(col,rcrowc[divsy-1], xd,yd,Nv);
+ z[4]=tvps(col,rcrowc[divsy], xd,yd,Nv);
+ z[5]=rcleft[divsy];
+ z[6]=rcleft[divsy+1];
+
+ z[7]=tvps(col,rcrowc[divsy+1], xd,yd,Nv);
+ z[8]=tvps(col,rcrowc[divsy+2], xd,yd,Nv);
+ col = rccolc[divsx+1];
+ z[9]=tvps(col,rcrowc[divsy+2], xd,yd,Nv);
+ z[10]=tvps(col,rcrowc[divsy+1], xd,yd,Nv);
+
+ z[11]=rcright[divsy+1];
+ fill(z[1]--z[2]--z[3]--z[4] //--z[5]--z[6]
+ --arc(ccenter, z[5], z[6])
+ --z[7]--z[8]--z[9]--z[10] //--z[11]--z[0]
+ --arc(ccenter,z[11], z[0])
+ --cycle, p=pblack);
+ } else {
+ /* 3 rows of black squares inside the gratings */
+ int i, imax = divsy+1;
+
+ for (i=divsy-1; i<=imax; ++i) { /* all 3 rows */
+ int lmaxoff, lmincol, lmaxcol;
+ int inext = i+1;
+ int tr, br, j;
+
+ /* XXX rcoff is relative to ccenter */
+ lmaxoff = min(floor(rcoff[i]), floor(rcoff[inext]));
+ lmincol = Nhc-lmaxoff;
+ lmaxcol = Nhc+lmaxoff;
+
+ /* square top and bottom */
+ tr = rcrowb[i];
+ br = rcrowt[inext];
+
+ for (j=0; j<cmaxi; ++j) { /* column j */
+ int jnext = j+1;
+
+ if (lmincol<=rccolc[j] && rccolc[jnext]<=lmaxcol) {
+ /* square is inside circle */
+ int lc, rc;
+ path zzsq;
+
+ lc = rccolr[j];
+ rc = rccoll[jnext];
+ zzsq = tvrect(lc, tr, rc, br, xd,yd,Nv);
+ fill(zzsq, p=pblack); /* draw black squares */
+ }
+ } /* for col j */
+ } /* for row i */
+ }
+
/* center cross: vertical and horizontal centerline */
+ maxoff = floor(rcoff[divsy]); /* XXX rcoff is relative to ccenter */
+ mincol = Nhc-maxoff;
+ maxcol = Nhc+maxoff;
+
rows=min(Nvc-rcrowc[divsy-1], rcrowc[divsy+2]-Nvc);
tr=Nvc-rows;
br=Nvc+rows;
- //write("centerline long: rows tr br ", rows, tr, br);
+ if (verbose > 1) {
+ write("centerline long : rows tr br ", rows, tr, br);
+ }
zz=tvrect(Nhc-os, tr, Nhc+os, br, xd,yd,Nv);
fill(zz, p=pwhite);
zz=tvrect(Nhc-maxoff,Nvc-1, Nhc+maxoff,Nvc+1, xd,yd,Nv);
@@ -136,27 +319,28 @@ void centerline(int[] coff, int[] coffa, int[] coffb, int Nhc, int divsx,
rows=min(Nvc-rcrowc[divsy], rcrowc[divsy+1]-Nvc);
tr=Nvc-rows;
br=Nvc+rows;
- if(verbose>1)
- write("centerline: rows tr br ", rows, tr, br);
- for(i=0; i<=divsx; ++i) {
- int off;
+ if (verbose > 1) {
+ write("centerline short: rows tr br ", rows, tr, br);
+ }
+
+ if (colortv > 0) {
+ int i;
+ for (i=0; i<=cmaxi; ++i) {
+ int coll, colr;
- off=coff[i];
- if(off<maxoff) {
- int offa, offb;
- path zzv;
- offa=coffa[i];
- offb=coffb[i];
-
- zzv=tvrect(Nhc+offb, tr, Nhc+offa, br, xd,yd,Nv);
- fill(zzv, p=pwhite);
- zzv=tvrect(Nhc-offa, tr, Nhc-offb, br, xd,yd,Nv);
- fill(zzv, p=pwhite);
+ coll=rccoll[i];
+ colr=rccolr[i];
+
+ if (mincol<=coll && colr<=maxcol) {
+ path zzv;
+ zzv=tvrect(coll, tr, colr, br, xd,yd,Nv);
+ fill(zzv, p=pwhite);
+ }
}
}
return;
}
-
+
/************************ topbw **************************************/
void topbw(int[] coff, int Nhc, int os, int urow, int trow, int brow,
pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb,
@@ -206,29 +390,29 @@ void topbw(int[] coff, int Nhc, int os, int urow, int trow, int brow,
* crad circle radius in y units, true size=crad*yd
*/
real testcircx(real x, real crad, real xd, real yd) {
- real relx, phi, y;
+ real relx, ph, y;
relx=x*xd/yd/crad;
- if(relx>1) {
- phi=0;
+ if (relx>1) {
+ ph=0;
} else {
- phi=acos(relx);
+ ph=acos(relx);
}
- y=crad*sin(phi); // or (x*xd)^2+(y*yd)^2=(crad*yd)^2
+ y=crad*sin(ph); // or (x*xd)^2+(y*yd)^2=(crad*yd)^2
return y;
}
/* y on circle -> return x>=0 */
real testcircy(real y, real crad, real xd, real yd) {
- real rely, phi, x;
+ real rely, ph, x;
rely=y/crad;
- if(rely>1) {
- phi=pi/2;
+ if (rely>1) {
+ ph=pi/2;
} else {
- phi=asin(rely);
+ ph=asin(rely);
}
- x=crad*cos(phi)*yd/xd; // or (x*xd)^2+(y*yd)^2=(crad*yd)^2
+ x=crad*cos(ph)*yd/xd; // or (x*xd)^2+(y*yd)^2=(crad*yd)^2
return x;
}
@@ -251,14 +435,14 @@ void testtone(real Tt, int trow, int brow,
blocks=floor(2*xb/Tt);
- for(i=-blocks-1; i<=blocks; ++i) {
+ for (i=-blocks-1; i<=blocks; ++i) {
real tl, tr;
path zz;
tl=max(-xb,min(i*Ttt,xb)); /* limit [-xb..xb] */
tr=max(-xb,min((i+1)*Ttt,xb));
- if(tl<-xt && tr<=-xt || tr>xt && tl>=xt) { /* top full circle */
+ if (tl<-xt && tr<=-xt || tr>xt && tl>=xt) { /* top full circle */
pair[] z;
real yl, yr;
@@ -306,8 +490,8 @@ void testtone(real Tt, int trow, int brow,
zz=z[0]--z[1]--z[2]--z[3]--cycle;
}
- if(tl<tr) {
- if(i%2 == 0) {
+ if (tl<tr) {
+ if (i%2 == 0) {
fill(zz, p=pdef+gray(0.0));
} else {
fill(zz, p=pdef+gray(0.75));
@@ -329,13 +513,13 @@ void colorbars(int[] coff, int Nhc, int trow, int crow, int brow,
rows=brow-trow;
poff=0;
- for(i=0; i<=cmax; ++i) {
+ for (i=0; i<=cmax; ++i) {
int off;
int ii=2*i, il=cmax-i, ir=i+cmax+1;
path zzl, zzr;
off=ceil((coff[1+ii]+coff[2+ii])/2);
- if(i!=0 && i<cmax) {
+ if (i!=0 && i<cmax) {
zzr=tvrect(Nhc+poff,trow, Nhc+off,brow, xd,yd,Nv);
zzl=tvrect(Nhc-off,trow, Nhc-poff,brow, xd,yd,Nv);
} else {
@@ -403,7 +587,7 @@ real addphase(real theta, real freq, real step) {
cycles=freq*step;
coverflow=floor(abs(cycles));
- if(coverflow>1) {
+ if (coverflow>1) {
thetaret=0;
} else {
real dpi=2*pi;
@@ -411,9 +595,9 @@ real addphase(real theta, real freq, real step) {
cycles-=coverflow*sgn(cycles);
thetaret=theta+cycles*dpi; /* cycles=(-1 .. 1) */
- if(thetaret>pi) {
+ if (thetaret>pi) {
thetaret-=dpi;
- } else if(thetaret<-pi) {
+ } else if (thetaret<-pi) {
thetaret-=dpi;
}
}
@@ -431,11 +615,11 @@ void testfreqs(real[] ftones, int[] coff, int Nhc, int trow,int crow,int brow,
real fl, fr, thr, thl;
/* Segment info for PAL continental test card
- * segment i extends from [divc[i] .. divc[i+1]) with frequency divf[i]
+ * segment i extends from (divc[i] .. divc[i+1]) with frequency divf[i]
*/
- divs=2; // the number of segments on the right, total=2*divs+1
+ divs=2; // the number of segments to the right, total=2*divs+1
divc[0]=0;
- for(i=0; i<=divs; ++i) {
+ for (i=0; i<=divs; ++i) {
int ii=i*2, il=divs-i, ir=divs+i;
divc[i+1]=ceil((coff[ii]+coff[ii+1])/2); /* xdot distance to center */
@@ -453,19 +637,19 @@ void testfreqs(real[] ftones, int[] coff, int Nhc, int trow,int crow,int brow,
divnext=0;
fl=0;
fr=0;
- thl=0;
- thr=0;
- // draw a vertical line at off..off+1
- for(off=0; off<coffmax; ++off) {
+ thl=0; /* ={ 0, -pi/2 } : initial angle at center vertical line Nhc */
+ thr=thl;
+ /* draw a vertical line at off..off+1, use theta for off+1/2 */
+ for (off=0; off<coffmax; ++off) {
real ampl, ampr;
int col;
path zz;
- if(off==trowlim) {
+ if (off==trowlim) {
tr=trow;
}
- if(off == divc[divnext]) {
+ if (off == divc[divnext]) {
/* switch frequency: cycles=0.5*fcur+0.5*fnext */
thl=addphase(thl, fl, -0.5);
thr=addphase(thr, fr, 0.5);
@@ -509,18 +693,17 @@ void testfreqs(real[] ftones, int[] coff, int Nhc, int trow,int crow,int brow,
void graybars(int[] coff, int Nhc, int trow, int brow,
pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb,
pen pdef, real xd, real yd, int Nv) {
- int[] gs={0, 51, 102, 153, 204, 255};
- int cmax=2, poff, rows, i;
+ int[] gs={0, 20, 40, 60, 80, 100};
+ int cmax=2, poff, i;
- rows=brow-trow;
poff=0;
- for(i=0; i<=cmax; ++i) {
+ for (i=0; i<=cmax; ++i) {
int off;
int ii=2*i, il=cmax-i, ir=i+cmax+1;
path zzl, zzr;
off=ceil((coff[1+ii]+coff[2+ii])/2);
- if(i<cmax) {
+ if (i<cmax) {
zzl=tvrect(Nhc-off,trow, Nhc-poff,brow, xd,yd,Nv);
zzr=tvrect(Nhc+poff,trow, Nhc+off,brow, xd,yd,Nv);
} else {
@@ -537,8 +720,8 @@ void graybars(int[] coff, int Nhc, int trow, int brow,
zrt=tvps(pcol,trow, xd,yd,Nv);
zzr=zrb--arc(ccenter,rcrb,rcrt)--zrt--cycle;
}
- fill(zzl, p=pdef+gray(gs[il]/255));
- fill(zzr, p=pdef+gray(gs[ir]/255));
+ fill(zzl, p=pdef+gray(gs[il]/100));
+ fill(zzr, p=pdef+gray(gs[ir]/100));
poff=off;
}
@@ -608,15 +791,16 @@ void bottomcirc(int off, int Nhc, int trow, real cx, real cy, real crad,
return;
}
-/****************************** PAL ears ***********************************
+/****************************** PAL ears ***********************************/
+/* values pro mille
* left y R G B
- * 0.55 98 162 140
- * 0.5 103 128 191
- * 0.5 152 128 64
- * 0.45 157 93 115
+ * 550 306 674 550
+ * 500 363 500 859
+ * 500 637 500 141
+ * 450 694 326 450
* right
- * 0.6 153 168 76
- * 0.4 102 87 179
+ * 600 600 684 166
+ * 400 400 316 834
*
* in: dright= -1 left ear, +1 right ear
*/
@@ -633,9 +817,10 @@ void palears(int[] coff, int[] coffa, int[] coffb, int Nhc,
*/
real cI=0.214;
- /* (u,v) for zero G-y, phase of -34.5 degrees */
+ /* itu-r */
real wr=0.299, wb=0.114, wg=1-wr-wb; /* wg=0.587, y=wr*R+wg*G+wb*B */
real wu=0.493, wv=0.877; /* u=wu*(B-y) v=wv*(R-y) */
+ /* (u,v) for zero G-y, phase of -34.5 degrees */
real colu=wu*wg/wb, colv=-wv*wg/wr; /* for w=(G-y)/0.696 == 0 */
/* ears: U==0 W==0 W==0 U==0 */
@@ -653,9 +838,13 @@ void palears(int[] coff, int[] coffa, int[] coffb, int Nhc,
path[] zz;
int lcol, ccol, cicol, rcol, i;
- if(dright>0) {
+ if (dright>0) {
+ if (verbose > 1)
+ write("right ears");
cy=cyr; cu=cur; cv=cvr;
} else {
+ if (verbose > 1)
+ write("left ears");
cy=cyl; cu=cul; cv=cvl;
}
@@ -690,7 +879,7 @@ void palears(int[] coff, int[] coffa, int[] coffb, int Nhc,
z[5]=tvps(rcol,arow, xd,yd,Nv);
zz[3]=z[0]--z[1]--z[2]--z[3]--z[4]--z[5]--cycle;
- for(i=0; i<4; ++i) {
+ for (i=0; i<4; ++i) {
real y, u, v, A, ph, By, Ry, Gy, R, G, B;
y=cy[i];
@@ -699,12 +888,14 @@ void palears(int[] coff, int[] coffa, int[] coffb, int Nhc,
A=hypot(u,v);
ph= (u!=0 || v!=0) ? atan2(v,u) : 0.0;
- if(v>=0) {
- if(ph<0) ph=ph+pi;
+ if (v>=0) {
+ if (ph<0)
+ ph=ph+pi;
} else {
- if(ph>0) ph=ph-pi;
+ if (ph>0)
+ ph=ph-pi;
}
- if(A>0) {
+ if (A>0) {
u=u/A*cI;
v=v/A*cI;
}
@@ -717,22 +908,22 @@ void palears(int[] coff, int[] coffa, int[] coffb, int Nhc,
R=Ry+y;
G=Gy+y;
B=By+y;
- if(verbose > 1)
- write(y,round(R*255),round(G*255),round(B*255));
+ if (verbose > 1)
+ write(y*1000, round(R*1000), round(G*1000), round(B*1000));
fill(zz[i], p=pdef+rgb(R,G,B));
}
return;
}
-/****************************** NTSC bars ***********************************
- * amplitude equals color burst smpte (pm: -V +U)
+/****************************** NTSC bars ***********************************/
+/* amplitude equals color burst smpte (pm: -V +U)
* y campl sat R G B
* left 0.5 0.21 70% -I?
* right 0.5 0.17 60% +Q?
*/
-void ntscbars(int[] coff, int[] coffa, int[] coffb, int Nhc,
- int[] rcrowt, int[] rcrowb, int Nvc, int divsy, int dright,
+void ntscbars(int[] rccoll, int[] rccolr, int divsx,
+ int[] rcrowt, int[] rcrowb, int divsy, int dright,
pen pdef, real xd, real yd, int Nv) {
/* The amplitude of (i,q) as seen on a vectorscope,
* max 0.292 Vn for 100% saturation in I==0 ears.
@@ -747,35 +938,34 @@ void ntscbars(int[] coff, int[] coffa, int[] coffb, int Nhc,
/* iT : iq -> RyBy : rotation+scaling */
real iT11=0.95, iT12=0.62, iT21=-1.11, iT22=1.71;
- /* bars -2 -1 0 1 2 */
- real[] cyl={ 0.50, 0.50, 0, 0.50, 0.50 };
- real[] cil={ 0, 0, 0, -1, 1 };
- real[] cql={ -1, 1, 0, 0, 0 };
- int[] offil={ 6, 7, 5, 7, 6 };
-
+ /* bars -2 -1 0 1 2 */
+ real[] cyl={ 0.50, 0.50, 1, 0.50, 0.50 };
+ real[] cil={ 0, 0, 0, -1, 1 };
+ real[] cql={ -1, 1, 0, 0, 0 };
+ int[] indl={ -7, -8, 0, 8, 7 };
+
real cy, ci, cq;
- int dri, dris, offi, lcol, rcol, i;
+ int rmaxi, dri, ind, ibase, lcol, rcol, i;
- if(dright>=0) {
- dris=1;
- } else {
- dris=-1;
- }
- if(dright<-2 || dright>2) {
+ rmaxi=2*divsy+1;
+ if (dright<-2 || dright>2) {
dri=2;
} else {
dri=2+dright;
}
- cy=cyl[dri]; ci=cil[dri]; cq=cql[dri];
- offi=offil[dri];
- lcol=Nhc+dris*coffa[offi];
- rcol=Nhc+dris*coffb[offi+1];
+ cy=cyl[dri];
+ ci=cil[dri];
+ cq=cql[dri];
+ ind=indl[dri];
+ ibase=divsx+ind;
+ lcol=rccolr[ibase];
+ rcol=rccoll[ibase+1];
real A, By, Ry, Gy, R, G, B;
A=hypot(ci,cq);
- if(A>0) {
+ if (A>0) {
ci=ci/A*campl;
cq=cq/A*campl;
}
@@ -787,33 +977,33 @@ void ntscbars(int[] coff, int[] coffa, int[] coffb, int Nhc,
R=Ry+cy;
G=Gy+cy;
B=By+cy;
- if(verbose > 1)
- write(cy,ci,cq,round(R*255),round(G*255),round(B*255));
+ if (verbose > 1)
+ write(ind, cy*1000, round(ci*1000), round(cq*1000),
+ round(R*1000), round(G*1000), round(B*1000));
- for(i=-divsy; i<=divsy; ++i) {
+ for (i=0; i<rmaxi; ++i) {
path zz;
- int brow, trow;
+ int brow, trow, inext=i+1;
- if(i>-divsy) {
- trow=rcrowb[divsy+i];
+ if (i>0) {
+ trow=rcrowb[i];
} else {
- trow=floor((rcrowb[divsy+i]+rcrowt[divsy+i+1])/2);
+ trow=floor((rcrowb[i]+rcrowt[inext])/2);
}
- if(divsy>i) {
- brow=rcrowt[divsy+i+1];
+ if (inext<rmaxi) {
+ brow=rcrowt[inext];
} else {
- brow=floor((rcrowb[divsy+i]+rcrowt[divsy+i+1])/2);
+ brow=floor((rcrowb[i]+rcrowt[inext])/2);
}
- zz=tvrect(lcol,brow, rcol,trow, xd,yd,Nv);
+ zz=tvrect(lcol,trow, rcol,brow, xd,yd,Nv);
fill(zz, p=pdef+rgb(R,G,B));
}
return;
}
-
/****************************** main ***********************************/
/* Conversion to bitmap:
* EPSPNG='gs -dQUIET -dNOPAUSE -dBATCH -sDEVICE=png16m'
@@ -834,14 +1024,17 @@ int bsys=2, colortv=1, os=1;
* 5 4/3 768 bsys=1, square dot cable TV info channel
* 6 131/96 786 bsys=2, total square dot broadcast camera
* 7 16/9 720 new broadcast 16/9, SD from HD-1440 or itu-r bt.709
- * 8 4/3 704 525 analog broadcast itu-r bt.470 711*485
+ * 8 4/3 704 525 analog broadcast itu-r bt.470 711x485
* 9 4/3 720 525 new broadcast
* 10 15/11 720 525 total aperture analog broadcast
* 11 16/9 1920 1250, 1080 square dot at 12.5 frames/second
* 12 4/3 1600 1250, 1200 square dot at 12.5 frames/second
*
* colortv:
- * set 0 for monochrome crosshatch, 1 for pal ears, 2 for ntsc bars
+ * 0 monochrome crosshatch,
+ * 1 pal ears,
+ * 2 ntsc bars,
+ * 3 neither ears nor bars.
*
* os: horizontal oversampling, typical values for 13.5MHz:
* 2 4/3 704*576, 15/11 720*576
@@ -854,9 +1047,9 @@ int bsys=2, colortv=1, os=1;
access settings;
usersetting();
-if(bsys<0 || bsys>12 || colortv<0 || colortv>3 || os<=0 || os>16) {
- write('Error: bad user input: bsys, colortv, os=\t', bsys, colortv, os);
- abort('Bad option -u bsys=N ?');
+if (bsys<0 || bsys>12 || colortv<0 || colortv>3 || os<=0 || os>16) {
+ write("Error: bad user input: bsys, colortv, os=\t", bsys, colortv, os);
+ abort("Bad option -u bsys=N ?");
}
int[] bNdot=
@@ -905,13 +1098,14 @@ int[] bNsh=
*
* resolution DPI from image aspect ratio
* Rv=Nv/ly, ly=4in
- * ri=Ni/Di, Ni={4,15,16} Di={3,11,9}
+ * ri=Ni/Di, Ni={ 4, 15, 16} Di={ 3, 11, 9}
* lx=ri*ly
*
* Rh=Nh/lx=Di*(Nh/(Ni*ly))
- * ==> ri=4/Di => Nh=k*16
- * ri=15/Di => Nh=k*60
- * ri=16/Di => Nh=k*64
+ * integer Rh:
+ * Ni=4 ri=4/Di => Nh=k*16
+ * Ni=15 ri=15/Di => Nh=k*60
+ * Ni=16 ri=16/Di => Nh=k*64
*
* resolution DPI from dot aspect ratio, general algorithm,
*
@@ -947,18 +1141,19 @@ Nv=bNv[bsys];
Ly=4; // 4 inch vertical size
m=floor(0.5+Nv/(Ly*Nd));
-if(m<1) m=1;
+if (m < 1) m=1;
ly=Nv/(m*Nd);
lx=Nh/(m*Dd);
ysize=ly*1inch;
xsize=lx*1inch;
rimage=xsize/ysize;
-if(verbose > 1)
- write('#Nd Dd m ri:\t', Nd, Dd, m, rimage);
-//size(xsize,ysize,Aspect); // should not have any effect
+if (verbose > 1) {
+ write("#Nd Dd m ri:\t", Nd, Dd, m, rimage);
+}
+//size(xsize, ysize, Aspect); // should not have any effect
-Nsy=bNsy[bsys]; // grating size in lines 42,43, 34,35
+Nsy=bNsy[bsys]; // grating size in lines 42,43 or 34,35
Nshift=bNsh[bsys]; // shift image up: pre 1997 =3, 2007 =0
fs=1e6*bfs[bsys]*os;
Na=0; // add 1,0,-1 to height of hor center squares for even Na+Nsy
@@ -970,21 +1165,25 @@ xd=xsize/Nh;
yd=ysize/Nv;
pwidth=min(abs(xd),abs(yd));
-pen pdefault=squarecap+linewidth(pwidth);
-pen pblack=pdefault+gray(0.0);
-pen pwhite=pdefault+gray(1.0);
+pen pdefault = squarecap+linewidth(pwidth);
+pen pblack = pdefault+gray(0.0);
+pen pwhite = pdefault+gray(1.0);
/**** calculate grating repeats and size in tv dots ****/
-// horizontal lines
-int divsy, rdisty, Nvc, Nt, Nb;
+/* horizontal lines */
+int divsy, rdisty, Nvc, Nt, Nb, rmaxi;
Nvc=floor(Nv/2)-Nshift;
-divsy=floor(((Nv-Na-2)/Nsy-1)/2); // (Nv-Na-2)/2-Nsy/2 dots for Nsy lengths
+/* top half picture (Nv-2)/2-(Nsy+Na)/2 dots for divisions of Nsy dots */
+divsy=floor(((Nv-2-Na)/Nsy-1)/2);
rdisty=Na+Nsy*(1+2*divsy);
+/* first guess free lines top and bottom */
Nt=Nvc-ceil(rdisty/2);
Nb=Nv-Nt-rdisty;
-if(verbose > 1)
- write('#divsy t b: \t',divsy,Nt,Nb);
+if (verbose > 1) {
+ write('#divsy t b: \t', divsy, Nt, Nb);
+}
+rmaxi=2*divsy+1;
/* Nsyc: center square height
* line pairing test: verify distance of center to top and bot
@@ -1000,9 +1199,10 @@ if(verbose > 1)
* rcrowc true center for color info, distance to top of image.
* rcrowb bot dist of hor line
*
- * Nt=Nvc-(offu+divsy*Nsy);
- * Nb=Nv-( Nvc-(offd-divsy*Nsy) );
- * ==> Nt+Nb=Nv-Nsyc-2*divsy*Nsy
+ * offd = offu-Nsyc
+ * Nt = Nvc-(offu+divsy*Nsy);
+ * Nb = Nv-( Nvc-(offd-divsy*Nsy) );
+ * ==> Nt+Nb = Nv-Nsyc-2*divsy*Nsy
*/
int Nsyc, offu, offd, Nyst=0, i;
int[] rcrowt, rcrowc, rcrowb;
@@ -1010,12 +1210,12 @@ int[] rcrowt, rcrowc, rcrowb;
Nsyc=Nsy+Na;
offu=floor(Nsyc/2);
offd=offu-Nsyc;
-if(Nsyc%2 != 0) {
+if (Nsyc%2 != 0) {
Nyst=1;
-} else if(Nsyc%4 == 0) {
+} else if (Nsyc%4 == 0) {
Nyst=1; /* stagger */
}
-for(i=0; i<=divsy; ++i) {
+for (i=0; i<=divsy; ++i) {
int iu, id, ou, od, ru, rd;
iu=divsy-i;
@@ -1023,8 +1223,9 @@ for(i=0; i<=divsy; ++i) {
ou=offu+Nsy*i;
od=offd-Nsy*i;
- if(verbose > 1)
+ if (verbose > 1) {
write(ou,od);
+ }
rcrowc[iu]=Nvc-ou;
rcrowc[id]=Nvc-od;
@@ -1039,30 +1240,71 @@ for(i=0; i<=divsy; ++i) {
}
Nt=floor((rcrowt[0]+rcrowb[0])/2);
Nb=Nv-Nt-Nsyc-2*Nsy*divsy;
-if(verbose > 1)
- write('#st t b: \t',Nyst,Nt,Nb);
+if (verbose > 1) {
+ write('#st t b: \t', Nyst, Nt, Nb);
+}
/* vertical lines
* (Nh-2*os)/2-Nsx/2 dots available for divisions of Nsx dots.
* At least 5 dots margin left and right ==> use -10*os
*/
-real lsq, Nsx;
-int divsx, Nhc, Nl;
+real lsq, Nsx, rdistx;
+int divsx, Nhc, Nl, Nr, cmaxi;
lsq=Nsy*yd;
-Nsx=lsq/xd;
+Nsx=lsq/xd; /* floating point */
divsx=floor(((Nh-10*os)/Nsx-1)/2);
Nhc=round(Nh/2);
-Nl=Nhc-round((1+2*divsx)*Nsx/2);
-if(verbose > 1)
- write('#Nsx divsx Nl:\t',Nsx,divsx,Nl);
+rdistx=(1+2*divsx)*Nsx;
+Nl=Nhc-round(rdistx/2);
+if (verbose > 1) {
+ write('#divsx Nsx l:\t', divsx, Nsx, Nl);
+}
+cmaxi=2*divsx+1;
+
+int[] coff, coffl, coffr;
+int[] rccoll, rccolc, rccolr;
+for (i=0; i<=divsx; ++i) {
+ int off, offl, offr, il, ir;
+ real cdist;
+
+ cdist=Nsx*(1+2*i); /* horizontal distance 2 symmetrical vert lines */
+ off=round(cdist/2);
+ // write(cdist, off);
+ offl=off-os;
+ offr=off+os;
+
+ coff[i]=off;
+ coffl[i]=offl;
+ coffr[i]=offr;
+
+ if (verbose > 1) {
+ write(cdist, off);
+ }
+ il=divsx-i;
+ ir=divsx+i+1;
+
+ rccoll[il]=Nhc-offr;
+ rccolc[il]=Nhc-off;
+ rccolr[il]=Nhc-offl;
+
+ rccoll[ir]=Nhc+offl;
+ rccolc[ir]=Nhc+off;
+ rccolr[ir]=Nhc+offr;
+}
+Nl=rccolc[0];
+Nr=Nh-rccolc[cmaxi];
+if (verbose > 1) {
+ write('#divsx Nsx l r:\t', divsx, Nsx, Nl, Nr);
+}
/**** draw gray background ****/
{
path zz;
+
//zz=tvrect(0,0, Nh,Nv, xd,yd,Nv);
/* keep white canvas for castellations */
- zz=tvrect(Nl,Nt, Nh-Nl,Nv-Nb, xd,yd,Nv);
+ zz=tvrect(rccoll[0],rcrowt[0], rccolr[cmaxi],rcrowb[rmaxi], xd,yd,Nv);
fill(zz, p=pdefault+gray(0.5));
//dot(zz);
}
@@ -1073,36 +1315,35 @@ path ccirc;
cx=Nh/2;
cy=Nv/2-Nshift;
crad=6*Nsy;
-if(Nv%2 != 0) {
- crad+=0.5;
+if (Nv%2 != 0) {
+ crad+=0.5;
}
ccenter=tvps(cx,cy, xd,yd,Nv);
ccirc=circle(ccenter, crad*yd);
-if(colortv<=0) {
+if (colortv<=0) {
draw(ccirc, p=pwhite+linewidth(2*yd));
}
-/****** draw 2*divsy+2 horizontal lines **********************************/
+/**** draw 2*divsy+2 horizontal gridlines ****/
real[] rcang, rcoff;
pair[] rcright, rcleft;
-int i, iend=2*divsy+1;
-for(i=0; i<=iend; ++i) {
- real y, phi, x;
+int i;
+for (i=0; i<=rmaxi; ++i) {
+ real y, ph, x;
path zzh;
pair zd;
- zzh=tvrect(0,rcrowt[i], Nh,rcrowb[i], xd,yd,Nv);
- fill(zzh, p=pwhite);
+ zzh=tvrect(0,rcrowt[i], Nh,rcrowb[i], xd,yd,Nv);
+ fill(zzh, p=pwhite);
y=cy-rcrowc[i];
- //write(roff);
- if(abs(y)<crad) {
- phi=asin(y/crad);
+ if (abs(y)<crad) {
+ ph=asin(y/crad);
} else {
- phi=pi/2;
+ ph=pi/2;
}
- rcang[i]=phi;
- x=(crad*cos(phi))*yd/xd;
+ rcang[i]=ph;
+ x=(crad*cos(ph))*yd/xd;
rcoff[i]=x;
zd=tvps(cx+x,cy-y, xd,yd,Nv);
rcright[i]=zd;
@@ -1111,109 +1352,31 @@ for(i=0; i<=iend; ++i) {
rcleft[i]=zd;
}
-/****** draw 2*divsx+2 vertical lines ***************************/
-int[] coff, coffa, coffb;
-int poffa=0, ccenterwhite=divsx%2;
-for(i=0; i<=divsx; ++i) {
- real cdist=(1+2*i)*Nsx;
- int off, offa, offb;
+/**** draw 2*divsx+2 vertical gridlines ****/
+for (i=0; i<=cmaxi; ++i) {
path zzv;
-
- off=round(cdist/2);
- //write(cdist,off);
- offa=off+os;
- offb=off-os;
-
- coff[i]=off;
- coffa[i]=offa;
- coffb[i]=offb;
-
- //write(Nhc-offa);
- zzv=tvrect(Nhc+offb,0, Nhc+offa,Nv, xd,yd,Nv);
+ zzv=tvrect(rccoll[i],0, rccolr[i],Nv, xd,yd,Nv);
fill(zzv, p=pwhite);
- zzv=tvrect(Nhc-offa,0, Nhc-offb,Nv, xd,yd,Nv);
- fill(zzv, p=pwhite);
-
- /** top castellations, must end with black **/
- if(i%2 == ccenterwhite) {
- int j, jnum;
-
- if(poffa == 0) {
- poffa=-offb;
- jnum=1;
- } else {
- jnum=2;
- }
-
- for(j=0; j<jnum; ++j) {
- int lc, rc;
- path zzc;
-
- if(j==0) {
- lc=Nhc+poffa;
- rc=Nhc+offb;
- } else {
- lc=Nhc-offb;
- rc=Nhc-poffa;
- }
-
- zzc=tvrect(lc,0, rc,Nt-1, xd,yd,Nv);
- fill(zzc, p=pblack);
- zzc=tvrect(lc,Nv-Nb+1, rc,Nv, xd,yd,Nv);
- fill(zzc, p=pblack);
- }
- }
-
- poffa=offa;
}
-//write(coff);
-/** left and right castellations **/
-/* The bottom right red rectangle tests for a non causal color FIR
- * filter in the receiver. The last 2..4 dots then typically appear
- * colorless, green, or cyan.
- *
- * This comes from the fact that the chroma subcarrier is of lower
- * bandwidth than luma and thus continues after the last active sample.
- * These trailing (y,u,v) samples result from a signal to zero
- * transition and depend on the transmit and receive filters. Samples
- * from VHS, system B/G/D/K, system I, or a DVD player output are
- * different. Nevertheless, a sharpening filter uses this data and so
- * adds false color to the last dots.
- */
-int lc, rc;
-iend=2*divsy+1;
-lc=Nhc-coffa[divsx];
-rc=Nhc+coffa[divsx];
-for(i=1; i<=iend; ++i) {
- pen pcast;
- if(i == iend && colortv>0) {
- pcast=pdefault+rgb(0.75,0.0,0);
- } else {
- pcast=pblack;
- }
- if(i%2 == 1) {
- int tr, br;
- path zzc;
-
- tr=rcrowb[i-1];
- br=rcrowt[i];
- zzc=tvrect( 0,tr, lc,br, xd,yd,Nv);
- fill(zzc, p=pblack);
- zzc=tvrect(rc,tr, Nh,br, xd,yd,Nv);
- fill(zzc, p=pcast);
- }
-}
+/**** castellations ****/
+castelhor(colortv, rccoll, rccolr, cmaxi, Nh, rcrowt[0], rcrowb[rmaxi],
+ pdefault, xd, yd, Nv);
+
+castelver(colortv, rccoll[0], rccolr[cmaxi], Nh, rcrowb, rcrowt, rmaxi,
+ pdefault, xd, yd, Nv);
/****** markers for 4/3 aspect ratio ******/
-if(rimage>4/3)
+if (rimage>4/3) {
rimarkers(rimage, Nh, Nhc, os, Nvc, Nsy, pwhite, xd, yd, Nv);
+}
/****** line pairing center ******/
-centerline(coff, coffa, coffb, Nhc, divsx, os, rcrowc, Nvc, divsy,
+centerline(colortv, rccoll, rccolc, rccolr, divsx, Nhc, os,
+ rcrowt, rcrowc, rcrowb, divsy, Nvc,
ccenter, rcoff, rcright, rcleft, pdefault, xd, yd, Nv);
-if(colortv>0) {
+if (colortv>0) {
/* topbw structure */
topbw(coff, Nhc, os, rcrowc[divsy-5], rcrowc[divsy-4], rcrowc[divsy-3],
ccenter, rcleft[divsy-4], rcleft[divsy-3], rcright[divsy-4],
@@ -1239,19 +1402,19 @@ if(colortv>0) {
rcright[divsy+3], rcright[divsy+4], pdefault, xd,yd,Nv);
/* PAL ears */
- if(colortv==1) {
- palears(coff,coffa,coffb, Nhc, rcrowt, rcrowb, Nvc, divsy, -1,
+ if (colortv == 1) {
+ palears(coff,coffr,coffl, Nhc, rcrowt, rcrowb, Nvc, divsy, -1,
pdefault, xd, yd, Nv);
- palears(coff,coffa,coffb, Nhc, rcrowt, rcrowb, Nvc, divsy, 1,
+ palears(coff,coffr,coffl, Nhc, rcrowt, rcrowb, Nvc, divsy, 1,
pdefault, xd, yd, Nv);
- } else if(colortv==2) {
- ntscbars(coff,coffa,coffb, Nhc, rcrowt, rcrowb, Nvc, divsy, -1,
+ } else if (colortv == 2) {
+ ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, -1,
pdefault, xd, yd, Nv);
- ntscbars(coff,coffa,coffb, Nhc, rcrowt, rcrowb, Nvc, divsy, 1,
+ ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, 1,
pdefault, xd, yd, Nv);
- ntscbars(coff,coffa,coffb, Nhc, rcrowt, rcrowb, Nvc, divsy, -2,
+ ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, -2,
pdefault, xd, yd, Nv);
- ntscbars(coff,coffa,coffb, Nhc, rcrowt, rcrowb, Nvc, divsy, 2,
+ ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, 2,
pdefault, xd, yd, Nv);
}
@@ -1294,20 +1457,24 @@ if(colortv>0) {
itot=insert(ifm,0, itot);
/* size of square */
- int rowNsy=round((rcrowc[divsy+5]+rcrowc[divsy+6])/2);
- pair Npos=tvps(Nhc+round((coff[4]+coff[5])/2),rowNsy, xd,yd,Nv);
- string iNsy=format("%i",Nsy);
-
+ int rowNsy, colNsy;
+ pair Npos;
+ string iNsy;
pen pbw;
- if(colortv>0) {
- pbw=pdefault+gray(1.0);
+
+ rowNsy = round((rcrowc[divsy+5]+rcrowc[divsy+6])/2);
+ colNsy = round((rccolc[divsx+5]+rccolc[divsx+6])/2);
+ Npos = tvps(colNsy,rowNsy, xd,yd,Nv);
+ iNsy = format("%i", Nsy);
+
+ if (colortv>0) {
+ pbw=pdefault+gray(1.0);
} else {
- pbw=pdefault+gray(0.0);
+ pbw=pdefault+gray(0.0);
}
label(ires, rpos, p=pbw);
label(itot, tpos, p=pbw);
label(iNsy, Npos, p=pbw);
- if(verbose > 1)
+ if (verbose > 1)
write('#res:\t', ires, itot, iNsy);
}
-
diff --git a/Master/texmf-dist/doc/info/asy-faq.info b/Master/texmf-dist/doc/info/asy-faq.info
index fe63cc4aadf..9034e009096 100644
--- a/Master/texmf-dist/doc/info/asy-faq.info
+++ b/Master/texmf-dist/doc/info/asy-faq.info
@@ -10,7 +10,7 @@ END-INFO-DIR-ENTRY
File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir)
ASYMPTOTE FREQUENTLY ASKED QUESTIONS
- 10 Oct 2012
+ 15 May 2013
This is the list of Frequently Asked Questions about Asymptote (asy).
diff --git a/Master/texmf-dist/doc/info/asymptote.info b/Master/texmf-dist/doc/info/asymptote.info
index 5b88055da4c..c336f360af4 100644
--- a/Master/texmf-dist/doc/info/asymptote.info
+++ b/Master/texmf-dist/doc/info/asymptote.info
@@ -1,7 +1,7 @@
This is asymptote.info, produced by makeinfo version 4.13 from
../asymptote.texi.
-This file documents `Asymptote', version 2.21.
+This file documents `Asymptote', version 2.22.
`http://asymptote.sourceforge.net'
@@ -23,7 +23,7 @@ File: asymptote.info, Node: Top, Next: Description, Up: (dir)
Asymptote
*********
-This file documents `Asymptote', version 2.21.
+This file documents `Asymptote', version 2.22.
`http://asymptote.sourceforge.net'
@@ -351,7 +351,7 @@ file::).
`http://www.imagemagick.org/script/binary-releases.php'
is required to support output formats other than EPS, PDF, SVG, and PNG
-(*note convert::). The `Python' interpreter from
+(*note convert::). The `Python 2' interpreter from
`http://www.python.org' is only required if you wish to try out the
graphical user interface (*note GUI::).
@@ -502,16 +502,15 @@ used; if it is old we recommend first putting
`http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.2d.tar.gz'
in the `Asymptote' source directory.
-If your graphics card supports multisampling, we recommend using version
-`2.6.0' of `freeglut' to support antialiasing in `Asymptote''s adaptive
-`OpenGL' 3D renderer (`MacOS X' users can skip this step since
-`Asymptote' is configured to use the native glut library on that
-platform). Download
+ On `UNIX' platforms (other than `MacOS X'), we recommend using
+version `2.8.1' of the `freeglut' library. To compile `freeglut',
+download
- `http://prdownloads.sourceforge.net/freeglut/freeglut-2.6.0.tar.gz'
+ `http://prdownloads.sourceforge.net/freeglut/freeglut-2.8.1.tar.gz'
and type (as the root user):
-tar -zxf freeglut-2.6.0.tar.gz
-cd freeglut-2.6.0
+gunzip freeglut-2.8.1.tar.gz
+tar -xf freeglut-2.8.1.tar
+cd freeglut-2.8.1
./configure --prefix=/usr
make install
cd ..
@@ -1024,17 +1023,21 @@ promote pens to a higher color space, as illustrated in the example file
Axial gradient shading varying smoothly from `pena' to `penb' in the
direction of the line segment `a--b' can be achieved with
void axialshade(picture pic=currentpicture, path g, bool stroke=false,
- pen pena, pair a,
- pen penb, pair b);
+ pen pena, pair a, bool extenda=true,
+ pen penb, pair b, bool extendb=true);
+ The boolean parameters `extenda' and `extendb' indicate whether the
+shading should extend beyond the axis endpoints `a' and `b'.
Radial gradient shading varying smoothly from `pena' on the circle
with center `a' and radius `ra' to `penb' on the circle with center `b'
and radius `rb' is similar:
void radialshade(picture pic=currentpicture, path g, bool stroke=false,
- pen pena, pair a, real ra,
- pen penb, pair b, real rb);
- Illustrations of radial shading are provided in the example files
-`shade.asy', `ring.asy', and `shadestroke.asy'.
+ pen pena, pair a, real ra, bool extenda=true,
+ pen penb, pair b, real rb, bool extendb=true);
+ The boolean parameters `extenda' and `extendb' indicate whether the
+shading should extend beyond the radii `a' and `b'. Illustrations of
+radial shading are provided in the example files `shade.asy',
+`ring.asy', and `shadestroke.asy'.
Gouraud shading using fill rule `fillrule' and the vertex colors in
the pen array `p' on a triangular lattice defined by the vertices `z'
@@ -1303,8 +1306,11 @@ approximates a straight line. One can change the spline tension from
its default value of 1 to any real value greater than or equal to 0.75
(cf. John D. Hobby, Discrete and Computational Geometry 1, 1986):
draw((100,0)..tension 2 ..(100,100)..(0,100));
-draw((100,0)..tension 2 and 1 ..(100,100)..(0,100));
-draw((100,0)..tension atleast 1 ..(100,100)..(0,100));
+draw((100,0)..tension 3 and 2 ..(100,100)..(0,100));
+draw((100,0)..tension atleast 2 ..(100,100)..(0,100));
+
+ In these examples there is a space between `2' and `..'. This is
+needed as `2.' is interpreted as a numerical constant.
The curl parameter specifies the curvature at the endpoints of a path
(0 means straight; the default value of 1 means approximately circular):
@@ -5051,8 +5057,6 @@ File: asymptote.info, Node: trembling, Next: stats, Prev: geometry, Up: Base
This module, written by Philippe Ivaldi and illustrated in the example
`floatingdisk.asy', allows one to draw wavy lines, as if drawn by hand.
-Further examples are posted at
-`http://www.piprime.fr/files/asymptote/trembling/'

File: asymptote.info, Node: stats, Next: patterns, Prev: trembling, Up: Base modules
@@ -6766,12 +6770,11 @@ There are four choices for viewing 3D `Asymptote' output:
`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, we recommend installing the latest SVN (antialiased)
- version of the `freeglut' library (*note 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;
+ 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[] {"menu"};
rightbutton=new string[] {"zoom/menu","rotateX","rotateY","rotateZ"};
@@ -7709,8 +7712,7 @@ guide[][] contour(pair[][] z, real[][] f, real[] c,
To construct contours for an array of values `f' specified at
irregularly positioned points `z', use the routine
-guide[][] contour(pair[] z, real[] f, real[] c,
- interpolate join=operator --, int subsample=1);
+guide[][] contour(pair[] z, real[] f, real[] c, interpolate join=operator --);
The contours themselves can be drawn with one of the routines
void draw(picture pic=currentpicture, Label[] L=new Label[],
guide[][] g, pen p=currentpen);
@@ -8264,9 +8266,9 @@ packages.
Pictures are deconstructed into the PNG image format, which supports
full alpha channel transparency. Under `Microsoft Windows', this
-requires `Python 2.7.3' and the `Python Imaging Library':
+requires `Python 2.7.4' and the `Python Imaging Library':
- `http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi'
+ `http://www.python.org/ftp/python/2.7.4/python-2.7.4.msi'
`http://effbot.org/downloads/PIL-1.1.7.win32-py2.7.exe'.
On `UNIX' systems, place
@@ -8467,7 +8469,7 @@ Index
(line 6)
* & <1>: Arithmetic & logical.
(line 56)
-* &: Bezier curves. (line 83)
+* &: Bezier curves. (line 86)
* &&: Arithmetic & logical.
(line 53)
* * <1>: Arithmetic & logical.
@@ -8489,7 +8491,7 @@ Index
* -- <1>: Self & prefix operators.
(line 6)
* --: Tutorial. (line 127)
-* ---: Bezier curves. (line 83)
+* ---: Bezier curves. (line 86)
* -=: Self & prefix operators.
(line 6)
* -c: Options. (line 175)
@@ -8506,12 +8508,10 @@ Index
* 2D graphs: graph. (line 6)
* 3D graphs: graph3. (line 6)
* 3D grids: grid3. (line 6)
-* 3D PostScript: three. (line 594)
-* 3D rendering: Compiling from UNIX source.
- (line 16)
+* 3D PostScript: three. (line 593)
* :: Arithmetic & logical.
(line 73)
-* ::: Bezier curves. (line 67)
+* ::: Bezier curves. (line 70)
* <: Arithmetic & logical.
(line 41)
* <=: Arithmetic & logical.
@@ -8535,7 +8535,7 @@ Index
* abs <1>: Mathematical functions.
(line 35)
* abs: Data types. (line 62)
-* accel <1>: three. (line 520)
+* accel <1>: three. (line 519)
* accel: Paths and guides. (line 115)
* access: Import. (line 6)
* acknowledgments: Credits. (line 6)
@@ -8545,9 +8545,9 @@ Index
(line 6)
* acosh: Mathematical functions.
(line 6)
-* add <1>: three. (line 284)
+* add <1>: three. (line 283)
* add: Frames and pictures. (line 196)
-* addViews: three. (line 406)
+* addViews: three. (line 405)
* adjust: Pens. (line 115)
* Ai: Mathematical functions.
(line 48)
@@ -8571,22 +8571,20 @@ Index
* animation: animation. (line 6)
* annotate: annotate. (line 6)
* antialias <1>: Options. (line 144)
-* antialias: three. (line 223)
-* antialiasing: Compiling from UNIX source.
- (line 16)
+* antialias: three. (line 222)
* append <1>: Arrays. (line 39)
* append: Files. (line 36)
-* arc: three. (line 296)
+* arc: three. (line 295)
* Arc: Paths and guides. (line 32)
* arc: Paths and guides. (line 22)
* ArcArrow: draw. (line 26)
-* ArcArrow3: three. (line 561)
+* ArcArrow3: three. (line 560)
* ArcArrows: draw. (line 26)
-* ArcArrows3: three. (line 561)
-* arclength <1>: three. (line 520)
+* ArcArrows3: three. (line 560)
+* arclength <1>: three. (line 519)
* arclength: Paths and guides. (line 142)
* arcpoint: Paths and guides. (line 152)
-* arctime <1>: three. (line 520)
+* arctime <1>: three. (line 519)
* arctime: Paths and guides. (line 146)
* arguments: Default arguments. (line 6)
* arithmetic operators: Arithmetic & logical.
@@ -8598,10 +8596,10 @@ Index
* Arrow: draw. (line 26)
* arrow: Drawing commands. (line 31)
* arrow keys: Tutorial. (line 37)
-* Arrow3: three. (line 561)
+* Arrow3: three. (line 560)
* Arrows: draw. (line 26)
* arrows: draw. (line 26)
-* Arrows3: three. (line 561)
+* Arrows3: three. (line 560)
* as: Import. (line 68)
* ascii: Data types. (line 286)
* aSin: Mathematical functions.
@@ -8631,8 +8629,9 @@ Index
(line 6)
* atleast: Bezier curves. (line 56)
* attach <1>: graph. (line 416)
-* attach: LaTeX usage. (line 51)
-* autoadjust: three. (line 372)
+* attach <2>: LaTeX usage. (line 51)
+* attach: Frames and pictures. (line 252)
+* autoadjust: three. (line 371)
* autoimport: Options. (line 112)
* automatic scaling: graph. (line 682)
* axialshade: fill. (line 43)
@@ -8641,11 +8640,11 @@ Index
* azimuth: Data types. (line 126)
* babel: babel. (line 6)
* background color: Frames and pictures. (line 168)
-* BackView: three. (line 399)
+* BackView: three. (line 398)
* Bar: draw. (line 19)
-* Bar3: three. (line 561)
+* Bar3: three. (line 560)
* Bars: draw. (line 19)
-* Bars3: three. (line 561)
+* Bars3: three. (line 560)
* barsize: draw. (line 19)
* base modules: Base modules. (line 6)
* basealign: Pens. (line 168)
@@ -8653,18 +8652,18 @@ Index
* batch mode: Tutorial. (line 6)
* beep: Data types. (line 357)
* BeginArcArrow: draw. (line 26)
-* BeginArcArrow3: three. (line 561)
+* BeginArcArrow3: three. (line 560)
* BeginArrow: draw. (line 26)
-* BeginArrow3: three. (line 561)
+* BeginArrow3: three. (line 560)
* BeginBar: draw. (line 19)
-* BeginBar3: three. (line 561)
+* BeginBar3: three. (line 560)
* BeginDotMargin: draw. (line 42)
-* BeginDotMargin3: three. (line 577)
+* BeginDotMargin3: three. (line 576)
* BeginMargin: draw. (line 42)
-* BeginMargin3: three. (line 577)
+* BeginMargin3: three. (line 576)
* BeginPenMargin: draw. (line 42)
-* BeginPenMargin2: three. (line 577)
-* BeginPenMargin3: three. (line 577)
+* BeginPenMargin2: three. (line 576)
+* BeginPenMargin3: three. (line 576)
* BeginPoint: label. (line 56)
* Bessel: Mathematical functions.
(line 48)
@@ -8676,13 +8675,13 @@ Index
(line 48)
* Bi_deriv: Mathematical functions.
(line 48)
-* Billboard: three. (line 490)
+* Billboard: three. (line 489)
* binary: Files. (line 75)
* binary format: Files. (line 75)
* binary operators: Arithmetic & logical.
(line 6)
* binarytree: binarytree. (line 6)
-* black stripes: three. (line 223)
+* black stripes: three. (line 222)
* Blank: draw. (line 26)
* block.bottom: flowchart. (line 19)
* block.bottomleft: flowchart. (line 19)
@@ -8701,10 +8700,10 @@ Index
(line 6)
* Bottom: graph. (line 134)
* BottomTop: graph. (line 140)
-* BottomView: three. (line 399)
+* BottomView: three. (line 398)
* bounding box: Frames and pictures. (line 168)
* Bounds: graph3. (line 21)
-* box <1>: three. (line 318)
+* box <1>: three. (line 317)
* box: Frames and pictures. (line 22)
* bp: Tutorial. (line 26)
* break: Programming. (line 29)
@@ -8720,14 +8719,14 @@ Index
* C string: Data types. (line 191)
* CAD: CAD. (line 6)
* calculateTransform: Frames and pictures. (line 107)
-* camera: three. (line 367)
+* camera: three. (line 366)
* casts: Casts. (line 6)
* cbrt: Mathematical functions.
(line 6)
* cd: Files. (line 25)
* ceil: Mathematical functions.
(line 26)
-* center: three. (line 351)
+* center: three. (line 350)
* Center: label. (line 61)
* checker: Pens. (line 251)
* Chinese: unicode. (line 12)
@@ -8736,7 +8735,7 @@ Index
* Ci: Mathematical functions.
(line 48)
* circle <1>: flowchart. (line 64)
-* circle: three. (line 292)
+* circle: three. (line 291)
* Circle: Paths and guides. (line 17)
* circle: Paths and guides. (line 10)
* circlebarframe: markers. (line 18)
@@ -8744,7 +8743,7 @@ Index
* clamped: graph. (line 37)
* clear <1>: Debugger. (line 23)
* clear: Files. (line 92)
-* clip: fill. (line 111)
+* clip: fill. (line 115)
* CLZ: Arithmetic & logical.
(line 80)
* cm: Tutorial. (line 63)
@@ -8789,7 +8788,7 @@ Index
* convert <3>: Files. (line 154)
* convert: Configuring. (line 67)
* convertOptions: Options. (line 131)
-* Coons shading: fill. (line 74)
+* Coons shading: fill. (line 78)
* copy: Arrays. (line 174)
* Cos: Mathematical functions.
(line 20)
@@ -8809,10 +8808,10 @@ Index
(line 80)
* cubicroots: Arrays. (line 318)
* curl <1>: three. (line 6)
-* curl: Bezier curves. (line 63)
+* curl: Bezier curves. (line 66)
* curlSpecifier: Paths and guides. (line 394)
* currentpen: Pens. (line 6)
-* currentprojection: three. (line 396)
+* currentprojection: three. (line 395)
* curve: slopefield. (line 20)
* custom axis types: graph. (line 144)
* custom mark routine: graph. (line 577)
@@ -8820,7 +8819,7 @@ Index
* cut: Paths and guides. (line 240)
* cycle <1>: three. (line 6)
* cycle: Tutorial. (line 75)
-* cyclic <1>: three. (line 520)
+* cyclic <1>: three. (line 519)
* cyclic <2>: Arrays. (line 39)
* cyclic: Paths and guides. (line 74)
* Cyrillic: unicode. (line 7)
@@ -8836,7 +8835,7 @@ Index
* default arguments: Default arguments. (line 6)
* defaultformat: graph. (line 175)
* DefaultHead: draw. (line 26)
-* DefaultHead3: three. (line 561)
+* DefaultHead3: three. (line 560)
* defaultpen: Pens. (line 46)
* defaultrender: three. (line 47)
* deferred drawing: simplex. (line 6)
@@ -8851,7 +8850,7 @@ Index
* diagonal: Arrays. (line 303)
* diamond: flowchart. (line 57)
* dimension: Arrays. (line 367)
-* dir <1>: three. (line 520)
+* dir <1>: three. (line 519)
* dir <2>: Paths and guides. (line 98)
* dir <3>: Data types. (line 87)
* dir: Search paths. (line 10)
@@ -8867,11 +8866,11 @@ Index
* dot <2>: Data types. (line 100)
* dot: draw. (line 83)
* DotMargin: draw. (line 42)
-* DotMargin3: three. (line 577)
+* DotMargin3: three. (line 576)
* DotMargins: draw. (line 42)
-* DotMargins3: three. (line 577)
+* DotMargins3: three. (line 576)
* dotted: Pens. (line 95)
-* double deferred drawing: three. (line 269)
+* double deferred drawing: three. (line 268)
* double precision: Files. (line 75)
* draw: three. (line 112)
* Draw: Frames and pictures. (line 147)
@@ -8897,22 +8896,22 @@ Index
* else: Programming. (line 8)
* emacs: Editing modes. (line 6)
* embed: embed. (line 6)
-* Embedded: three. (line 490)
+* Embedded: three. (line 489)
* empty: Frames and pictures. (line 7)
* EndArcArrow: draw. (line 26)
-* EndArcArrow3: three. (line 561)
+* EndArcArrow3: three. (line 560)
* EndArrow: draw. (line 26)
-* EndArrow3: three. (line 561)
+* EndArrow3: three. (line 560)
* EndBar: draw. (line 19)
-* EndBar3: three. (line 561)
+* EndBar3: three. (line 560)
* EndDotMargin: draw. (line 42)
-* EndDotMargin3: three. (line 577)
+* EndDotMargin3: three. (line 576)
* endl: Files. (line 61)
* EndMargin: draw. (line 42)
-* EndMargin3: three. (line 577)
+* EndMargin3: three. (line 576)
* EndPenMargin: draw. (line 42)
-* EndPenMargin2: three. (line 577)
-* EndPenMargin3: three. (line 577)
+* EndPenMargin2: three. (line 576)
+* EndPenMargin3: three. (line 576)
* EndPoint: label. (line 56)
* envelope: Frames and pictures. (line 22)
* environment variables: Configuring. (line 87)
@@ -8951,12 +8950,12 @@ Index
* extension <1>: MetaPost. (line 10)
* extension: Paths and guides. (line 235)
* external: embed. (line 13)
-* extrude: three. (line 514)
+* extrude: three. (line 513)
* F: Mathematical functions.
(line 48)
* fabs: Mathematical functions.
(line 6)
-* face: three. (line 602)
+* face: three. (line 601)
* factorial: Mathematical functions.
(line 39)
* Fedora: UNIX binary distributions.
@@ -8965,7 +8964,7 @@ Index
* fft <1>: math. (line 26)
* fft: Arrays. (line 246)
* FFTW: Compiling from UNIX source.
- (line 58)
+ (line 57)
* file <1>: Debugger. (line 45)
* file: Files. (line 6)
* Fill: Frames and pictures. (line 133)
@@ -8981,7 +8980,7 @@ Index
* find: Data types. (line 226)
* firstcut: Paths and guides. (line 250)
* fit: Frames and pictures. (line 103)
-* fit3: three. (line 282)
+* fit3: three. (line 281)
* fixedscaling: Frames and pictures. (line 74)
* floor: Mathematical functions.
(line 26)
@@ -8998,17 +8997,15 @@ Index
* format: Data types. (line 269)
* forum: Help. (line 6)
* frame: Frames and pictures. (line 7)
-* freeglut: Compiling from UNIX source.
- (line 16)
* from: Import. (line 17)
-* FrontView: three. (line 399)
+* FrontView: three. (line 398)
* function declarations: Functions. (line 67)
-* function shading: fill. (line 96)
-* Function shading: fill. (line 96)
+* function shading: fill. (line 100)
+* Function shading: fill. (line 100)
* functions <1>: Mathematical functions.
(line 6)
* functions: Functions. (line 6)
-* functionshade: fill. (line 96)
+* functionshade: fill. (line 100)
* gamma: Mathematical functions.
(line 6)
* Gaussrand: Mathematical functions.
@@ -9020,10 +9017,10 @@ Index
* getstring: Files. (line 117)
* gettriple: Files. (line 117)
* glOptions <1>: Options. (line 131)
-* glOptions: three. (line 223)
+* glOptions: three. (line 222)
* GNU Scientific Library: Mathematical functions.
(line 48)
-* gouraudshade: fill. (line 58)
+* gouraudshade: fill. (line 62)
* Gradient: palette. (line 25)
* gradient shading: fill. (line 32)
* graph: graph. (line 6)
@@ -9040,7 +9037,7 @@ Index
* gsl: Mathematical functions.
(line 48)
* GSL: Compiling from UNIX source.
- (line 58)
+ (line 57)
* gsOptions: Options. (line 131)
* GUI: GUI. (line 6)
* GUI installation: GUI installation. (line 6)
@@ -9058,14 +9055,14 @@ Index
* hex: Data types. (line 283)
* hexidecimal <1>: Pens. (line 59)
* hexidecimal: Data types. (line 283)
-* hidden surface removal: three. (line 602)
+* hidden surface removal: three. (line 601)
* histogram: Mathematical functions.
(line 39)
* history <1>: Interactive mode. (line 59)
* history: Files. (line 142)
* historylines: Interactive mode. (line 64)
* HookHead: draw. (line 26)
-* HookHead3: three. (line 561)
+* HookHead3: three. (line 560)
* Horizontal: flowchart. (line 81)
* hyperrefOptions: Options. (line 131)
* hypot: Mathematical functions.
@@ -9074,12 +9071,12 @@ Index
(line 48)
* i_scaled: Mathematical functions.
(line 48)
-* iconic: three. (line 223)
+* iconic: three. (line 222)
* identity <1>: Arrays. (line 300)
* identity <2>: Mathematical functions.
(line 6)
* identity: Transforms. (line 24)
-* identity4: three. (line 450)
+* identity4: three. (line 449)
* if: Programming. (line 8)
* IgnoreAspect: Frames and pictures. (line 58)
* image: palette. (line 34)
@@ -9118,22 +9115,22 @@ Index
* interp: Arithmetic & logical.
(line 76)
* interpolate: interpolate. (line 6)
-* intersect <1>: three. (line 520)
+* intersect <1>: three. (line 519)
* intersect <2>: math. (line 13)
* intersect: Paths and guides. (line 184)
-* intersectionpoint <1>: three. (line 520)
+* intersectionpoint <1>: three. (line 519)
* intersectionpoint <2>: math. (line 17)
* intersectionpoint: Paths and guides. (line 227)
-* intersectionpoints <1>: three. (line 520)
+* intersectionpoints <1>: three. (line 519)
* intersectionpoints: Paths and guides. (line 231)
-* intersections <1>: three. (line 520)
+* intersections <1>: three. (line 519)
* intersections: Paths and guides. (line 195)
* InTicks: graph3. (line 35)
* intMax: Data types. (line 28)
* intMin: Data types. (line 28)
* inverse <1>: Arrays. (line 306)
* inverse: Transforms. (line 16)
-* invert: three. (line 440)
+* invert: three. (line 439)
* invisible: Pens. (line 39)
* isnan: Data types. (line 33)
* J: Mathematical functions.
@@ -9147,13 +9144,13 @@ Index
* KDE editor: Editing modes. (line 49)
* keepAspect <1>: LaTeX usage. (line 51)
* keepAspect: Frames and pictures. (line 54)
-* keyboard bindings:: three. (line 182)
+* keyboard bindings:: three. (line 181)
* keys: Arrays. (line 39)
* keyword: Named arguments. (line 37)
* keyword-only: Named arguments. (line 37)
* keywords: Named arguments. (line 6)
* Korean: unicode. (line 12)
-* label: three. (line 484)
+* label: three. (line 483)
* Label <1>: graph. (line 343)
* Label: label. (line 14)
* label: clip. (line 16)
@@ -9179,13 +9176,13 @@ Index
* LeftRight: graph. (line 290)
* LeftSide: label. (line 61)
* LeftTicks: graph. (line 161)
-* LeftView: three. (line 399)
+* LeftView: three. (line 398)
* legend <1>: graph. (line 432)
* legend <2>: draw. (line 64)
* legend: Drawing commands. (line 31)
* Legendre: Mathematical functions.
(line 48)
-* length <1>: three. (line 520)
+* length <1>: three. (line 519)
* length <2>: Arrays. (line 39)
* length <3>: Paths and guides. (line 65)
* length: Data types. (line 62)
@@ -9226,10 +9223,10 @@ Index
* makepen: Pens. (line 300)
* map: Arrays. (line 141)
* Margin: draw. (line 42)
-* Margin3: three. (line 577)
-* margins: three. (line 275)
+* Margin3: three. (line 576)
+* margins: three. (line 274)
* Margins: draw. (line 42)
-* Margins3: three. (line 577)
+* Margins3: three. (line 576)
* mark: graph. (line 485)
* markangle: markers. (line 38)
* marker: graph. (line 485)
@@ -9240,28 +9237,28 @@ Index
* math: math. (line 6)
* mathematical functions: Mathematical functions.
(line 6)
-* max <1>: three. (line 520)
+* max <1>: three. (line 519)
* max <2>: Arrays. (line 225)
* max <3>: Frames and pictures. (line 7)
* max: Paths and guides. (line 267)
* maxbound: Data types. (line 106)
-* maxtile: three. (line 223)
+* maxtile: three. (line 222)
* maxtimes: Paths and guides. (line 222)
-* maxviewport: three. (line 223)
+* maxviewport: three. (line 222)
* MetaPost: MetaPost. (line 6)
-* MetaPost ... : Bezier curves. (line 67)
+* MetaPost ... : Bezier curves. (line 70)
* MetaPost cutafter: Paths and guides. (line 255)
* MetaPost cutbefore: Paths and guides. (line 251)
* MetaPost pickup: Pens. (line 6)
* MetaPost whatever: MetaPost. (line 10)
* Microsoft Windows: Microsoft Windows. (line 6)
* MidArcArrow: draw. (line 26)
-* MidArcArrow3: three. (line 561)
+* MidArcArrow3: three. (line 560)
* MidArrow: draw. (line 26)
-* MidArrow3: three. (line 561)
+* MidArrow3: three. (line 560)
* midpoint: Paths and guides. (line 169)
* MidPoint: label. (line 56)
-* min <1>: three. (line 520)
+* min <1>: three. (line 519)
* min <2>: Arrays. (line 218)
* min <3>: Frames and pictures. (line 7)
* min: Paths and guides. (line 263)
@@ -9275,12 +9272,10 @@ Index
* mode: Files. (line 75)
* monotonic: graph. (line 37)
* mouse: GUI. (line 6)
-* mouse bindings: three. (line 150)
+* mouse bindings: three. (line 149)
* Move: Pens. (line 339)
* MoveQuiet: Pens. (line 345)
* multisample: three. (line 140)
-* multisampling: Compiling from UNIX source.
- (line 16)
* N: Tutorial. (line 106)
* name: Files. (line 88)
* named arguments: Named arguments. (line 6)
@@ -9297,10 +9292,10 @@ Index
* NoFill <1>: Frames and pictures. (line 141)
* NoFill: draw. (line 26)
* NoMargin: draw. (line 42)
-* NoMargin3: three. (line 577)
+* NoMargin3: three. (line 576)
* none: Files. (line 61)
* None: draw. (line 19)
-* normal: three. (line 506)
+* normal: three. (line 505)
* nosafe: Options. (line 164)
* NOT: Arithmetic & logical.
(line 80)
@@ -9310,13 +9305,13 @@ Index
* null: Structures. (line 6)
* nullpen <1>: Frames and pictures. (line 127)
* nullpen: label. (line 14)
-* NURBS: three. (line 376)
-* O: three. (line 287)
+* NURBS: three. (line 375)
+* O: three. (line 286)
* obj: obj. (line 9)
-* oblique: three. (line 332)
-* obliqueX: three. (line 340)
-* obliqueY: three. (line 347)
-* obliqueZ: three. (line 332)
+* oblique: three. (line 331)
+* obliqueX: three. (line 339)
+* obliqueY: three. (line 346)
+* obliqueZ: three. (line 331)
* ode: ode. (line 9)
* offset <1>: Options. (line 169)
* offset: Pens. (line 115)
@@ -9341,7 +9336,7 @@ Index
* OR: Arithmetic & logical.
(line 80)
* orientation: Frames and pictures. (line 95)
-* orthographic: three. (line 351)
+* orthographic: three. (line 350)
* outformat: three. (line 140)
* outprefix: Frames and pictures. (line 83)
* output <1>: Options. (line 144)
@@ -9378,33 +9373,33 @@ Index
* pdfviewerOptions: Options. (line 131)
* pen: Pens. (line 6)
* PenMargin: draw. (line 42)
-* PenMargin2: three. (line 577)
-* PenMargin3: three. (line 577)
+* PenMargin2: three. (line 576)
+* PenMargin3: three. (line 576)
* PenMargins: draw. (line 42)
-* PenMargins2: three. (line 577)
-* PenMargins3: three. (line 577)
+* PenMargins2: three. (line 576)
+* PenMargins3: three. (line 576)
* periodic: graph. (line 37)
* perl: LaTeX usage. (line 30)
* perpendicular: geometry. (line 6)
-* perspective: three. (line 376)
+* perspective: three. (line 375)
* picture: Frames and pictures. (line 35)
* picture alignment: Frames and pictures. (line 209)
* piecewisestraight: Paths and guides. (line 81)
-* pixel: three. (line 584)
+* pixel: three. (line 583)
* Pl: Mathematical functions.
(line 48)
* plain: plain. (line 6)
* planar: three. (line 89)
-* plane: three. (line 314)
-* planeproject: three. (line 503)
-* point <1>: three. (line 520)
+* plane: three. (line 313)
+* planeproject: three. (line 502)
+* point <1>: three. (line 519)
* point: Paths and guides. (line 84)
* polar: Data types. (line 121)
* polargraph: graph. (line 90)
* polygon: graph. (line 485)
* pop: Arrays. (line 39)
* Portrait: Frames and pictures. (line 95)
-* postcontrol <1>: three. (line 520)
+* postcontrol <1>: three. (line 519)
* postcontrol: Paths and guides. (line 135)
* postfix operators: Self & prefix operators.
(line 19)
@@ -9413,9 +9408,9 @@ Index
* PostScript subpath: Tutorial. (line 134)
* pow10: Mathematical functions.
(line 6)
-* prc: three. (line 244)
+* prc: three. (line 243)
* precision: Files. (line 92)
-* precontrol <1>: three. (line 520)
+* precontrol <1>: three. (line 519)
* precontrol: Paths and guides. (line 128)
* prefix operators: Self & prefix operators.
(line 6)
@@ -9440,11 +9435,11 @@ Index
* quotient: Arithmetic & logical.
(line 6)
* RadialShade: Frames and pictures. (line 159)
-* radialshade: fill. (line 49)
+* radialshade: fill. (line 51)
* RadialShadeDraw: Frames and pictures. (line 163)
* radians: Mathematical functions.
(line 17)
-* radius <1>: three. (line 520)
+* radius <1>: three. (line 519)
* radius: Paths and guides. (line 124)
* Rainbow: palette. (line 12)
* rand: Mathematical functions.
@@ -9479,7 +9474,7 @@ Index
* restore: Frames and pictures. (line 265)
* restricted: Structures. (line 6)
* return: Debugger. (line 48)
-* reverse <1>: three. (line 520)
+* reverse <1>: three. (line 519)
* reverse <2>: Arrays. (line 146)
* reverse <3>: Paths and guides. (line 172)
* reverse: Data types. (line 250)
@@ -9491,8 +9486,8 @@ Index
* Right: graph. (line 287)
* RightSide: label. (line 61)
* RightTicks: graph. (line 161)
-* RightView: three. (line 399)
-* rotate: three. (line 471)
+* RightView: three. (line 398)
+* rotate: three. (line 470)
* Rotate: label. (line 36)
* Rotate(pair z): label. (line 39)
* round: Mathematical functions.
@@ -9509,13 +9504,13 @@ Index
* safe: Options. (line 164)
* save: Frames and pictures. (line 262)
* saveline: Files. (line 134)
-* scale: three. (line 470)
+* scale: three. (line 469)
* Scale: graph. (line 698)
* scale <1>: graph. (line 682)
* scale <2>: Transforms. (line 39)
* scale: Pens. (line 115)
* Scale: label. (line 45)
-* scale3: three. (line 467)
+* scale3: three. (line 466)
* scaled graph: graph. (line 663)
* scientific graph: graph. (line 397)
* scroll: Files. (line 108)
@@ -9538,12 +9533,12 @@ Index
* sgn: Mathematical functions.
(line 26)
* shading: fill. (line 32)
-* shift <1>: three. (line 455)
+* shift <1>: three. (line 454)
* shift: Transforms. (line 27)
* Shift: label. (line 33)
* shiftless: Transforms. (line 53)
* shipout: Frames and pictures. (line 83)
-* showtarget: three. (line 351)
+* showtarget: three. (line 350)
* Si: Mathematical functions.
(line 48)
* signedint: Files. (line 75)
@@ -9560,14 +9555,14 @@ Index
* singlereal: Files. (line 75)
* sinh: Mathematical functions.
(line 6)
-* SixViews: three. (line 414)
-* SixViewsFR: three. (line 414)
-* SixViewsUS: three. (line 414)
+* SixViews: three. (line 413)
+* SixViewsFR: three. (line 413)
+* SixViewsUS: three. (line 413)
* size <1>: Options. (line 144)
-* size <2>: three. (line 520)
+* size <2>: three. (line 519)
* size <3>: Frames and pictures. (line 43)
* size: Paths and guides. (line 70)
-* size3: three. (line 272)
+* size3: three. (line 271)
* slant: Transforms. (line 45)
* Slant: label. (line 42)
* sleep: Data types. (line 351)
@@ -9599,7 +9594,7 @@ Index
* step: Debugger. (line 39)
* stickframe: markers. (line 16)
* stop: Debugger. (line 10)
-* straight: three. (line 520)
+* straight: three. (line 519)
* Straight: graph. (line 31)
* straight: Paths and guides. (line 77)
* strftime: Data types. (line 298)
@@ -9609,7 +9604,7 @@ Index
* strptime: Data types. (line 306)
* struct: Structures. (line 6)
* structures: Structures. (line 6)
-* subpath <1>: three. (line 520)
+* subpath <1>: three. (line 519)
* subpath: Paths and guides. (line 175)
* subpictures: Frames and pictures. (line 103)
* substr: Data types. (line 246)
@@ -9633,13 +9628,13 @@ Index
(line 6)
* tanh: Mathematical functions.
(line 6)
-* target: three. (line 351)
+* target: three. (line 350)
* tell: Files. (line 92)
* tension <1>: three. (line 6)
* tension: Bezier curves. (line 56)
* tensionSpecifier: Paths and guides. (line 388)
-* tensor product shading: fill. (line 74)
-* tensorshade: fill. (line 74)
+* tensor product shading: fill. (line 78)
+* tensorshade: fill. (line 78)
* tessellation: three. (line 112)
* tex <1>: Options. (line 144)
* tex: Frames and pictures. (line 278)
@@ -9647,7 +9642,7 @@ Index
* TeX string: Data types. (line 181)
* texcommand: Configuring. (line 67)
* TeXHead: draw. (line 26)
-* TeXHead3: three. (line 561)
+* TeXHead3: three. (line 560)
* texpath <1>: label. (line 115)
* texpath: Configuring. (line 67)
* texpreamble: Frames and pictures. (line 286)
@@ -9659,9 +9654,9 @@ Index
* thin: three. (line 123)
* this: Structures. (line 6)
* three: three. (line 6)
-* ThreeViews: three. (line 414)
-* ThreeViewsFR: three. (line 414)
-* ThreeViewsUS: three. (line 414)
+* ThreeViews: three. (line 413)
+* ThreeViewsFR: three. (line 413)
+* ThreeViewsUS: three. (line 413)
* tick: graph. (line 343)
* Ticks: graph. (line 161)
* ticks: graph. (line 161)
@@ -9672,25 +9667,25 @@ Index
* time: Data types. (line 298)
* times: Paths and guides. (line 209)
* Top: graph. (line 137)
-* TopView: three. (line 399)
+* TopView: three. (line 398)
* trace: Debugger. (line 51)
* trailingzero: graph. (line 175)
-* transform <1>: three. (line 495)
+* transform <1>: three. (line 494)
* transform: Transforms. (line 6)
-* transform3: three. (line 450)
+* transform3: three. (line 449)
* transparency: Pens. (line 222)
* transpose: Arrays. (line 205)
* tree: tree. (line 9)
* trembling: trembling. (line 6)
* triangle: geometry. (line 6)
* triangles: three. (line 112)
-* triangulate: contour. (line 157)
+* triangulate: contour. (line 156)
* tridiagonal: Arrays. (line 266)
* trigonometric integrals: Mathematical functions.
(line 48)
* triple: Data types. (line 110)
* TrueMargin: draw. (line 42)
-* TrueMargin3: three. (line 577)
+* TrueMargin3: three. (line 576)
* tube <1>: tube. (line 6)
* tube: three. (line 123)
* tutorial: Tutorial. (line 6)
@@ -9700,16 +9695,16 @@ Index
* U3D: embed. (line 24)
* undefined: Paths and guides. (line 271)
* UnFill: Frames and pictures. (line 152)
-* unfill: fill. (line 106)
+* unfill: fill. (line 110)
* UnFill: draw. (line 26)
* unicode: unicode. (line 6)
* uniform: Arrays. (line 155)
* Uninstall: Uninstall. (line 6)
* unique: math. (line 64)
* unit: Data types. (line 80)
-* unitbox <1>: three. (line 320)
+* unitbox <1>: three. (line 319)
* unitbox: Tutorial. (line 155)
-* unitcircle <1>: three. (line 287)
+* unitcircle <1>: three. (line 286)
* unitcircle: Tutorial. (line 128)
* unitrand: Mathematical functions.
(line 39)
@@ -9719,7 +9714,7 @@ Index
(line 6)
* unpacking: Rest arguments. (line 39)
* unravel: Import. (line 30)
-* up: three. (line 351)
+* up: three. (line 350)
* update: Files. (line 36)
* UpsideDown: Frames and pictures. (line 95)
* usepackage: Frames and pictures. (line 291)
@@ -9739,10 +9734,10 @@ Index
* vertex-dependent colors: three. (line 81)
* Vertical: flowchart. (line 81)
* viewportheight: LaTeX usage. (line 51)
-* viewportmargin: three. (line 275)
-* viewportsize: three. (line 275)
+* viewportmargin: three. (line 274)
+* viewportsize: three. (line 274)
* viewportwidth: LaTeX usage. (line 51)
-* views: three. (line 244)
+* views: three. (line 243)
* vim: Editing modes. (line 33)
* virtual functions: Structures. (line 181)
* void: Data types. (line 10)
@@ -9757,7 +9752,7 @@ Index
* word: Arrays. (line 354)
* write <1>: Arrays. (line 394)
* write: Files. (line 53)
-* X: three. (line 287)
+* X: three. (line 286)
* xasy: GUI. (line 6)
* xaxis3: graph3. (line 7)
* xdr: Files. (line 75)
@@ -9769,15 +9764,15 @@ Index
(line 80)
* xpart: Data types. (line 91)
* xscale: Transforms. (line 33)
-* xscale3: three. (line 458)
+* xscale3: three. (line 457)
* xtick: graph. (line 343)
-* XY: three. (line 480)
+* XY: three. (line 479)
* XYEquals: graph3. (line 21)
* XYZero: graph3. (line 21)
* XZEquals: graph3. (line 21)
* XZero: graph. (line 275)
* XZZero: graph3. (line 21)
-* Y <1>: three. (line 287)
+* Y <1>: three. (line 286)
* Y: Mathematical functions.
(line 6)
* yaxis3: graph3. (line 7)
@@ -9786,14 +9781,14 @@ Index
* ylimits: graph. (line 637)
* ypart: Data types. (line 94)
* yscale: Transforms. (line 36)
-* yscale3: three. (line 461)
+* yscale3: three. (line 460)
* ytick: graph. (line 343)
-* YX: three. (line 495)
-* YZ: three. (line 495)
+* YX: three. (line 494)
+* YZ: three. (line 494)
* YZEquals: graph3. (line 21)
* YZero: graph. (line 125)
* YZZero: graph3. (line 21)
-* Z: three. (line 287)
+* Z: three. (line 286)
* zaxis3: graph3. (line 7)
* zero_Ai: Mathematical functions.
(line 48)
@@ -9809,9 +9804,9 @@ Index
* zeta: Mathematical functions.
(line 48)
* zpart: Data types. (line 163)
-* zscale3: three. (line 464)
-* ZX: three. (line 495)
-* ZY: three. (line 495)
+* zscale3: three. (line 463)
+* ZX: three. (line 494)
+* ZY: three. (line 494)
* |: Arithmetic & logical.
(line 62)
* ||: Arithmetic & logical.
@@ -9827,139 +9822,138 @@ Node: UNIX binary distributions11503
Node: MacOS X binary distributions12609
Node: Microsoft Windows13493
Ref: psview14203
-Node: Configuring15135
-Node: Search paths19349
-Node: Compiling from UNIX source20191
-Ref: multisampling20781
-Node: Editing modes23176
-Node: Subversion25608
-Node: Uninstall26071
-Node: Tutorial26421
-Ref: unitcircle30719
-Node: Drawing commands32655
-Node: draw34366
-Ref: arrows35514
-Node: fill40757
-Ref: gradient shading41801
-Node: clip46029
-Node: label46621
-Ref: Label47219
-Node: Bezier curves53022
-Node: Programming56599
-Ref: array iteration57413
-Node: Data types58494
-Ref: format67691
-Node: Paths and guides71944
-Ref: circle72198
-Ref: extension81618
-Node: Pens88301
-Ref: fillrule95669
-Ref: basealign96566
-Ref: transparency99392
-Ref: makepen102835
-Ref: overwrite103673
-Node: Transforms104883
-Node: Frames and pictures106674
-Ref: envelope107815
-Ref: size108898
-Ref: unitsize109885
-Ref: shipout110945
-Ref: filltype113278
-Ref: add116415
-Ref: add about117361
-Ref: tex120299
-Node: Files121173
-Ref: cd122156
-Ref: scroll126830
-Node: Variable initializers129745
-Node: Structures132470
-Node: Operators139914
-Node: Arithmetic & logical140228
-Node: Self & prefix operators142201
-Node: User-defined operators142989
-Node: Implicit scaling143900
-Node: Functions144463
-Ref: stack overflow147216
-Node: Default arguments147780
-Node: Named arguments148519
-Node: Rest arguments151090
-Node: Mathematical functions154211
-Node: Arrays158876
-Ref: sort165865
-Ref: tridiagonal168269
-Ref: solve169497
-Node: Slices173690
-Node: Casts177580
-Node: Import179545
-Node: Static184782
-Node: LaTeX usage187676
-Node: Base modules194088
-Node: plain196588
-Node: simplex197240
-Node: math197513
-Node: interpolate200218
-Node: geometry200497
-Node: trembling201091
-Node: stats201442
-Node: patterns201702
-Node: markers201938
-Node: tree203721
-Node: binarytree203909
-Node: drawtree204529
-Node: syzygy204733
-Node: feynman205007
-Node: roundedpath205282
-Node: animation205565
-Ref: animate205985
-Node: embed207124
-Node: slide208151
-Node: MetaPost208491
-Node: unicode209207
-Node: latin1210095
-Node: babel210463
-Node: labelpath210692
-Node: labelpath3211512
-Node: annotate211823
-Node: CAD212294
-Node: graph212604
-Ref: ticks219733
-Ref: pathmarkers233060
-Ref: marker233525
-Ref: markuniform233876
-Ref: errorbars235667
-Ref: automatic scaling239704
-Node: palette250333
-Ref: images250451
-Ref: image254623
-Ref: logimage255101
-Ref: penimage256162
-Ref: penfunctionimage256383
-Node: three257107
-Ref: PostScript3D282792
-Node: obj284484
-Node: graph3284736
-Ref: GaussianSurface289891
-Node: grid3290995
-Node: solids291735
-Node: tube292683
-Node: flowchart294918
-Node: contour299487
-Node: contour3304612
-Node: slopefield304919
-Node: ode306356
-Node: Options306616
-Ref: configuration file312661
-Ref: settings312661
-Ref: convert313862
-Node: Interactive mode316829
-Ref: history318982
-Node: GUI320287
-Node: GUI installation320790
-Node: GUI usage321920
-Node: PostScript to Asymptote322823
-Node: Help323579
-Node: Debugger325315
-Node: Credits327100
-Node: Index328032
+Node: Configuring15137
+Node: Search paths19351
+Node: Compiling from UNIX source20193
+Node: Editing modes23051
+Node: Subversion25483
+Node: Uninstall25946
+Node: Tutorial26296
+Ref: unitcircle30594
+Node: Drawing commands32530
+Node: draw34241
+Ref: arrows35389
+Node: fill40632
+Ref: gradient shading41676
+Node: clip46231
+Node: label46823
+Ref: Label47421
+Node: Bezier curves53224
+Node: Programming56926
+Ref: array iteration57740
+Node: Data types58821
+Ref: format68018
+Node: Paths and guides72271
+Ref: circle72525
+Ref: extension81945
+Node: Pens88628
+Ref: fillrule95996
+Ref: basealign96893
+Ref: transparency99719
+Ref: makepen103162
+Ref: overwrite104000
+Node: Transforms105210
+Node: Frames and pictures107001
+Ref: envelope108142
+Ref: size109225
+Ref: unitsize110212
+Ref: shipout111272
+Ref: filltype113605
+Ref: add116742
+Ref: add about117688
+Ref: tex120626
+Node: Files121500
+Ref: cd122483
+Ref: scroll127157
+Node: Variable initializers130072
+Node: Structures132797
+Node: Operators140241
+Node: Arithmetic & logical140555
+Node: Self & prefix operators142528
+Node: User-defined operators143316
+Node: Implicit scaling144227
+Node: Functions144790
+Ref: stack overflow147543
+Node: Default arguments148107
+Node: Named arguments148846
+Node: Rest arguments151417
+Node: Mathematical functions154538
+Node: Arrays159203
+Ref: sort166192
+Ref: tridiagonal168596
+Ref: solve169824
+Node: Slices174017
+Node: Casts177907
+Node: Import179872
+Node: Static185109
+Node: LaTeX usage188003
+Node: Base modules194415
+Node: plain196915
+Node: simplex197567
+Node: math197840
+Node: interpolate200545
+Node: geometry200824
+Node: trembling201418
+Node: stats201687
+Node: patterns201947
+Node: markers202183
+Node: tree203966
+Node: binarytree204154
+Node: drawtree204774
+Node: syzygy204978
+Node: feynman205252
+Node: roundedpath205527
+Node: animation205810
+Ref: animate206230
+Node: embed207369
+Node: slide208396
+Node: MetaPost208736
+Node: unicode209452
+Node: latin1210340
+Node: babel210708
+Node: labelpath210937
+Node: labelpath3211757
+Node: annotate212068
+Node: CAD212539
+Node: graph212849
+Ref: ticks219978
+Ref: pathmarkers233305
+Ref: marker233770
+Ref: markuniform234121
+Ref: errorbars235912
+Ref: automatic scaling239949
+Node: palette250578
+Ref: images250696
+Ref: image254868
+Ref: logimage255346
+Ref: penimage256407
+Ref: penfunctionimage256628
+Node: three257352
+Ref: PostScript3D282920
+Node: obj284612
+Node: graph3284864
+Ref: GaussianSurface290019
+Node: grid3291123
+Node: solids291863
+Node: tube292811
+Node: flowchart295046
+Node: contour299615
+Node: contour3304705
+Node: slopefield305012
+Node: ode306449
+Node: Options306709
+Ref: configuration file312754
+Ref: settings312754
+Ref: convert313955
+Node: Interactive mode316922
+Ref: history319075
+Node: GUI320380
+Node: GUI installation320883
+Node: GUI usage322013
+Node: PostScript to Asymptote322916
+Node: Help323672
+Node: Debugger325408
+Node: Credits327193
+Node: Index328125

End Tag Table
diff --git a/Master/texmf-dist/doc/man/man1/xasy.man1.pdf b/Master/texmf-dist/doc/man/man1/xasy.man1.pdf
index ebad4890ee3..9779ad3d7ef 100644
--- a/Master/texmf-dist/doc/man/man1/xasy.man1.pdf
+++ b/Master/texmf-dist/doc/man/man1/xasy.man1.pdf
Binary files differ
diff --git a/Master/tlpkg/asymptote/asy.exe b/Master/tlpkg/asymptote/asy.exe
index a182944cebe..0a941fb7d36 100755
--- a/Master/tlpkg/asymptote/asy.exe
+++ b/Master/tlpkg/asymptote/asy.exe
Binary files differ