Kaynağa Gözat

Merge pull request #14763 from arodic/transform_controls_enabled_property

Added enabled property to TransformControls.
Mr.doob 7 yıl önce
ebeveyn
işleme
3f9ead8c0a

+ 16 - 1
examples/js/controls/TransformControls.js

@@ -24,6 +24,7 @@ THREE.TransformControls = function ( camera, domElement ) {
 
 
 	defineProperty( "camera", camera );
 	defineProperty( "camera", camera );
 	defineProperty( "object", undefined );
 	defineProperty( "object", undefined );
+	defineProperty( "enabled", true );
 	defineProperty( "axis", null );
 	defineProperty( "axis", null );
 	defineProperty( "mode", "translate" );
 	defineProperty( "mode", "translate" );
 	defineProperty( "translationSnap", null );
 	defineProperty( "translationSnap", null );
@@ -188,8 +189,16 @@ THREE.TransformControls = function ( camera, domElement ) {
 	// updateMatrixWorld  updates key transformation variables
 	// updateMatrixWorld  updates key transformation variables
 	this.updateMatrixWorld = function () {
 	this.updateMatrixWorld = function () {
 
 
+		if ( !scope.enabled ) {
+
+			this.visible = false;
+			return;
+
+		}
+
 		if ( this.object !== undefined ) {
 		if ( this.object !== undefined ) {
 
 
+			this.visible = true;
 			this.object.updateMatrixWorld();
 			this.object.updateMatrixWorld();
 			this.object.parent.matrixWorld.decompose( parentPosition, parentQuaternion, parentScale );
 			this.object.parent.matrixWorld.decompose( parentPosition, parentQuaternion, parentScale );
 			this.object.matrixWorld.decompose( worldPosition, worldQuaternion, worldScale );
 			this.object.matrixWorld.decompose( worldPosition, worldQuaternion, worldScale );
@@ -527,7 +536,7 @@ THREE.TransformControls = function ( camera, domElement ) {
 
 
 	function onPointerHover( event ) {
 	function onPointerHover( event ) {
 
 
-		// event.preventDefault();
+		if ( !scope.enabled ) return;
 
 
 		scope.pointerHover( getPointer( event ) );
 		scope.pointerHover( getPointer( event ) );
 
 
@@ -535,6 +544,8 @@ THREE.TransformControls = function ( camera, domElement ) {
 
 
 	function onPointerDown( event ) {
 	function onPointerDown( event ) {
 
 
+		if ( !scope.enabled ) return;
+
 		event.preventDefault();
 		event.preventDefault();
 		event.stopPropagation();
 		event.stopPropagation();
 
 
@@ -545,6 +556,8 @@ THREE.TransformControls = function ( camera, domElement ) {
 
 
 	function onPointerMove( event ) {
 	function onPointerMove( event ) {
 
 
+		if ( !scope.enabled ) return;
+
 		event.preventDefault();
 		event.preventDefault();
 		event.stopPropagation();
 		event.stopPropagation();
 
 
@@ -554,6 +567,8 @@ THREE.TransformControls = function ( camera, domElement ) {
 
 
 	function onPointerUp( event ) {
 	function onPointerUp( event ) {
 
 
+		if ( !scope.enabled ) return;
+
 		event.preventDefault(); // Prevent MouseEvent on mobile
 		event.preventDefault(); // Prevent MouseEvent on mobile
 
 
 		scope.pointerUp( getPointer( event ) );
 		scope.pointerUp( getPointer( event ) );

+ 6 - 1
examples/misc_controls_transform.html

@@ -37,7 +37,8 @@
 			<a href="javascript:control.setSpace( control.space === 'local' ? 'world' : 'local' );">"Q" toggle world/local space</a> | Hold "Ctrl" down to snap to grid<br />
 			<a href="javascript:control.setSpace( control.space === 'local' ? 'world' : 'local' );">"Q" toggle world/local space</a> | Hold "Ctrl" down to snap to grid<br />
 			<a href="javascript:control.showX = !control.showX">"X" toggle X</a> |
 			<a href="javascript:control.showX = !control.showX">"X" toggle X</a> |
 			<a href="javascript:control.showY = !control.showY">"Y" toggle Y</a> |
 			<a href="javascript:control.showY = !control.showY">"Y" toggle Y</a> |
-			<a href="javascript:control.showZ = !control.showZ">"Z" toggle Z</a><br />
+			<a href="javascript:control.showZ = !control.showZ">"Z" toggle Z</a> |
+			<a href="javascript:control.enabled = !control.enabled">"Spacebar" toggle enabled</a><br />
 		</div>
 		</div>
 
 
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
@@ -134,6 +135,10 @@
 							control.showZ = !control.showZ;
 							control.showZ = !control.showZ;
 							break;
 							break;
 
 
+						case 32: // Spacebar
+							control.enabled = !control.enabled;
+							break;
+
 					}
 					}
 
 
 				});
 				});