diff Framework/Volumes/ImageBuffer3D.h @ 683:dbc1d8bfc68a

reorganizing ImageBuffer3D
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 16 May 2019 16:01:36 +0200
parents b70e9be013e4
children 7719eb852dd5
line wrap: on
line diff
--- a/Framework/Volumes/ImageBuffer3D.h	Thu May 16 14:26:11 2019 +0200
+++ b/Framework/Volumes/ImageBuffer3D.h	Thu May 16 16:01:36 2019 +0200
@@ -35,6 +35,8 @@
   {
   private:
     CoordinateSystem3D     axialGeometry_;
+    CoordinateSystem3D     coronalGeometry_;
+    CoordinateSystem3D     sagittalGeometry_;
     Vector                 voxelDimensions_;
     Orthanc::Image         image_;
     Orthanc::PixelFormat   format_;
@@ -45,6 +47,10 @@
     bool                   hasRange_;
     float                  minValue_;
     float                  maxValue_;
+    Matrix                 transform_;
+    Matrix                 transformInverse_;
+
+    void UpdateGeometry();
 
     void ExtendImageRange(const Orthanc::ImageAccessor& slice);
 
@@ -86,6 +92,16 @@
       return axialGeometry_;
     }
 
+    const CoordinateSystem3D& GetCoronalGeometry() const
+    {
+      return coronalGeometry_;
+    }
+
+    const CoordinateSystem3D& GetSagittalGeometry() const
+    {
+      return sagittalGeometry_;
+    }
+
     void SetVoxelDimensions(double x,
                             double y,
                             double z);
@@ -121,6 +137,7 @@
       return format_;
     }
 
+    // TODO - Remove
     ParallelSlices* GetGeometry(VolumeProjection projection) const;
     
     uint64_t GetEstimatedMemorySize() const;
@@ -166,6 +183,9 @@
                           float y,
                           float z) const;
 
+    bool DetectProjection(VolumeProjection& projection,
+                          const CoordinateSystem3D& plane) const;
+
 
     class SliceReader : public boost::noncopyable
     {