summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/base/three.asy
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/base/three.asy')
-rw-r--r--Build/source/utils/asymptote/base/three.asy15
1 files changed, 8 insertions, 7 deletions
diff --git a/Build/source/utils/asymptote/base/three.asy b/Build/source/utils/asymptote/base/three.asy
index 2befc77a9c8..39075193073 100644
--- a/Build/source/utils/asymptote/base/three.asy
+++ b/Build/source/utils/asymptote/base/three.asy
@@ -1745,7 +1745,7 @@ transform3 align(triple u)
}
// return a rotation that maps X,Y to the projection plane.
-transform3 transform3(projection P)
+transform3 transform3(projection P=currentprojection)
{
triple v=unit(P.oblique ? P.camera : P.vector());
triple u=unit(perp(P.up,v));
@@ -2015,7 +2015,7 @@ draw=new void(frame f, path3 g, material p=currentpen,
if(settings.thick) {
real width=linewidth(q);
if(width > 0) {
- surface s=tube(g,width,p.granularity);
+ tube T=tube(g,width,p.granularity);
int L=length(g);
if(L >= 0) {
if(!cyclic(g)) {
@@ -2034,13 +2034,14 @@ draw=new void(frame f, path3 g, material p=currentpen,
cap=scale3r*unitcylinder;
cap.append(scale3r*shift(Z)*unitdisk);
}
- s.append(shift(point(g,0))*align(-dir0)*cap);
- s.append(shift(point(g,L))*align(dirL)*cap);
+ T.s.append(shift(point(g,0))*align(-dir0)*cap);
+ T.s.append(shift(point(g,L))*align(dirL)*cap);
}
- if(opacity(q) == 1) _draw(f,g,q);
+ if(opacity(q) == 1)
+ _draw(f,T.center,q);
}
- for(int i=0; i < s.s.length; ++i)
- draw3D(f,s.s[i],p,light);
+ for(int i=0; i < T.s.s.length; ++i)
+ draw3D(f,T.s.s[i],p,light);
} else _draw(f,g,q);
} else _draw(f,g,q);
}