function TextureReader() {
  /**
   * The underlying GPU texture. The {@link Texture} contains the sampler.
   *
   * @type {Texture}
   * @private
   */
  this.texture = undefined;

  /**
   * The index of the texture in the glTF. This is useful for determining
   * when textures are shared to avoid attaching a texture in multiple uniform
   * slots in the shader.
   *
   * @type {number}
   * @private
   */
  this.index = undefined;

  /**
   * The texture coordinate set.
   *
   * @type {number}
   * @default 0
   * @private
   */
  this.texCoord = 0;

  /**
   * Transformation matrix to apply to texture coordinates.
   *
   * @type {Matrix3}
   * @default Matrix3.IDENTITY
   */
  this.transform = Matrix3.clone(Matrix3.IDENTITY);

  /**
   * Scale to apply to texture values.
   *
   * @type {number}
   * @default 1.0
   * @private
   */
  this.scale = 1.0;

  /**
   * The texture channels to read from. When undefined all channels are read.
   *
   * @type {string}
   */
  this.channels = undefined;
}
Information about a GPU texture, including the texture itself

@alias ModelComponents.TextureReader
@constructor

@private