static _computeImageryFlags(imageryLayers) {
    const imageryFlags = new ImageryFlags();
    for (let i = 0; i < imageryLayers.length; i++) {
      const imageryLayer = imageryLayers[i];

      // These are short-circuiting to `number` instead
      // of `boolean` here. With "ecmaVersion: 2021", we
      // could use "||=" here. Otherwise, there is no
      // nice shortcut for this.
      imageryFlags.alpha |= imageryLayer.alpha !== 1.0;
      imageryFlags.brightness |=
        imageryLayer.brightness !== ImageryLayer.DEFAULT_BRIGHTNESS;
      imageryFlags.contrast |=
        imageryLayer.contrast !== ImageryLayer.DEFAULT_CONTRAST;
      imageryFlags.hue |= imageryLayer.hue !== ImageryLayer.DEFAULT_HUE;
      imageryFlags.saturation |=
        imageryLayer.saturation !== ImageryLayer.DEFAULT_SATURATION;
      imageryFlags.gamma |= imageryLayer.gamma !== ImageryLayer.DEFAULT_GAMMA;
      const hasColorToAlpha =
        defined(imageryLayer.colorToAlpha) &&
        imageryLayer.colorToAlphaThreshold > 0.0;
      imageryFlags.colorToAlpha |= hasColorToAlpha;
    }
    return imageryFlags;
  }
Returns the `ImageryFlags` that indicate the features that are
required for the given imagery layers.

The resulting flags will indicate whether any of the given
imagery layer objects did *not* have the default value for
the respective property, as defined by `ImageryLayer.DEFAULT_...`

@param {ImageryLayer[]} imageryLayers The imagery layers
@returns {ImageryFlags} The imagery flags