diff Framework/Volumes/VolumeImageGeometry.cpp @ 949:32eaf4929b08 toa2019081301

OrthancMultiframeVolumeLoader and OrthancSeriesVolumeProgressiveLoader now implement IGeometryProvider so that the geometry reference can be switched (CT or DOSE, for instance) + VolumeImageGeometry::SetSize renamed to VolumeImageGeometry::SetSizeInVoxels + prevent text layer update if text or properties do not change + a few stream operator<< for debug (Vector, Matrix,...) + fixed memory access aligment issues in ImageBuffer3D::ExtractSagittalSlice + fix for wrong screen Y offset of mpr slices in DicomVolumeImageMPRSlicer.
author Benjamin Golinvaux <bgo@osimis.io>
date Tue, 13 Aug 2019 16:01:05 +0200
parents ffec76a5f7eb
children 19b1c8caade4 2d8ab34c8c91
line wrap: on
line diff
--- a/Framework/Volumes/VolumeImageGeometry.cpp	Sat Aug 10 13:13:11 2019 +0200
+++ b/Framework/Volumes/VolumeImageGeometry.cpp	Tue Aug 13 16:01:05 2019 +0200
@@ -46,6 +46,8 @@
                                                 -0.5 * voxelDimensions_[1]) -
       0.5 * voxelDimensions_[2] * axialGeometry_.GetNormal());
 
+    LOG(TRACE) << "VolumeImageGeometry::Invalidate() origin = " << origin(0) << "," << origin(1) << "," << origin(2) << " | width_ = " << width_ << " | height_ = " << height_ << " | depth_ = " << depth_;
+
     Vector scaling;
     
     if (width_ == 0 ||
@@ -80,7 +82,7 @@
   }
 
 
-  void VolumeImageGeometry::SetSize(unsigned int width,
+  void VolumeImageGeometry::SetSizeInVoxels(unsigned int width,
                                     unsigned int height,
                                     unsigned int depth)
   {
@@ -323,4 +325,19 @@
 
     return plane;
   }
+
+  std::ostream& operator<<(std::ostream& s, const VolumeImageGeometry& v)
+  {
+    s << "width: " << v.width_ << " height: " << v.height_
+      << " depth: "             << v.depth_
+      << " axialGeometry: "     << v.axialGeometry_
+      << " coronalGeometry: "   << v.coronalGeometry_
+      << " sagittalGeometry: "  << v.sagittalGeometry_
+      << " voxelDimensions_: "  << v.voxelDimensions_
+      << " height: "            << v.height_
+      << " transform: "         << v.transform_
+      << " transformInverse: "  << v.transformInverse_;
+    return s;
+  }
+
 }