In the code below, I define a cylinder (as a surface of revolution) and a plane (as a cyclic path). From both, I can get a surface that renders in 3D. Now, I would like to hide (or better remove) the part of the cylinder, which is below the surface (in this example at z < 0, rendered in a darker shade of red), while the plane should remain semi-transparent.
How can this be done elegantly?
import three;
import solids;
currentprojection = obliqueY();
path3 xyplane = path3(scale(10) * box((-1,-1),(1,1)));
revolution c = rotate(-45,Y) * shift((0,0,-5)) *cylinder(O,1,15);
draw(surface(xyplane),black+opacity(.5));
draw(xyplane,black+linewidth(.1));
draw(surface(c),red);
draw(c,red);

