public static void Main(string[] args) { var sphere = new Sphere(10); var cylinder = new Cylinder(10, 10); var composite = new CompositeShape(new List <Shape3d> { cylinder, sphere }); Console.WriteLine(composite.SurfaceArea()); Console.WriteLine(composite.Volume()); var sv = new SubsumedVisitor(); sv.Render(new OpenGL(), composite); sv.Render(new SVG(), composite); }