| 
					
				 | 
			
			
				@@ -15,6 +15,13 @@ class doubleWindowYjl { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   playerStartClickTime1 = new Date().getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   playerStartClickTime2 = new Date().getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  mixers: THREE.AnimationMixer | undefined; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // fmClock = new THREE.Clock(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  clipActionArr = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    frontDoor: null as unknown as THREE.AnimationAction, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    backDoor: null as unknown as THREE.AnimationAction, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   constructor(model) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.model = model; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -157,28 +164,53 @@ class doubleWindowYjl { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.group.rotation.y += 0.00002 * 30 * this.direction; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // if (this.mixers && this.fmClock.running) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   this.mixers.update(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   /* 提取风门序列帧,初始化前后门动画 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   initAnimation() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const meshArr01: THREE.Object3D[] = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const meshArr02: THREE.Object3D[] = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const windowGroup = new THREE.Group(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    windowGroup.name = 'hiddenGroup'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    this.group.getObjectByName('sdFc')?.children.forEach((obj) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (obj.type === 'Mesh' && obj.name && (obj.name.startsWith('shanye') || obj.name.startsWith('FCshanye'))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (obj.name.startsWith('FCshanye')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          obj.rotateOnAxis(new THREE.Vector3(0, 1, 0), 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          meshArr01.push(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else if (obj.name.startsWith('shanye')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          obj.rotateOnAxis(new THREE.Vector3(0, 1, 0), 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          meshArr02.push(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    this.windowsActionArr.frontWindow = meshArr01; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    this.windowsActionArr.backWindow = meshArr02; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    this.group?.add(windowGroup); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const sdFcModal = this.group.getObjectByName('sdFc-yjl'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!sdFcModal) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 初始化窗的动画 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const fengchuang1 = sdFcModal?.getObjectByName('FengChuang'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const fengchuang2 = sdFcModal?.getObjectByName('FengChuang1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const meshArr01: THREE.Mesh[] = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const meshArr02: THREE.Mesh[] = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (fengchuang1 && fengchuang2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      fengchuang1.getObjectByName('chuang')?.children.forEach((item: THREE.Object3D) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        item.children.forEach((obj: THREE.Mesh) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (obj.name && obj.name.startsWith('shanye')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            obj.rotateOnAxis(new THREE.Vector3(0, 1, 0), 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            meshArr01.push(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      fengchuang2.getObjectByName('chuang001')?.children.forEach((item: THREE.Object3D) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        item.children.forEach((obj: THREE.Mesh) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (obj.name && obj.name.startsWith('d__FCshanye')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            obj.rotateOnAxis(new THREE.Vector3(0, 1, 0), 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            meshArr02.push(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.windowsActionArr.frontWindow = meshArr01; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.windowsActionArr.backWindow = meshArr02; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // // 初始化门的动画 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // this.mixers = new THREE.AnimationMixer(sdFcModal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // const frontDoor = sdFcModal?.animations[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // const frontClipAction = this.mixers.clipAction(frontDoor, sdFcModal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // frontClipAction.clampWhenFinished = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // frontClipAction.loop = THREE.LoopOnce; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // this.clipActionArr.frontDoor = frontClipAction; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // const backDoor = sdFcModal?.animations[1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // const backClipAction = this.mixers.clipAction(backDoor, sdFcModal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // backClipAction.clampWhenFinished = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // backClipAction.loop = THREE.LoopOnce; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // this.clipActionArr.backDoor = backClipAction; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   /* 点击风窗,风窗全屏 */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -236,119 +268,127 @@ class doubleWindowYjl { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  async initCamera(dom1?, dom2?) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const videoPlayer1 = dom1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const videoPlayer2 = dom2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let monitorPlane: THREE.Mesh | null = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (!videoPlayer1 || !videoPlayer2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const textArr = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          text: `无信号输入`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          font: 'normal 40px Arial', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          color: '#009900', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          strokeStyle: '#002200', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          x: 170, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          y: 40, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const canvas = await getTextCanvas(320, 180, '', 'noSinge.png'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      let textMaterial: THREE.MeshBasicMaterial | null = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (canvas) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const textMap = new THREE.CanvasTexture(canvas); // 关键一步 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        textMaterial = new THREE.MeshBasicMaterial({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          map: textMap, // 设置纹理贴图 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          transparent: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          side: THREE.DoubleSide, // 这里是双面渲染的意思 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        textMaterial.blending = THREE.CustomBlending; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // // 播放动画 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // doorPlay(handlerState, timeScale = 0.01) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   if (this.clipActionArr.frontDoor && this.clipActionArr.backDoor) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     let handler = () => {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     switch (handlerState) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       case 1: // 打开前门 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //         handler = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.frontDoor.paused = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.frontDoor.reset(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.frontDoor.time = 1.2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.frontDoor.timeScale = timeScale; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           // this.clipActionArr.frontDoor.clampWhenFinished = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.frontDoor.play(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.fmClock.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //         break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       case 2: // 关闭前门 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //         handler = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.frontDoor.paused = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.frontDoor.reset(); // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.frontDoor.time = 3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.frontDoor.timeScale = -timeScale; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           // this.clipActionArr.frontDoor.clampWhenFinished = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.frontDoor.play(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.fmClock.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //         break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       case 3: // 打开后门 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //         handler = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.backDoor.paused = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.backDoor.reset(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.backDoor.time = 1.2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.backDoor.timeScale = timeScale; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           // this.clipActionArr.backDoor.clampWhenFinished = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.backDoor.play(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.fmClock.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //         break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       case 4: // 关闭后门 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //         handler = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.backDoor.paused = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.backDoor.reset(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.backDoor.time = 3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.backDoor.timeScale = -timeScale; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           // this.clipActionArr.backDoor.clampWhenFinished = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.clipActionArr.backDoor.play(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //           this.fmClock.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //         break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       // case 5: // 打开前后门 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //   handler = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.backDoor.paused = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.frontDoor.paused = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const planeGeometry = new THREE.PlaneGeometry(100, 100); // 平面3维几何体PlaneGeometry 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        monitorPlane = new THREE.Mesh(planeGeometry, textMaterial); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.frontDoor.reset(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.frontDoor.time = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.frontDoor.timeScale = 0.01; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.frontDoor.clampWhenFinished = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.frontDoor.play(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        textMaterial.dispose(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        planeGeometry.dispose(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        textMap.dispose(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const player1 = this.group.getObjectByName('player1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (player1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      this.model.clearMesh(player1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      this.group.remove(player1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const noPlayer1 = this.group.getObjectByName('noPlayer1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (noPlayer1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      this.model.clearMesh(noPlayer1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      this.group.remove(noPlayer1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (!videoPlayer1 && videoPlayer1 === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (monitorPlane && !this.group.getObjectByName('noPlayer1')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const planeMesh = monitorPlane.clone(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        planeMesh.name = 'noPlayer1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        planeMesh.scale.set(0.011, 0.0053, 0.012); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        planeMesh.position.set(-4.3, 0.13, -0.23); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.group?.add(planeMesh.clone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else if (videoPlayer1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const mesh = renderVideo(this.group, videoPlayer1, 'player1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (mesh) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          mesh?.scale.set(-0.034, 0.024, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          mesh?.position.set(-3.332, 0.11, -0.23); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          mesh.rotation.y = -Math.PI; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          this.group.add(mesh); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } catch (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        console.log('视频信号异常'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const player2 = this.group.getObjectByName('player2'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (player2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      this.model.clearMesh(player2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      this.group.remove(player2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const noPlayer2 = this.group.getObjectByName('noPlayer2'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (noPlayer2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      this.model.clearMesh(noPlayer2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      this.group.remove(noPlayer2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (!videoPlayer2 && videoPlayer2 === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (monitorPlane && !this.group.getObjectByName('noPlayer2')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const planeMesh = monitorPlane.clone(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        planeMesh.name = 'noPlayer2'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        planeMesh.scale.set(0.0085, 0.0056, 0.012); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        planeMesh.position.set(4.29, 0.02, -0.41); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.group?.add(planeMesh.clone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else if (videoPlayer2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const mesh = renderVideo(this.group, videoPlayer2, 'player2'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (mesh) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          mesh?.scale.set(-0.034, 0.024, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          mesh?.position.set(-3.332, 0.11, -0.23); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          mesh.rotation.y = -Math.PI; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          this.group.add(mesh); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } catch (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        console.log('视频信号异常'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.backDoor.reset(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.backDoor.time = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.backDoor.timeScale = 0.01; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.backDoor.clampWhenFinished = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.backDoor.play(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.frontClock.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.backClock.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //   }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //   break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       // case 6: // 关闭前后门 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //   handler = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     debugger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.backDoor.paused = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.frontDoor.paused = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.frontDoor.reset(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.frontDoor.time = 4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.frontDoor.timeScale = -0.01; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.frontDoor.clampWhenFinished = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.frontDoor.play(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.backDoor.reset(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.backDoor.time = 4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.backDoor.timeScale = -0.01; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.backDoor.clampWhenFinished = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.clipActionArr.backDoor.play(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.frontClock.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //     this.backClock.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //   }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       //   break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     handler(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     // model.clock.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     // const honglvdeng = group.getObjectByName('honglvdeng'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     // const material = honglvdeng.material; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     // setTimeout(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     //   if (handlerState === 2 || handlerState === 4 || handlerState === 6) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     //     material.color = new THREE.Color(0x00ff00); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     //   } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     //     material.color = new THREE.Color(0xff0000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     // }, 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   mountedThree(playerDom) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return new Promise((resolve) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       this.model.setGLTFModel(['sdFc-yjl'], this.group).then(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(this.group); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.setModalPosition(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.initAnimation(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         resolve(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // this.initCamera(playerDom); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   destroy() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.model.clearGroup(this.group); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    this.windowsActionArr.frontWindow = undefined; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    this.windowsActionArr.backWindow = undefined; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.windowsActionArr.frontWindow = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.windowsActionArr.backWindow = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.model = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.group = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 |