function canUpdateHeights(boundingVolume, tileBounds) {
  return (
    defined(boundingVolume) &&
    defined(tileBounds) &&
    (defined(tileBounds.minimumHeight) || defined(tileBounds.maximumHeight)) &&
    (hasExtension(boundingVolume, "3DTILES_bounding_volume_S2") ||
      defined(boundingVolume.region))
  );
}
Checks whether the bounding volume's heights can be updated.
Returns true if the minimumHeight/maximumHeight parameter
is defined and the bounding volume is a region or S2 cell.

@param {object} [boundingVolume] The bounding volume
@param {object} [tileBounds] The tile bounds
@param {number} [tileBounds.minimumHeight] The minimum height
@param {number} [tileBounds.maximumHeight] The maximum height
@returns {boolean} Whether the bounding volume's heights can be updated
@private