deepsea 1 tahun lalu
induk
melakukan
62af1c0cbc
1 mengubah file dengan 35 tambahan dan 0 penghapusan
  1. 35 0
      src/uwb-sample.js

+ 35 - 0
src/uwb-sample.js

@@ -171,6 +171,7 @@ function getsqlData(sdkInstance, uwbInstance) {
                 color: 0x4AB22E
               });
               let sprite = new THREE.Sprite(spriteMaterial);
+              sprite.userData = customData;
               // sprite.scale.set(100, 100, 1);
               sprite.position.set(x, y+10, z);
 
@@ -293,6 +294,7 @@ function getsqlData(sdkInstance, uwbInstance) {
               });
               let sprite = new THREE.Sprite(spriteMaterial);
               // sprite.scale.set(100, 100, 1);
+              sprite.userData = customData;
               sprite.position.set(x, y+10, z);
 
               sdkInstance.sceneRenderer.scene.add(childMeshTmp)
@@ -486,6 +488,7 @@ export function uwbMain(domId, modelWidth, modelHeight, finalMode, callback) {
           if (intersects && intersects.length > 0) {
             let bFirst = true;
             let bool = false;
+            let bool1 = false;
             intersects.forEach(m => {
               if (m.object.geometry.type != "PlaneBufferGeometry") {
                 if (m.object.userData.benchFlag == true) {
@@ -517,9 +520,41 @@ export function uwbMain(domId, modelWidth, modelHeight, finalMode, callback) {
                   //m.object.material = FXAAShader
                 }
 
+              } else if (m.object.geometry.type == "PlaneBufferGeometry") {
+                if (m.object.userData.benchFlag == true) {
+                  window.handleListClick(m.object.userData.benchId)
+                }
+              }
+            })
+            bool = false;
+            bool1 = false;
+          }
+        }
+        canvas.onmouseover = (event) => {
+
+          let mouse = new THREE.Vector2();
+          let raycaster = new THREE.Raycaster();
+          mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
+          mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;
+
+
+          raycaster.setFromCamera(mouse, sdkInstance.player.camera);
+          let intersects = raycaster.intersectObjects(sdkInstance.sceneRenderer.scene.children);
+
+          if (intersects && intersects.length > 0) {
+            let bFirst = true;
+            let bool = false;
+            let bool1 = false;
+            intersects.forEach(m => {
+              if (m.object.geometry.type == "PlaneBufferGeometry") {
+                if (m.object.userData.benchFlag == true) {
+                  console.log('===== bench selected =====')
+                  // window.handleListClick(m.object.userData.benchId)
+                }
               }
             })
             bool = false;
+            bool1 = false;
           }
         }
         return;