diff options
Diffstat (limited to 'Build/source/utils/asymptote/base/solids.asy')
-rw-r--r-- | Build/source/utils/asymptote/base/solids.asy | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/Build/source/utils/asymptote/base/solids.asy b/Build/source/utils/asymptote/base/solids.asy index a52e9bd5079..942a7fe233a 100644 --- a/Build/source/utils/asymptote/base/solids.asy +++ b/Build/source/utils/asymptote/base/solids.asy @@ -322,6 +322,12 @@ struct revolution { } } +revolution operator * (transform3 t, revolution r) +{ + triple trc=t*r.c; + return revolution(trc,t*r.g,t*(r.c+r.axis)-trc,r.angle1,r.angle2); +} + surface surface(revolution r, int n=nslice, pen color(int i, real j)=null) { return r.surface(n,color); @@ -340,15 +346,15 @@ void draw(picture pic=currentpicture, revolution r, int m=0, int n=nslice, if(is3D()) { pen thin=thin(); void drawskeleton(frame f, transform3 t, projection P) { - skeleton s=r.skeleton(m,n,inverse(t)*P); + skeleton s=(t*r).skeleton(m,n,P); if(frontpen != nullpen) { - draw(f,t*s.transverse.back,thin+defaultbackpen+backpen,light); - draw(f,t*s.transverse.front,thin+frontpen,light); + draw(f,s.transverse.back,thin+defaultbackpen+backpen,light); + draw(f,s.transverse.front,thin+frontpen,light); } if(longitudinalpen != nullpen) { - draw(f,t*s.longitudinal.back,thin+defaultbackpen+longitudinalbackpen, + draw(f,s.longitudinal.back,thin+defaultbackpen+longitudinalbackpen, light); - draw(f,t*s.longitudinal.front,thin+longitudinalpen,light); + draw(f,s.longitudinal.front,thin+longitudinalpen,light); } } @@ -379,12 +385,6 @@ void draw(picture pic=currentpicture, revolution r, int m=0, int n=nslice, } } -revolution operator * (transform3 t, revolution r) -{ - triple trc=t*r.c; - return revolution(trc,t*r.g,t*(r.c+r.axis)-trc,r.angle1,r.angle2); -} - // Return a right circular cylinder of height h in the direction of axis // based on a circle centered at c with radius r. revolution cylinder(triple c=O, real r, real h, triple axis=Z) |