Mercurial > hg > orthanc-stone
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; }