diff options
Diffstat (limited to 'Master/texmf-dist/asymptote/plain_shipout.asy')
-rw-r--r-- | Master/texmf-dist/asymptote/plain_shipout.asy | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/Master/texmf-dist/asymptote/plain_shipout.asy b/Master/texmf-dist/asymptote/plain_shipout.asy index 388a03a557b..fcc7f8e28a6 100644 --- a/Master/texmf-dist/asymptote/plain_shipout.asy +++ b/Master/texmf-dist/asymptote/plain_shipout.asy @@ -11,7 +11,7 @@ string outprefix(string prefix=defaultfilename) { return stripextension(prefix != "" ? prefix : outname()); } -string outformat(string format="") +string outformat(string format="") { if(format == "") format=settings.outformat; if(format == "") format=nativeformat(); @@ -32,6 +32,10 @@ object embed3(string, frame, string, string, string, light, projection); string Embed(string name, string text="", string options="", real width=0, real height=0); +bool primitive() { // Encode primitive objects + return settings.outformat == "html" || settings.outformat=="v3d"; +} + bool prconly(string format="") { return outformat(format) == "prc"; @@ -39,7 +43,7 @@ bool prconly(string format="") bool prc0(string format="") { - return settings.prc && (outformat(format) == "pdf" || prconly() || settings.inlineimage ); + return settings.outformat == "prc" || (settings.prc && (outformat(format) == "pdf" || prconly() || settings.inlineimage )); } bool prc(string format="") { @@ -62,6 +66,14 @@ frame enclose(string prefix=defaultfilename, object F, string format="") void deconstruct(picture pic=currentpicture) { + if(currentpicture.nodes3.length > 0) { + if(currentpicture.xsize3 == 0 && + currentpicture.ysize3 == 0 && + currentpicture.zsize3 == 0) + currentpicture.size3(hypot(currentpicture.xsize,currentpicture.ysize)); + currentpicture.size(0); + } + frame f; transform t=pic.calculateTransform(); if(currentpicture.fitter == null) @@ -95,7 +107,7 @@ void shipout(string prefix=defaultfilename, frame f, } return; } - + // Applications like LaTeX cannot handle large PostScript coordinates. pair m=min(f); int limit=2000; |