comparison Framework/Loaders/OrthancSeriesVolumeProgressiveLoader.h @ 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 86ac61a040c9
children 4a593397b11c
comparison
equal deleted inserted replaced
948:141cc19e6b7d 949:32eaf4929b08
42 is stored in a Dicom series. 42 is stored in a Dicom series.
43 */ 43 */
44 class OrthancSeriesVolumeProgressiveLoader : 44 class OrthancSeriesVolumeProgressiveLoader :
45 public IObserver, 45 public IObserver,
46 public IObservable, 46 public IObservable,
47 public IVolumeSlicer 47 public IVolumeSlicer,
48 public IGeometryProvider
48 { 49 {
49 private: 50 private:
50 static const unsigned int LOW_QUALITY = 0; 51 static const unsigned int LOW_QUALITY = 0;
51 static const unsigned int MIDDLE_QUALITY = 1; 52 static const unsigned int MIDDLE_QUALITY = 1;
52 static const unsigned int BEST_QUALITY = 2; 53 static const unsigned int BEST_QUALITY = 2;
76 Clear(); 77 Clear();
77 } 78 }
78 79
79 void ComputeGeometry(SlicesSorter& slices); 80 void ComputeGeometry(SlicesSorter& slices);
80 81
81 bool HasGeometry() const 82 virtual bool HasGeometry() const
82 { 83 {
83 return geometry_.get() != NULL; 84 return geometry_.get() != NULL;
84 } 85 }
85 86
86 const VolumeImageGeometry& GetImageGeometry() const; 87 virtual const VolumeImageGeometry& GetImageGeometry() const;
87 88
88 const DicomInstanceParameters& GetSliceParameters(size_t index) const; 89 const DicomInstanceParameters& GetSliceParameters(size_t index) const;
89 90
90 uint64_t GetSliceRevision(size_t index) const; 91 uint64_t GetSliceRevision(size_t index) const;
91 92
137 /** 138 /**
138 This getter is used by clients that do not receive the geometry through 139 This getter is used by clients that do not receive the geometry through
139 subscribing, for instance if they are created or listening only AFTER the 140 subscribing, for instance if they are created or listening only AFTER the
140 "geometry loaded" message is broadcast 141 "geometry loaded" message is broadcast
141 */ 142 */
142 bool HasGeometry() const 143 bool HasGeometry() const ORTHANC_OVERRIDE
143 { 144 {
144 return seriesGeometry_.HasGeometry(); 145 return seriesGeometry_.HasGeometry();
145 } 146 }
146 147
147 /** 148 /**
148 Same remark as HasGeometry 149 Same remark as HasGeometry
149 */ 150 */
150 const VolumeImageGeometry& GetImageGeometry() const 151 const VolumeImageGeometry& GetImageGeometry() const ORTHANC_OVERRIDE
151 { 152 {
152 return seriesGeometry_.GetImageGeometry(); 153 return seriesGeometry_.GetImageGeometry();
153 } 154 }
154 155
155 /** 156 /**