浏览代码

Editor: Trying OrbitControls instead.
TrackballControls can be a bit of a pain...

Mr.doob 12 年之前
父节点
当前提交
91376cc646
共有 3 个文件被更改,包括 15 次插入13 次删除
  1. 1 1
      editor/index.html
  2. 2 8
      editor/js/ui/Viewport.js
  3. 12 4
      examples/js/controls/OrbitControls.js

+ 1 - 1
editor/index.html

@@ -73,7 +73,7 @@
 	<body>
 
 		<script src="../build/three.js"></script>
-		<script src="../examples/js/controls/TrackballControls.js"></script>
+		<script src="../examples/js/controls/OrbitControls.js"></script>
 		<script src="../examples/js/loaders/BinaryLoader.js"></script>
 		<script src="../examples/js/loaders/ColladaLoader.js"></script>
 		<script src="../examples/js/loaders/OBJLoader.js"></script>

+ 2 - 8
editor/js/ui/Viewport.js

@@ -211,14 +211,8 @@ var Viewport = function ( signals ) {
 	// controls need to be added *after* main logic,
 	// otherwise controls.enabled doesn't work.
 
-	var controls = new THREE.TrackballControls( camera, container.dom );
-	controls.rotateSpeed = 1.0;
-	controls.zoomSpeed = 1.2;
-	controls.panSpeed = 0.8;
-	controls.noZoom = false;
-	controls.noPan = false;
-	controls.staticMoving = true;
-	controls.dynamicDampingFactor = 0.3;
+	var controls = new THREE.OrbitControls( camera, container.dom );
+	controls.userPanSpeed = 4.0;
 	controls.addEventListener( 'change', function () {
 
 		cameraChanged = true;

+ 12 - 4
examples/js/controls/OrbitControls.js

@@ -12,6 +12,8 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 	// API
 
+	this.enabled = true;
+
 	this.center = new THREE.Vector3();
 
 	this.userZoom = true;
@@ -215,7 +217,8 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 	function onMouseDown( event ) {
 
-		if ( !scope.userRotate ) return;
+		if ( scope.enabled === false ) return;
+		if ( scope.userRotate === false ) return;
 
 		event.preventDefault();
 
@@ -244,6 +247,8 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 	function onMouseMove( event ) {
 
+		if ( scope.enabled === false ) return;
+
 		event.preventDefault();
 
 		if ( state === STATE.ROTATE ) {
@@ -286,7 +291,8 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 	function onMouseUp( event ) {
 
-		if ( ! scope.userRotate ) return;
+		if ( scope.enabled === false ) return;
+		if ( scope.userRotate === false ) return;
 
 		document.removeEventListener( 'mousemove', onMouseMove, false );
 		document.removeEventListener( 'mouseup', onMouseUp, false );
@@ -297,7 +303,8 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 	function onMouseWheel( event ) {
 
-		if ( ! scope.userZoom ) return;
+		if ( scope.enabled === false ) return;
+		if ( scope.userZoom === false ) return;
 
 		var delta = 0;
 
@@ -325,7 +332,8 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 	function onKeyDown( event ) {
 
-		if ( ! scope.userPan ) return;
+		if ( scope.enabled === false ) return;
+		if ( scope.userPan === false ) return;
 
 		switch ( event.keyCode ) {