Toggle Orbit

three.js html and js Camera1 pan & Dolly very slow initiaally.

by steveow

HTML

<script src="http://threejs.org/build/three.min.js"></script>
<script src="http://threejs.org/examples/js/controls/OrbitControls.js"></script>

<h1 id="title_A">Toggle Orbit. Bugs c1: PAN + DOLLY</h1>	 
<input type="submit" id="byBtn1" value="Switch Camera" onclick="F_Switch_Camera()" />	
<input type="text" id="myTextField" value="camera1" />	
<input type="submit" id="byBtn2" value="Reset Camera1" onclick="F_Reset_Camera1()" />
<input type="submit" id="byBtn3" value="Reset Camera2" onclick="F_Reset_Camera2()" />	
<div id="container"></div>

CSS

#container 
		{
		  height: 100%;
		  width: 100%;
		  min-height: 100%;
		  min-width: 100%;
		}

JavaScript

// Variables
var cameraDistance      = 500;
var cameraFOV           = 45;
var lightD              = 20;
var sphereRadius        = 20;

//var SelectedCameraString = "camera" ;
var camera1, camera2, RenderCamera;
var controls, controls1, controls2;

// Scene
  var scene = new THREE.Scene();

// Renderer
  var renderer = new THREE.WebGLRenderer();
  renderer.setClearColor( 0x008888 ); //scene.fog.color ); 
   renderer.setPixelRatio( window.devicePixelRatio );
  renderer.setSize( window.innerWidth, window.innerHeight );
  renderer.sortObjects = false;

  document.getElementById('container').appendChild( renderer.domElement );

// LIGHTS

//scene.add( new THREE.AmbientLight( 0xffffff ) );

var directionalLight = new THREE.DirectionalLight( 0xffffff, 0.5 );
directionalLight.position.set( 0, 1, 0 );
scene.add( directionalLight );

/* causes errors
var light1 = new THREE.PointLight(0xffffff);
light1.position.set(-5400, 1400, -1400);
scene.add(light1);
*/

//... camera1
  
camera1Fov = 75;
camera1Far = 1200;
camera1 = new THREE.PerspectiveCamera( camera1Fov, window.innerWidth / window.innerHeight, 1, camera1Far );
//camera1.position.z = camera1Far;
camera1.position.set(0,0,1); //... NB (0,0,0) causes OrbitControls to Freeze.


	// Near & Far Plane dimensions
	c1_hNear = 2 * Math.tan(camera1.fov * Math.PI / 180 / 2) * camera1.near; // CHANGED - deg to radians
	c1_wNear = c1_hNear * camera1.aspect; // width

	c1_hFar = 2 * Math.tan(camera1.fov * Math.PI / 180 / 2) * camera1.far; // CHANGED - deg to radians
	c1_wFar = c1_hFar * camera1.aspect; // width

	//... Frustrum Vertex Points
	//... far
	var camera1_farTopLeft 		= new THREE.Vector3(-c1_wFar / 2,  c1_hFar / 2, -camera1.far); // CHANGED - sign flips
	var camera1_farBottomRight 	= new THREE.Vector3( c1_wFar / 2, -c1_hFar / 2, -camera1.far);
	var camera1_farTopRight 	= new THREE.Vector3( c1_wFar / 2,  c1_hFar / 2, -camera1.far);
	var camera1_farBottomLeft 	= new THREE.Vector3(-c1_wFar / 2, -c1_hFar / 2,...