Mercurial > hg > orthanc-stone
comparison 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 |
comparison
equal
deleted
inserted
replaced
2008:37d6805b80ee | 2026:04148de691a7 |
---|---|
3528 deepLearningFrameNumber_ = frameNumber; | 3528 deepLearningFrameNumber_ = frameNumber; |
3529 deepLearningMask_.reset(Orthanc::Image::Clone(mask)); | 3529 deepLearningMask_.reset(Orthanc::Image::Clone(mask)); |
3530 Redraw(); | 3530 Redraw(); |
3531 } | 3531 } |
3532 } | 3532 } |
3533 | |
3534 | |
3535 void SignalSynchronizedBrowsing() | |
3536 { | |
3537 if (synchronizationEnabled_ && | |
3538 frames_.get() != NULL && | |
3539 cursor_.get() != NULL) | |
3540 { | |
3541 const size_t currentCursorIndex = cursor_->GetCurrentIndex(); | |
3542 | |
3543 const OrthancStone::CoordinateSystem3D current = | |
3544 frames_->GetFrameGeometry(currentCursorIndex); | |
3545 | |
3546 observer_->SignalSynchronizedBrowsing( | |
3547 *this, current.GetOrigin() + synchronizationOffset_, current.GetNormal()); | |
3548 } | |
3549 } | |
3533 }; | 3550 }; |
3534 | 3551 |
3535 | 3552 |
3536 | 3553 |
3537 | 3554 |
4490 int DecrementFrame(const char* canvas, | 4507 int DecrementFrame(const char* canvas, |
4491 int isCircular) | 4508 int isCircular) |
4492 { | 4509 { |
4493 try | 4510 try |
4494 { | 4511 { |
4495 return GetViewport(canvas)->ChangeFrame(SeriesCursor::Action_Minus, isCircular) ? 1 : 0; | 4512 bool changed = GetViewport(canvas)->ChangeFrame(SeriesCursor::Action_Minus, isCircular); |
4513 GetViewport(canvas)->SignalSynchronizedBrowsing(); | |
4514 return changed ? 1 : 0; | |
4496 } | 4515 } |
4497 EXTERN_CATCH_EXCEPTIONS; | 4516 EXTERN_CATCH_EXCEPTIONS; |
4498 return 0; | 4517 return 0; |
4499 } | 4518 } |
4500 | 4519 |
4503 int IncrementFrame(const char* canvas, | 4522 int IncrementFrame(const char* canvas, |
4504 int isCircular) | 4523 int isCircular) |
4505 { | 4524 { |
4506 try | 4525 try |
4507 { | 4526 { |
4508 return GetViewport(canvas)->ChangeFrame(SeriesCursor::Action_Plus, isCircular) ? 1 : 0; | 4527 bool changed = GetViewport(canvas)->ChangeFrame(SeriesCursor::Action_Plus, isCircular); |
4528 GetViewport(canvas)->SignalSynchronizedBrowsing(); | |
4529 return changed ? 1 : 0; | |
4509 } | 4530 } |
4510 EXTERN_CATCH_EXCEPTIONS; | 4531 EXTERN_CATCH_EXCEPTIONS; |
4511 return 0; | 4532 return 0; |
4512 } | 4533 } |
4513 | 4534 |
4519 try | 4540 try |
4520 { | 4541 { |
4521 if (frameNumber >= 0) | 4542 if (frameNumber >= 0) |
4522 { | 4543 { |
4523 GetViewport(canvas)->SetFrame(static_cast<unsigned int>(frameNumber)); | 4544 GetViewport(canvas)->SetFrame(static_cast<unsigned int>(frameNumber)); |
4545 GetViewport(canvas)->SignalSynchronizedBrowsing(); | |
4524 } | 4546 } |
4525 } | 4547 } |
4526 EXTERN_CATCH_EXCEPTIONS; | 4548 EXTERN_CATCH_EXCEPTIONS; |
4527 } | 4549 } |
4528 | 4550 |
4531 void GoToFirstFrame(const char* canvas) | 4553 void GoToFirstFrame(const char* canvas) |
4532 { | 4554 { |
4533 try | 4555 try |
4534 { | 4556 { |
4535 GetViewport(canvas)->GoToFirstFrame(); | 4557 GetViewport(canvas)->GoToFirstFrame(); |
4558 GetViewport(canvas)->SignalSynchronizedBrowsing(); | |
4536 } | 4559 } |
4537 EXTERN_CATCH_EXCEPTIONS; | 4560 EXTERN_CATCH_EXCEPTIONS; |
4538 } | 4561 } |
4539 | 4562 |
4540 | 4563 |
4542 void GoToLastFrame(const char* canvas) | 4565 void GoToLastFrame(const char* canvas) |
4543 { | 4566 { |
4544 try | 4567 try |
4545 { | 4568 { |
4546 GetViewport(canvas)->GoToLastFrame(); | 4569 GetViewport(canvas)->GoToLastFrame(); |
4570 GetViewport(canvas)->SignalSynchronizedBrowsing(); | |
4547 } | 4571 } |
4548 EXTERN_CATCH_EXCEPTIONS; | 4572 EXTERN_CATCH_EXCEPTIONS; |
4549 } | 4573 } |
4550 | 4574 |
4551 | 4575 |