diff Framework/Radiography/RadiographyScene.h @ 1201:ab958fd99b07

RadiographyScene fixes
author Alain Mazy <alain@mazy.be>
date Fri, 29 Nov 2019 16:21:24 +0100
parents 922d2e61aa5d
children 9added0d371e
line wrap: on
line diff
--- a/Framework/Radiography/RadiographyScene.h	Thu Nov 28 18:28:15 2019 +0100
+++ b/Framework/Radiography/RadiographyScene.h	Fri Nov 29 16:21:24 2019 +0100
@@ -179,6 +179,7 @@
     void OnDicomWebReceived(const Deprecated::IWebService::HttpRequestSuccessMessage& message);
 
     virtual void OnLayerEdited(const RadiographyLayer::LayerEditedMessage& message);
+
   public:
     RadiographyScene(MessageBroker& broker);
     
@@ -201,7 +202,12 @@
                                unsigned int fontSize,
                                uint8_t foreground,
                                RadiographyLayer::Geometry* geometry);
-    
+
+    RadiographyLayer& UpdateText(size_t layerIndex,
+                                 const std::string& utf8,
+                                 unsigned int fontSize,
+                                 uint8_t foreground);
+
     RadiographyLayer& LoadTestBlock(unsigned int width,
                                     unsigned int height,
                                     RadiographyLayer::Geometry* geometry);
@@ -231,10 +237,12 @@
 
     void RemoveLayer(size_t layerIndex);
 
+    RadiographyLayer& GetLayer(size_t layerIndex);
+
     const RadiographyLayer& GetLayer(size_t layerIndex) const;
 
     template <typename TypeLayer>
-    TypeLayer* GetLayer(size_t index = 0)
+    TypeLayer* GetTypedLayer(size_t indexOfType = 0)
     {
       std::vector<size_t> layerIndexes;
       GetLayersIndexes(layerIndexes);
@@ -246,31 +254,7 @@
         TypeLayer* typedLayer = dynamic_cast<TypeLayer*>(layers_[layerIndexes[i]]);
         if (typedLayer != NULL)
         {
-          if (count == index)
-          {
-            return typedLayer;
-          }
-          count++;
-        }
-      }
-
-      return NULL;
-    }
-
-    template <typename TypeLayer>
-    const TypeLayer* GetLayer(size_t index = 0) const
-    {
-      std::vector<size_t> layerIndexes;
-      GetLayersIndexes(layerIndexes);
-
-      size_t count = 0;
-
-      for (size_t i = 0; i < layerIndexes.size(); ++i)
-      {
-        const TypeLayer* typedLayer = dynamic_cast<const TypeLayer*>(layers_.at(layerIndexes[i]));
-        if (typedLayer != NULL)
-        {
-          if (count == index)
+          if (count == indexOfType)
           {
             return typedLayer;
           }