diff Framework/Radiography/RadiographyScene.h @ 1279:7ec8fea061b9 broker

integration mainline->broker
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 04 Feb 2020 15:20:08 +0100
parents 0ca50d275b9a 398ea4259e65
children 379c00958553
line wrap: on
line diff
--- a/Framework/Radiography/RadiographyScene.h	Fri Jan 31 17:34:57 2020 +0100
+++ b/Framework/Radiography/RadiographyScene.h	Tue Feb 04 15:20:08 2020 +0100
@@ -37,6 +37,7 @@
     public ObserverBase<RadiographyScene>,
     public IObservable
   {
+    friend class RadiographySceneGeometryReader;
   public:
     class GeometryChangedMessage : public OriginMessage<RadiographyScene>
     {
@@ -168,8 +169,17 @@
     float   windowingWidth_;
     Layers  layers_;
 
+  public:
+    RadiographyLayer& RegisterLayer(RadiographyLayer* layer);
+
   protected:
-    RadiographyLayer& RegisterLayer(RadiographyLayer* layer);
+    virtual void _RegisterLayer(RadiographyLayer* layer);
+    virtual void _OnLayerRemoved() {}
+
+    void SetLayerIndex(RadiographyLayer* layer, size_t index)
+    {
+      layer->SetIndex(index);
+    }
 
     virtual void OnTagsReceived(const Deprecated::OrthancApiClient::BinaryResponseReadyMessage& message);
 
@@ -341,5 +351,9 @@
                                   int64_t maxValue /* for inversion */,
                                   bool applyWindowing);
 
+    void ExtractLayerFromRenderedScene(Orthanc::ImageAccessor& layer,
+                                       const Orthanc::ImageAccessor& renderedScene,
+                                       size_t layerIndex,
+                                       ImageInterpolation interpolation);
   };
 }