Jelajahi Sumber

ground mirror renderlist update function

Raanan Weber 7 tahun lalu
induk
melakukan
c21daea52e
1 mengubah file dengan 19 tambahan dan 2 penghapusan
  1. 19 2
      Viewer/src/viewer/sceneManager.ts

+ 19 - 2
Viewer/src/viewer/sceneManager.ts

@@ -900,8 +900,25 @@ export class SceneManager {
             shadownMap.renderList = []
         }
         for (var index = 0; index < focusMeshes.length; index++) {
-            if (Tags.MatchesQuery(focusMeshes[index], 'castShadow')) {
-                shadownMap.renderList.push(focusMeshes[index]);
+            let mesh = focusMeshes[index];
+            if (Tags.MatchesQuery(mesh, 'castShadow') && shadownMap.renderList.indexOf(mesh) === -1) {
+                shadownMap.renderList.push(mesh);
+            }
+        }
+    }
+
+    private _updateGroundMirrorRenderList(model?: ViewerModel, resetList?: boolean) {
+        if (this.environmentHelper.groundMirror && this.environmentHelper.groundMirror.renderList) {
+            let focusMeshes = model ? model.meshes : this.scene.meshes;
+            let renderList = this.environmentHelper.groundMirror.renderList;
+            if (resetList) {
+                renderList.length = 0;
+            }
+            for (var index = 0; index < focusMeshes.length; index++) {
+                let mesh = focusMeshes[index];
+                if (renderList.indexOf(mesh) === -1) {
+                    renderList.push(mesh);
+                }
             }
         }
     }