Sfoglia il codice sorgente

Fix TransformControl zoom for OrthographicCamera

Vladimir Jigouline 5 anni fa
parent
commit
a0535a3e1b

+ 4 - 0
examples/js/controls/TransformControls.js

@@ -1166,6 +1166,10 @@ THREE.TransformControlsGizmo = function () {
 			handle.position.copy( this.worldPosition );
 
 			var eyeDistance = this.worldPosition.distanceTo( this.cameraPosition );
+			// Orthographic camera zoom doesn't depend on eyeDistance, but on camera zoom factor.
+			if (this.camera.type == "OrthographicCamera") {
+				eyeDistance = 1000 / this.camera.zoom;
+			}
 			handle.scale.set( 1, 1, 1 ).multiplyScalar( eyeDistance * this.size / 7 );
 
 			// TODO: simplify helpers and consider decoupling from gizmo

+ 4 - 0
examples/jsm/controls/TransformControls.js

@@ -1189,6 +1189,10 @@ var TransformControlsGizmo = function () {
 			handle.position.copy( this.worldPosition );
 
 			var eyeDistance = this.worldPosition.distanceTo( this.cameraPosition );
+			// Orthographic camera zoom doesn't depend on eyeDistance, but on camera zoom factor.
+			if (this.camera.type == "OrthographicCamera") {
+				eyeDistance = 1000 / this.camera.zoom;
+			}
 			handle.scale.set( 1, 1, 1 ).multiplyScalar( eyeDistance * this.size / 7 );
 
 			// TODO: simplify helpers and consider decoupling from gizmo