function EdgeSet(edgeIndices, originalVertexCount) {
  /**
   * Original number of vertices in the primitive. This is used for computing
   * the hash key
   *
   * @type {number}
   *
   * @private
   */
  this._originalVertexCount = originalVertexCount;

  /**
   * The internal hash set used to store the edges. Edges are hashed as follows:
   * <p>
   * smallerVertexIndex * originalVertexCount + biggerVertexIndex
   * <p>
   * @type {Set}
   *
   * @private
   */
  this._edges = new Set();
  for (let i = 0; i < edgeIndices.length; i += 2) {
    const a = edgeIndices[i];
    const b = edgeIndices[i + 1];
    const small = Math.min(a, b);
    const big = Math.max(a, b);
    const hash = small * this._originalVertexCount + big;
    this._edges.add(hash);
  }
}
A hash set that provides quick lookups of whether an edge exists between
two vertices.

@alias EdgeSet
@constructor

@param {number[]} edgeIndices An array of vertex indices with an even number of elements where each pair of indices defines an edge.
@param {number} originalVertexCount The original number of vertices. This is used for computing a hash function.

@private