From 0afdc3e8c2d8e96d0cd0a5f05f1481a4eecc51d2 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 28 Feb 2024 03:01:23 +0000 Subject: CTAN sync 202402280301 --- graphics/asymptote/base/three.asy | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'graphics/asymptote/base/three.asy') diff --git a/graphics/asymptote/base/three.asy b/graphics/asymptote/base/three.asy index 9dfad6ce79..cde32f6acb 100644 --- a/graphics/asymptote/base/three.asy +++ b/graphics/asymptote/base/three.asy @@ -1,7 +1,12 @@ private import math; -if(prc0()) { - if(!latex()) settings.prc=false; +if(settings.v3d) settings.prc=false; + +if(prc0() || settings.v3d) { + if(!latex()) { + settings.prc=false; + settings.v3d=false; + } else { access embed; Embed=embed.embedplayer; @@ -2854,8 +2859,8 @@ object embed(string prefix=outprefix(), string label=prefix, light Light=modelview*light; if(prefix == "") prefix=outprefix(); - bool preview=settings.render > 0 && !prconly(); - if(prc) { + bool preview=settings.render > 0 && !prconly() && !settings.v3d; + if(prc || settings.v3d) { // The media9.sty package cannot handle spaces or dots in filenames. string dir=stripfile(prefix); prefix=dir+replace(stripdirectory(prefix), @@ -2864,7 +2869,7 @@ object embed(string prefix=outprefix(), string label=prefix, prefix += "+"+(string) file3.length; } else preview=false; - if(preview || (!prc && settings.render != 0)) { + if(preview || (!prc && settings.render != 0) || settings.v3d) { frame f=S.f; triple m,M; real zcenter; @@ -2891,7 +2896,7 @@ object embed(string prefix=outprefix(), string label=prefix, } else if(M.z >= 0) abort("camera too close"); if(primitive()) - format=settings.outformat; + format=settings.v3d ? "v3d" : settings.outformat; shipout3(prefix,f,preview ? nativeformat() : format, S.width-defaultrender.margin,S.height-defaultrender.margin, @@ -2900,6 +2905,12 @@ object embed(string prefix=outprefix(), string label=prefix, tinv*inv*shift(0,0,zcenter),Light.background(),Light.position, Light.diffuse,Light.specular, view && !preview); + if(settings.v3d) { + string content=prefix+".v3d"; + F.L=Embed(content,S.width,S.height); + if(!settings.inlinetex) file3.push(content); + return F; + } if(!preview) return F; } @@ -2997,7 +3008,7 @@ frame embedder(object embedder(string prefix, string format), string prefix, string format, bool view, light light) { frame f; - bool prc=prc(format); + bool prc=prc(format) || settings.v3d; if(!prc && settings.render != 0 && !view) { static int previewcount=0; bool keep=prefix != ""; -- cgit v1.2.3