code: function reShape(object, radius, orientation, options, slicer) {
    options = options || {};
    var b = object.getBounds();
    // var s = util.size(b);
    var ar = Math.abs(radius);
    var si = util.sliceParams(orientation, radius, b);
  
    if (si.axis !== "z")
      throw new Error(
        'util.reShape error: CAG._toPlanePolytons only uses the "z" axis.  You must use the "z" axis for now.'
      );
  
    var cutplane = CSG$1.OrthoNormalBasis.GetCartesian(
      si.orthoNormalCartesian[0],
      si.orthoNormalCartesian[1]
    ).translate(si.cutDelta);
  
    var slice = object.sectionCut(cutplane);
  
    var first = util.axisApply(si.axis, function() {
      return si.positive ? 0 : ar;
    });
  
    var last = util.axisApply(si.axis, function() {
      return si.positive ? ar : 0;
    });
  
    var plane = si.positive ? cutplane.plane : cutplane.plane.flipped();
  
    var slices = slicer(first, last, slice);
  
    var delta = util
      .slices2poly(
        slices,
        Object.assign(options, {
          si: si
        }),
        si.axis
      )
      .color(options.color);
  
    var remainder = object.cutByPlane(plane);
    return union([
      options.unionOriginal ? object : remainder,
      delta.translate(si.moveDelta)
    ]);
  }
docs: export function solidFromSlices(slices, heights) { var si = { axis: 'z', cutDelta: {}, moveDelta: {}, orthoNormalCartesian: ['X', 'Y'], normalVector: CSG.Vector3D.Create(0, 1, 0) }; },