Bladeren bron

fixed scene update

Alexander Rose 6 jaren geleden
bovenliggende
commit
0739a5e632
3 gewijzigde bestanden met toevoegingen van 9 en 10 verwijderingen
  1. 0 2
      src/mol-gl/renderer.ts
  2. 7 3
      src/mol-gl/scene.ts
  3. 2 5
      src/mol-view/viewer.ts

+ 0 - 2
src/mol-gl/renderer.ts

@@ -121,8 +121,6 @@ namespace Renderer {
             ValueCell.update(globalUniforms.uFogNear, camera.fogNear)
 
             currentProgramId = -1
-            // scene.unsetBoundingSphere()
-            // console.log('scene.boundingSphere', scene.boundingSphere)
 
             gl.depthMask(true)
             gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)

+ 7 - 3
src/mol-gl/scene.ts

@@ -45,7 +45,6 @@ interface Scene extends Object3D {
     forEach: (callbackFn: (value: Renderable<any>, key: RenderObject) => void) => void
     eachOpaque: (callbackFn: (value: Renderable<any>, key: RenderObject) => void) => void
     eachTransparent: (callbackFn: (value: Renderable<any>, key: RenderObject) => void) => void
-    unsetBoundingSphere: () => void
 }
 
 namespace Scene {
@@ -57,7 +56,13 @@ namespace Scene {
 
         return {
             // ...createObject3D(), // TODO does not work in conjunction with getter
-            view, position, up, direction, update,
+            view, position, up, direction,
+
+            update: () => {
+                update()
+                renderableMap.forEach((o, r) => o.update())
+                boundingSphere = undefined
+            },
             
             add: (o: RenderObject) => {
                 if (!renderableMap.has(o)) {
@@ -93,7 +98,6 @@ namespace Scene {
                     if (o.values.uAlpha.ref.value < 1) callbackFn(r, o)
                 })
             },
-            unsetBoundingSphere: () => boundingSphere = undefined,
             get count() {
                 return renderableMap.size
             },

+ 2 - 5
src/mol-view/viewer.ts

@@ -269,7 +269,7 @@ namespace Viewer {
                 if (oldRO) {
                     SetUtils.difference(newRO, oldRO).forEach(o => scene.add(o))
                     SetUtils.difference(oldRO, newRO).forEach(o => scene.remove(o))
-                    // scene.update()
+                    scene.update()
                 } else {
                     repr.renderObjects.forEach(o => scene.add(o))
                 }
@@ -284,10 +284,7 @@ namespace Viewer {
                     reprCount.next(reprMap.size)
                 }
             },
-            update: () => {
-                scene.forEach((r, o) => r.update())
-                scene.unsetBoundingSphere()
-            },
+            update: () => scene.update(),
             clear: () => {
                 reprMap.clear()
                 scene.clear()