summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/asymptote/plain_shipout.asy
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/asymptote/plain_shipout.asy')
-rw-r--r--Master/texmf-dist/asymptote/plain_shipout.asy18
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;