dist/bas.module.js
function MultiPrefabBufferGeometry(prefabs, repeatCount) {
  BufferGeometry.call(this);

  if (Array.isArray(prefabs)) {
    this.prefabGeometries = prefabs;
  } else {
    this.prefabGeometries = [prefabs];
  }

  this.prefabGeometriesCount = this.prefabGeometries.length;

  /**
   * Number of prefabs.
   * @type {Number}
   */
  this.prefabCount = repeatCount * this.prefabGeometriesCount;
  /**
   * How often the prefab array is repeated.
   * @type {Number}
   */
  this.repeatCount = repeatCount;

  /**
   * Array of vertex counts per prefab.
   * @type {Array}
   */
  this.prefabVertexCounts = this.prefabGeometries.map(function (p) {
    return p.isBufferGeometry ? p.attributes.position.count : p.vertices.length;
  });
  /**
   * Total number of vertices for one repetition of the prefabs
   * @type {number}
   */
  this.repeatVertexCount = this.prefabVertexCounts.reduce(function (r, v) {
    return r + v;
  }, 0);

  this.bufferIndices();
  this.bufferPositions();
}
function MultiPrefabBufferGeometry(prefabs, repeatCount) {
  BufferGeometry.call(this);

  if (Array.isArray(prefabs)) {
    this.prefabGeometries = prefabs;
  } else {
    this.prefabGeometries = [prefabs];
  }

  this.prefabGeometriesCount = this.prefabGeometries.length;

  /**
   * Number of prefabs.
   * @type {Number}
   */
  this.prefabCount = repeatCount * this.prefabGeometriesCount;
  /**
   * How often the prefab array is repeated.
   * @type {Number}
   */
  this.repeatCount = repeatCount;

  /**
   * Array of vertex counts per prefab.
   * @type {Array}
   */
  this.prefabVertexCounts = this.prefabGeometries.map(function (p) {
    return p.isBufferGeometry ? p.attributes.position.count : p.vertices.length;
  });
  /**
   * Total number of vertices for one repetition of the prefabs
   * @type {number}
   */
  this.repeatVertexCount = this.prefabVertexCounts.reduce(function (r, v) {
    return r + v;
  }, 0);

  this.bufferIndices();
  this.bufferPositions();
}
function MultiPrefabBufferGeometry ( prefabs , repeatCount ) { BufferGeometry . call ( this ) ; if ( Array . isArray ( prefabs ) ) { this . prefabGeometries = prefabs ; } else { this . prefabGeometries = [ prefabs ] ; } this . prefabGeometriesCount = this . prefabGeometries . length ; /**
   * Number of prefabs.
   * @type {Number}
   */ this . prefabCount = repeatCount * this . prefabGeometriesCount ; /**
   * How often the prefab array is repeated.
   * @type {Number}
   */ this . repeatCount = repeatCount ; /**
   * Array of vertex counts per prefab.
   * @type {Array}
   */ this . prefabVertexCounts = this . prefabGeometries . map ( function ( p ) { return p . isBufferGeometry ? p . attributes . position . count : p . vertices . length ; } ) ; /**
   * Total number of vertices for one repetition of the prefabs
   * @type {number}
   */ this . repeatVertexCount = this . prefabVertexCounts . reduce ( function ( r , v ) { return r + v ; } , 0 ) ; this . bufferIndices ( ) ; this . bufferPositions ( ) ; }
A BufferGeometry where a 'prefab' geometry array is repeated a number of times.

@param {Array} prefabs An array with Geometry instances to repeat.
@param {Number} repeatCount The number of times to repeat the array of Geometries.
@constructor
A BufferGeometry where a prefab geometry array is repeated a number of times .