function PntsLoader(options) {
  options = options ?? Frozen.EMPTY_OBJECT;

  const arrayBuffer = options.arrayBuffer;
  const byteOffset = options.byteOffset ?? 0;

  //>>includeStart('debug', pragmas.debug);
  Check.typeOf.object("options.arrayBuffer", arrayBuffer);
  //>>includeEnd('debug');

  this._arrayBuffer = arrayBuffer;
  this._byteOffset = byteOffset;
  this._loadAttributesFor2D = options.loadAttributesFor2D ?? false;

  this._parsedContent = undefined;
  this._decodePromise = undefined;
  this._decodedAttributes = undefined;

  this._promise = undefined;
  this._error = undefined;
  this._state = ResourceLoaderState.UNLOADED;
  this._buffers = [];

  // The batch table object contains a json and a binary component access using keys of the same name.
  this._components = undefined;
  this._transform = Matrix4.IDENTITY;
}
Loads a .pnts point cloud and transcodes it into a {@link ModelComponents}

@alias PntsLoader
@constructor
@augments ResourceLoader
@private

@param {object} options An object containing the following properties
@param {ArrayBuffer} options.arrayBuffer The array buffer of the pnts contents
@param {number} [options.byteOffset] The byte offset to the beginning of the pnts contents in the array buffer
@param {boolean} [options.loadAttributesFor2D=false] If true, load the positions buffer as a typed array for accurately projecting models to 2D.