diff Framework/Radiography/RadiographyScene.h @ 421:f87f28624b96 cache-in-radiography

tentative to make SmartLoader and RadiographyScene work together (not really working)
author am@osimis.io
date Tue, 20 Nov 2018 16:35:29 +0100
parents aee3d7941c9b
children
line wrap: on
line diff
--- a/Framework/Radiography/RadiographyScene.h	Mon Nov 19 12:45:37 2018 +0100
+++ b/Framework/Radiography/RadiographyScene.h	Tue Nov 20 16:35:29 2018 +0100
@@ -22,11 +22,14 @@
 #pragma once
 
 #include "RadiographyLayer.h"
+#include <Framework/Layers/IVolumeSlicer.h>
 #include "../Toolbox/OrthancApiClient.h"
 
 
 namespace OrthancStone
 {
+  class IVolumeSlicer;
+
   class RadiographyScene :
     public IObserver,
     public IObservable
@@ -80,6 +83,8 @@
     float   windowingWidth_;
     Layers  layers_;
 
+    std::map<const IVolumeSlicer*, size_t> layersIndexBySlice_;
+
     RadiographyLayer& RegisterLayer(RadiographyLayer* layer);
 
     void OnTagsReceived(const OrthancApiClient::BinaryResponseReadyMessage& message);
@@ -90,6 +95,10 @@
 
     void OnDicomWebReceived(const IWebService::HttpRequestSuccessMessage& message);
 
+    void OnTagsReady(const IVolumeSlicer::TagsReadyMessage& message);
+
+    void OnImageReady(const IVolumeSlicer::FrameReadyMessage& message);
+
   public:
     RadiographyScene(MessageBroker& broker);
     
@@ -117,6 +126,8 @@
 
     RadiographyLayer& LoadDicomWebFrame(IWebService& web);
 
+    RadiographyLayer& SetFrame(IVolumeSlicer* slice);
+
     Extent2D GetSceneExtent() const;
 
     void Render(Orthanc::ImageAccessor& buffer,