From e7cc5c5019777effc51fbb433502820f497bf6bd Mon Sep 17 00:00:00 2001
From: Xiao Gui <xgui3783@gmail.com>
Date: Thu, 15 Jun 2023 17:51:18 +0200
Subject: [PATCH] WIP fixed fsaverage issue, colin issue

TODO:

- annotation
- real space not yet available
- nehuba status panel busted
- check swc works
---
 package-lock.json                                |  8 ++++----
 package.json                                     |  2 +-
 src/state/atlasSelection/effects.ts              | 16 +++++++---------
 .../nehubaViewer/nehubaViewer.component.ts       |  9 ++++++++-
 4 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index ad97ac99c..ecb53104c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
         "@ngrx/effects": "^14.3.2",
         "@ngrx/store": "^14.3.2",
         "acorn": "^8.4.1",
-        "export-nehuba": "^0.1.0-dev.6",
+        "export-nehuba": "^0.1.0-dev.7",
         "file-loader": "^6.2.0",
         "jszip": "^3.6.0",
         "postcss": "^8.3.6",
@@ -26966,9 +26966,9 @@
       "dev": true
     },
     "node_modules/export-nehuba": {
-      "version": "0.1.0-dev.6",
-      "resolved": "https://registry.npmjs.org/export-nehuba/-/export-nehuba-0.1.0-dev.6.tgz",
-      "integrity": "sha512-+vfwJIKPP5ehK91fIH7eyx9GSeQt71CNPZj1zY5NG024SYM2oT5dsUheqhkIlQKQAfv50gn14ZnfDcVDsx1JPQ==",
+      "version": "0.1.0-dev.7",
+      "resolved": "https://registry.npmjs.org/export-nehuba/-/export-nehuba-0.1.0-dev.7.tgz",
+      "integrity": "sha512-hBDeOWo/OoThgfqa9RtRpYlPj0/5RwgBsoMjHKYMRqgsscoYglfPYaMSG57mANEIii4hxnsFiUUXOQTn2B2P+w==",
       "dependencies": {
         "pako": "^1.0.6"
       }
diff --git a/package.json b/package.json
index f280676b1..70a41160d 100644
--- a/package.json
+++ b/package.json
@@ -66,7 +66,7 @@
     "@ngrx/effects": "^14.3.2",
     "@ngrx/store": "^14.3.2",
     "acorn": "^8.4.1",
-    "export-nehuba": "^0.1.0-dev.6",
+    "export-nehuba": "^0.1.0-dev.7",
     "file-loader": "^6.2.0",
     "jszip": "^3.6.0",
     "postcss": "^8.3.6",
diff --git a/src/state/atlasSelection/effects.ts b/src/state/atlasSelection/effects.ts
index 816c23c24..5967e5102 100644
--- a/src/state/atlasSelection/effects.ts
+++ b/src/state/atlasSelection/effects.ts
@@ -63,19 +63,17 @@ export class Effect {
         })
       }
 
-      /**
-       * if either space name is undefined, return default state for navigation
-       */
-      if (!prevSpcName || !currSpcName) {
-        return of({
-          navigation: atlasSelection.defaultState.navigation
-        })
-      }
       return this.store.pipe(
         select(atlasSelection.selectors.navigation),
         take(1),
         switchMap(({ position, ...rest }) => 
-          this.interSpaceCoordXformSvc.transform(prevSpcName, currSpcName, position as [number, number, number]).pipe(
+        
+          /**
+           * if either space name is undefined, return default state for navigation
+           */
+          !prevSpcName || !currSpcName
+          ? of({ navigation: { position, ...rest } })
+          : this.interSpaceCoordXformSvc.transform(prevSpcName, currSpcName, position as [number, number, number]).pipe(
             map(value => {
               if (value.status === "error") {
                 return {}
diff --git a/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.ts b/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.ts
index ae079b9ff..46d230152 100644
--- a/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.ts
+++ b/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.ts
@@ -719,7 +719,14 @@ export class NehubaViewerUnit implements OnDestroy {
           [0, 1, 2].every(idx => p1[idx] === p2[idx]) &&
           z1 === z2
       })
-      .filter(() => !this.initNav)
+      /**
+       * somewhat another fudge factor
+       * navigationState.all occassionally emits slice zoom and perspective zoom that maeks no sense
+       * filter those out
+       * 
+       * TODO find out why, and perhaps inform pavel about this
+       */
+      .filter(val => !this.initNav && val?.perspectiveZoom > 10)
       .subscribe(({ orientation, perspectiveOrientation, perspectiveZoom, position, zoom }) => {
 
         this.viewerPositionChange.emit({
-- 
GitLab