Mercurial > hg > orthanc-stone
comparison Framework/Loaders/OrthancMultiframeVolumeLoader.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 | 86ac61a040c9 |
children | a7351ad54960 |
comparison
equal
deleted
inserted
replaced
948:141cc19e6b7d | 949:32eaf4929b08 |
---|---|
222 const unsigned int height = parameters.GetImageInformation().GetHeight(); | 222 const unsigned int height = parameters.GetImageInformation().GetHeight(); |
223 const unsigned int depth = parameters.GetImageInformation().GetNumberOfFrames(); | 223 const unsigned int depth = parameters.GetImageInformation().GetNumberOfFrames(); |
224 | 224 |
225 { | 225 { |
226 VolumeImageGeometry geometry; | 226 VolumeImageGeometry geometry; |
227 geometry.SetSize(width, height, depth); | 227 geometry.SetSizeInVoxels(width, height, depth); |
228 geometry.SetAxialGeometry(parameters.GetGeometry()); | 228 geometry.SetAxialGeometry(parameters.GetGeometry()); |
229 geometry.SetVoxelDimensions(parameters.GetPixelSpacingX(), | 229 geometry.SetVoxelDimensions(parameters.GetPixelSpacingX(), |
230 parameters.GetPixelSpacingY(), spacingZ); | 230 parameters.GetPixelSpacingY(), spacingZ); |
231 volume_->Initialize(geometry, format); | 231 volume_->Initialize(geometry, format); |
232 } | 232 } |
233 | 233 |
234 volume_->GetPixelData().Clear(); | 234 volume_->GetPixelData().Clear(); |
235 | 235 |
236 ScheduleFrameDownloads(); | 236 ScheduleFrameDownloads(); |
237 | |
238 | |
237 | 239 |
238 BroadcastMessage(DicomVolumeImage::GeometryReadyMessage(*volume_)); | 240 BroadcastMessage(DicomVolumeImage::GeometryReadyMessage(*volume_)); |
239 } | 241 } |
240 | 242 |
241 | 243 |
317 volume_->IncrementRevision(); | 319 volume_->IncrementRevision(); |
318 | 320 |
319 pixelDataLoaded_ = true; | 321 pixelDataLoaded_ = true; |
320 BroadcastMessage(DicomVolumeImage::ContentUpdatedMessage(*volume_)); | 322 BroadcastMessage(DicomVolumeImage::ContentUpdatedMessage(*volume_)); |
321 } | 323 } |
322 | 324 |
325 bool OrthancMultiframeVolumeLoader::HasGeometry() const | |
326 { | |
327 return volume_->HasGeometry(); | |
328 } | |
329 | |
330 const OrthancStone::VolumeImageGeometry& OrthancMultiframeVolumeLoader::GetImageGeometry() const | |
331 { | |
332 return volume_->GetGeometry(); | |
333 } | |
323 | 334 |
324 OrthancMultiframeVolumeLoader::OrthancMultiframeVolumeLoader(boost::shared_ptr<DicomVolumeImage> volume, | 335 OrthancMultiframeVolumeLoader::OrthancMultiframeVolumeLoader(boost::shared_ptr<DicomVolumeImage> volume, |
325 IOracle& oracle, | 336 IOracle& oracle, |
326 IObservable& oracleObservable) : | 337 IObservable& oracleObservable) : |
327 LoaderStateMachine(oracle, oracleObservable), | 338 LoaderStateMachine(oracle, oracleObservable), |