Mercurial > hg > orthanc-stone
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 /** |