diff Framework/Inputs/DicomPyramidLevel.h @ 55:b6432a00b103

use of simpler data structures
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 24 Nov 2016 14:44:11 +0100
parents 4a7a53257c7d
children 83cd735c885d
line wrap: on
line diff
--- a/Framework/Inputs/DicomPyramidLevel.h	Thu Nov 24 12:59:50 2016 +0100
+++ b/Framework/Inputs/DicomPyramidLevel.h	Thu Nov 24 14:44:11 2016 +0100
@@ -29,17 +29,28 @@
   class DicomPyramidLevel : public boost::noncopyable
   {
   private:
-    typedef std::pair<unsigned int, unsigned int>                 TileLocation;
-    typedef std::pair<const DicomPyramidInstance*, unsigned int>  TileContent;
-    typedef std::map<TileLocation, TileContent>                   Tiles;
-    typedef std::list<const DicomPyramidInstance*>                Instances;
+    struct TileContent
+    {
+      const DicomPyramidInstance*  instance_;
+      unsigned int                 frame_;
 
-    unsigned int   totalWidth_;
-    unsigned int   totalHeight_;
-    unsigned int   tileWidth_;
-    unsigned int   tileHeight_;
-    Instances      instances_;
-    Tiles          tiles_;
+      TileContent() : 
+        instance_(NULL),
+        frame_(0)
+      {
+      }
+    };
+
+    unsigned int             totalWidth_;
+    unsigned int             totalHeight_;
+    unsigned int             tileWidth_;
+    unsigned int             tileHeight_;
+    unsigned int             countTilesX_;
+    unsigned int             countTilesY_;
+    std::vector<TileContent> tiles_;
+
+    TileContent& GetTileContent(unsigned int tileX,
+                                unsigned int tileY);
 
     void RegisterFrame(const DicomPyramidInstance& instance,
                        unsigned int frame);