docs: function bisect(
    object,
    axis,
    offset,
    angle,
    rotateaxis,
    rotateoffset,
    options
  ) {
    options = util.defaults(options, {
      addRotationCenter: false
    });
    angle = angle || 0;
    var info = util.normalVector(axis);
    var bounds = object.getBounds();
    var size = util.size(object);
  
    rotateaxis =
      rotateaxis ||
      {
        x: "y",
        y: "x",
        z: "x"
      }[axis];
  
    // function getDelta(axis, offset) {
    //     // if the offset is negative, then it's an offset from
    //     // the positive side of the axis
    //     var dist = util.isNegative(offset) ? offset = size[axis] + offset : offset;
    //     return util.axisApply(axis, function (i, a) {
    //         return bounds[0][a] + (util.isEmpty(dist) ? size[axis] / 2 : dist);
    //     });
    // }
  
    var cutDelta = options.cutDelta || util.getDelta(size, bounds, axis, offset);
    var rotateOffsetAxis = {
      xy: "z",
      yz: "x",
      xz: "y"
    }[[axis, rotateaxis].sort().join("")];
    var centroid = object.centroid();
    var rotateDelta = util.getDelta(size, bounds, rotateOffsetAxis, rotateoffset);
  
    var rotationCenter =
      options.rotationCenter ||
      new CSG$1.Vector3D(
        util.axisApply("xyz", function(i, a) {
          if (a == axis) return cutDelta[i];
          if (a == rotateOffsetAxis) return rotateDelta[i];
          return centroid[a];
        })
      );
    var rotationAxis = util.rotationAxes[rotateaxis];
  
    var cutplane = CSG$1.OrthoNormalBasis.GetCartesian(
      info.orthoNormalCartesian[0],
      info.orthoNormalCartesian[1]
    )
      .translate(cutDelta)
      .rotate(rotationCenter, rotationAxis, angle);
  
    var g = util.group("negative,positive", [
      object.cutByPlane(cutplane.plane).color("red"),
      object.cutByPlane(cutplane.plane.flipped()).color("blue")
    ]);
  
    if (options.addRotationCenter)
      g.add(
        util.unitAxis(size.length() + 10, 0.5, rotationCenter),
        "rotationCenter"
      );
  
    return g;
  }