diff Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp @ 2026:04148de691a7 deep-learning

integration mainline->deep-learning
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 05 Dec 2022 08:29:49 +0100
parents 37d6805b80ee 6099c7925202
children a56f7ed0cdf9
line wrap: on
line diff
--- a/Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp	Fri Nov 18 00:37:00 2022 +0100
+++ b/Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp	Mon Dec 05 08:29:49 2022 +0100
@@ -3530,6 +3530,23 @@
       Redraw();
     }
   }
+
+  
+  void SignalSynchronizedBrowsing()
+  {
+    if (synchronizationEnabled_ &&
+        frames_.get() != NULL &&
+        cursor_.get() != NULL)
+    {
+      const size_t currentCursorIndex = cursor_->GetCurrentIndex();
+
+      const OrthancStone::CoordinateSystem3D current =
+        frames_->GetFrameGeometry(currentCursorIndex);
+      
+      observer_->SignalSynchronizedBrowsing(
+        *this, current.GetOrigin() + synchronizationOffset_, current.GetNormal());
+    }
+  }
 };
 
 
@@ -4492,7 +4509,9 @@
   {
     try
     {
-      return GetViewport(canvas)->ChangeFrame(SeriesCursor::Action_Minus, isCircular) ? 1 : 0;
+      bool changed = GetViewport(canvas)->ChangeFrame(SeriesCursor::Action_Minus, isCircular);
+      GetViewport(canvas)->SignalSynchronizedBrowsing();
+      return changed ? 1 : 0;
     }
     EXTERN_CATCH_EXCEPTIONS;
     return 0;
@@ -4505,7 +4524,9 @@
   {
     try
     {
-      return GetViewport(canvas)->ChangeFrame(SeriesCursor::Action_Plus, isCircular) ? 1 : 0;
+      bool changed = GetViewport(canvas)->ChangeFrame(SeriesCursor::Action_Plus, isCircular);
+      GetViewport(canvas)->SignalSynchronizedBrowsing();
+      return changed ? 1 : 0;
     }
     EXTERN_CATCH_EXCEPTIONS;
     return 0;
@@ -4521,6 +4542,7 @@
       if (frameNumber >= 0)
       {
         GetViewport(canvas)->SetFrame(static_cast<unsigned int>(frameNumber));
+        GetViewport(canvas)->SignalSynchronizedBrowsing();
       }
     }
     EXTERN_CATCH_EXCEPTIONS;
@@ -4533,6 +4555,7 @@
     try
     {
       GetViewport(canvas)->GoToFirstFrame();
+      GetViewport(canvas)->SignalSynchronizedBrowsing();
     }
     EXTERN_CATCH_EXCEPTIONS;
   }
@@ -4544,6 +4567,7 @@
     try
     {
       GetViewport(canvas)->GoToLastFrame();
+      GetViewport(canvas)->SignalSynchronizedBrowsing();
     }
     EXTERN_CATCH_EXCEPTIONS;
   }