static _computeTextureTranslationAndScaleFromNative(
    nativeBoundingRectangle,
    nativeImageryRectangle,
  ) {
    //>>includeStart('debug', pragmas.debug);
    Check.defined("nativeBoundingRectangle", nativeBoundingRectangle);
    Check.defined("nativeImageryRectangle", nativeImageryRectangle);
    //>>includeEnd('debug');

    const invImageryWidth = 1.0 / nativeImageryRectangle.width;
    const invImageryHeight = 1.0 / nativeImageryRectangle.height;
    const deltaWest =
      nativeBoundingRectangle.west - nativeImageryRectangle.west;
    const deltaSouth =
      nativeBoundingRectangle.south - nativeImageryRectangle.south;
    const offsetX = deltaWest * invImageryWidth;
    const offsetY = deltaSouth * invImageryHeight;
    const scaleX = nativeBoundingRectangle.width * invImageryWidth;
    const scaleY = nativeBoundingRectangle.height * invImageryHeight;
    return new Cartesian4(offsetX, offsetY, scaleX, scaleY);
  }
Compute the translation and scale that has to be applied to
the texture coordinates for mapping the given imagery rectangle
to the geometry rectangle.

This will compute a Cartesian4 containing the
(offsetX, offsetY, scaleX, scaleY) that have to be applied to
the texture coordinates that that have been computed with
`ModelImageryMapping.createTextureCoordinatesAttributeForMappedPositions`.
In the shader, this offset and scale will map the given imagery rectangle
to the geometry * rectangle.

@param {Imagery} imagery The imagery
@param {Rectangle} nonNativeBoundingRectangle The bounding
rectangle of the geometry
@param {Rectangle} nonNativeImageryRectangle The bounding
rectangle of the imagery
@returns {Cartesian4} The translation and scale
@private