Mercurial > hg > orthanc-stone
changeset 1345:0d6a01ffa1dd broker
Clean version of the hack commited in
the previous commit : the DicomStructureSetLoader
now properly increments its revision during
progressive loading. The "force update" method
in the VolumeSceneLayerSource isn't needed
anymore.
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Mon, 06 Apr 2020 09:17:40 +0200 |
parents | 00c8322bbe69 |
children | df8bf351c23f |
files | Framework/Loaders/DicomStructureSetLoader.cpp Framework/Volumes/VolumeSceneLayerSource.cpp Framework/Volumes/VolumeSceneLayerSource.h |
diffstat | 3 files changed, 4 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/Framework/Loaders/DicomStructureSetLoader.cpp Mon Apr 06 08:44:10 2020 +0200 +++ b/Framework/Loaders/DicomStructureSetLoader.cpp Mon Apr 06 09:17:40 2020 +0200 @@ -76,6 +76,7 @@ loader.countProcessedInstances_ ++; assert(loader.countProcessedInstances_ <= loader.countReferencedInstances_); + loader.revision_++; loader.SetStructuresUpdated(); if (loader.countProcessedInstances_ == loader.countReferencedInstances_)
--- a/Framework/Volumes/VolumeSceneLayerSource.cpp Mon Apr 06 08:44:10 2020 +0200 +++ b/Framework/Volumes/VolumeSceneLayerSource.cpp Mon Apr 06 09:17:40 2020 +0200 @@ -102,7 +102,7 @@ } - void VolumeSceneLayerSource::Update(const CoordinateSystem3D& plane, bool forceLayerRecreation) + void VolumeSceneLayerSource::Update(const CoordinateSystem3D& plane) { assert(slicer_.get() != NULL); std::unique_ptr<IVolumeSlicer::IExtractedSlice> slice(slicer_->ExtractSlice(plane)); @@ -117,8 +117,7 @@ // The slicer cannot handle this cutting plane: Clear the layer ClearLayer(); } - else if (!forceLayerRecreation && - lastPlane_.get() != NULL && + else if (lastPlane_.get() != NULL && IsSameCuttingPlane(*lastPlane_, plane) && lastRevision_ == slice->GetRevision()) {
--- a/Framework/Volumes/VolumeSceneLayerSource.h Mon Apr 06 08:44:10 2020 +0200 +++ b/Framework/Volumes/VolumeSceneLayerSource.h Mon Apr 06 09:17:40 2020 +0200 @@ -80,6 +80,6 @@ you can lock the whole viewport data (including scene) by means of the IViewport::Lock method. */ - void Update(const CoordinateSystem3D& plane, bool forceLayerRecreation = false); + void Update(const CoordinateSystem3D& plane); }; }