static createIterableCartesian3FromTypedArray(typedArray, stride) {
    //>>includeStart('debug', pragmas.debug);
    Check.defined("typedArray", typedArray);
    Check.typeOf.number.greaterThanOrEquals("stride", stride, 3);
    //>>includeEnd('debug');

    const cartesian = new Cartesian3();
    const numElements = typedArray.length / stride;
    const result = {
      [Symbol.iterator]: function* () {
        for (let i = 0; i < numElements; i++) {
          cartesian.x = typedArray[i * stride + 0];
          cartesian.y = typedArray[i * stride + 1];
          cartesian.z = typedArray[i * stride + 2];
          yield cartesian;
        }
      },
    };
    return result;
  }
Creates an iterable over `Cartesian3` objects from the given
typed array.

The resulting iterable will always return the same `Cartesian3`
object. Clients should not store and modify this object.

@param {TypedArray} typedArray The typed array
@param {number} stride The stride between to consecutive
`Cartesian3` elements in the given array. Must be at least 3.
@returns {Iterable<Cartesian3>} The iterable