text: //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // WARNING: This file was auto-generated, any change will be overridden in next release. Please use configs/es6.conf.js then run "npm run convert". //
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  import { Float32BufferAttribute } from '../core/BufferAttribute.js'
  import { BufferGeometry } from '../core/BufferGeometry.js'
  import { Object3D } from '../core/Object3D.js'
  import { CylinderBufferGeometry } from '../geometries/CylinderGeometry.js'
  import { MeshBasicMaterial } from '../materials/MeshBasicMaterial.js'
  import { LineBasicMaterial } from '../materials/LineBasicMaterial.js'
  import { Mesh } from '../objects/Mesh.js'
  import { Line } from '../objects/Line.js'
  import { Vector3 } from '../math/Vector3.js'
  
  var lineGeometry, coneGeometry;
  
  function ArrowHelper( dir, origin, length, color, headLength, headWidth ) {
  
  	// dir is assumed to be normalized
  
  	Object3D.call( this );
  
  	if ( color === undefined ) color = 0xffff00;
  	if ( length === undefined ) length = 1;
  	if ( headLength === undefined ) headLength = 0.2 * length;
  	if ( headWidth === undefined ) headWidth = 0.2 * headLength;
  
  	if ( lineGeometry === undefined ) {
  
  		lineGeometry = new BufferGeometry();
  		lineGeometry.addAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 0, 1, 0 ], 3 ) );
  
  		coneGeometry = new CylinderBufferGeometry( 0, 0.5, 1, 5, 1 );
  		coneGeometry.translate( 0, - 0.5, 0 );
  
  	}
  
  	this.position.copy( origin );
  
  	this.line = new Line( lineGeometry, new LineBasicMaterial( { color: color } ) );
  	this.line.matrixAutoUpdate = false;
  	this.add( this.line );
  
  	this.cone = new Mesh( coneGeometry, new MeshBasicMaterial( { color: color } ) );
  	this.cone.matrixAutoUpdate = false;
  	this.add( this.cone );
  
  	this.setDirection( dir );
  	this.setLength( length, headLength, headWidth );
  
  }
  
  ArrowHelper.prototype = Object.create( Object3D.prototype );
  ArrowHelper.prototype.constructor = ArrowHelper;
  
  ArrowHelper.prototype.setDirection = ( function () {
  
  	var axis = new Vector3();
  	var radians;
  
  	return function setDirection( dir ) {
  
  		// dir is assumed to be normalized
  
  		if ( dir.y > 0.99999 ) {
  
  			this.quaternion.set( 0, 0, 0, 1 );
  
  		} else if ( dir.y < - 0.99999 ) {
  
  			this.quaternion.set( 1, 0, 0, 0 );
  
  		} else {
  
  			axis.set( dir.z, 0, - dir.x ).normalize();
  
  			radians = Math.acos( dir.y );
  
  			this.quaternion.setFromAxisAngle( axis, radians );
  
  		}
  
  	};
  
  }() );
  
  ArrowHelper.prototype.setLength = function ( length, headLength, headWidth ) {
  
  	if ( headLength === undefined ) headLength = 0.2 * length;
  	if ( headWidth === undefined ) headWidth = 0.2 * headLength;
  
  	this.line.scale.set( 1, Math.max( 0, length - headLength ), 1 );
  	this.line.updateMatrix();
  
  	this.cone.scale.set( headWidth, headLength, headWidth );
  	this.cone.position.y = length;
  	this.cone.updateMatrix();
  
  };
  
  ArrowHelper.prototype.setColor = function ( color ) {
  
  	this.line.material.color.copy( color );
  	this.cone.material.color.copy( color );
  
  };
  
  ;
  
  export { ArrowHelper }
  