瀏覽代碼

Merge pull request #13876 from Mugen87/dev3

OutlinePass: Honor visibility state
Mr.doob 7 年之前
父節點
當前提交
b7ab5569bf
共有 1 個文件被更改,包括 17 次插入3 次删除
  1. 17 3
      examples/js/postprocessing/OutlinePass.js

+ 17 - 3
examples/js/postprocessing/OutlinePass.js

@@ -163,7 +163,21 @@ THREE.OutlinePass.prototype = Object.assign( Object.create( THREE.Pass.prototype
 
 		function gatherSelectedMeshesCallBack( object ) {
 
-			if ( object instanceof THREE.Mesh ) object.visible = bVisible;
+			if ( object.isMesh ) {
+
+				if ( bVisible ) {
+
+					object.visible = object.userData.oldVisible;
+					delete object.userData.oldVisible;
+
+				} else {
+
+					object.userData.oldVisible = object.visible;
+					object.visible = bVisible;
+
+				}
+
+			}
 
 		}
 
@@ -182,7 +196,7 @@ THREE.OutlinePass.prototype = Object.assign( Object.create( THREE.Pass.prototype
 
 		function gatherSelectedMeshesCallBack( object ) {
 
-			if ( object instanceof THREE.Mesh ) selectedMeshes.push( object );
+			if ( object.isMesh ) selectedMeshes.push( object );
 
 		}
 
@@ -195,7 +209,7 @@ THREE.OutlinePass.prototype = Object.assign( Object.create( THREE.Pass.prototype
 
 		function VisibilityChangeCallBack( object ) {
 
-			if ( object instanceof THREE.Mesh || object instanceof THREE.Line || object instanceof THREE.Sprite ) {
+			if ( object.isMesh || object.isLine || object.isSprite ) {
 
 				var bFound = false;