readFaceArray( data, mesh ) {

			const chunk = this.readChunk( data );
			const faces = this.readWord( data );
			this.debugMessage( '   Faces: ' + faces );
			const index = [];

			for ( let i = 0; i < faces; ++ i ) {

				index.push( this.readWord( data ), this.readWord( data ), this.readWord( data ) );
				this.readWord( data ); // visibility

			}

			mesh.geometry.setIndex( index ); //The rest of the FACE_ARRAY chunk is subchunks

			let materialIndex = 0;
			let start = 0;

			while ( this.position < chunk.end ) {

				const subchunk = this.readChunk( data );

				if ( subchunk.id === MSH_MAT_GROUP ) {

					this.debugMessage( '      Material THREE.Group' );
					this.resetPosition( data );
					const group = this.readMaterialGroup( data );
					const count = group.index.length * 3; // assuming successive indices

					mesh.geometry.addGroup( start, count, materialIndex );
					start += count;
					materialIndex ++;
					const material = this.materials[ group.name ];
					if ( Array.isArray( mesh.material ) === false ) mesh.material = [];

					if ( material !== undefined ) {

						mesh.material.push( material );

					}

				} else {

					this.debugMessage( '      Unknown face array chunk: ' + subchunk.toString( 16 ) );

				}

				this.endChunk( subchunk );

			}

			if ( mesh.material.length === 1 ) mesh.material = mesh.material[ 0 ]; // for backwards compatibility

			this.endChunk( chunk );

		}
Read face array data chunk.

@method readFaceArray
@param {Dataview} data Dataview in use.
@param {Mesh} mesh THREE.Mesh to be filled with the data read.