diff Framework/Radiography/RadiographyScene.h @ 492:64d90190a08c am-touch-events

template GetLayer
author Alain Mazy <alain@mazy.be>
date Wed, 20 Feb 2019 20:57:43 +0100
parents aede9b042cb7
children 77e0eb83ff63
line wrap: on
line diff
--- a/Framework/Radiography/RadiographyScene.h	Tue Feb 19 11:40:14 2019 +0100
+++ b/Framework/Radiography/RadiographyScene.h	Wed Feb 20 20:57:43 2019 +0100
@@ -174,6 +174,30 @@
 
     const RadiographyLayer& GetLayer(size_t layerIndex) const;
 
+    template <typename TypeLayer>
+    TypeLayer* GetLayer(size_t index = 0)
+    {
+      std::vector<size_t> layerIndexes;
+      GetLayersIndexes(layerIndexes);
+
+      size_t count = 0;
+
+      for (size_t i = 0; i < layerIndexes.size(); ++i)
+      {
+        TypeLayer* typedLayer = dynamic_cast<TypeLayer*>(layers_[layerIndexes[i]]);
+        if (typedLayer != NULL)
+        {
+          if (count == index)
+          {
+            return typedLayer;
+          }
+          count++;
+        }
+      }
+
+      return NULL;
+    }
+
     void GetLayersIndexes(std::vector<size_t>& output) const;
 
     Extent2D GetSceneExtent() const;