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),