changeset 1344:00c8322bbe69 broker

Ability to force a re-slice of the structure set volume. This is a fix for the fact that the structure set does not increase the slice revision when new polygons are added. This should be fixed in the slicer but this is a temporary fix until this is done properly.
author Benjamin Golinvaux <bgo@osimis.io>
date Mon, 06 Apr 2020 08:44:10 +0200
parents e92c516adcbd
children 0d6a01ffa1dd
files Framework/Volumes/VolumeSceneLayerSource.cpp Framework/Volumes/VolumeSceneLayerSource.h
diffstat 2 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/Framework/Volumes/VolumeSceneLayerSource.cpp	Mon Apr 06 08:43:03 2020 +0200
+++ b/Framework/Volumes/VolumeSceneLayerSource.cpp	Mon Apr 06 08:44:10 2020 +0200
@@ -102,7 +102,7 @@
   }
 
 
-  void VolumeSceneLayerSource::Update(const CoordinateSystem3D& plane)
+  void VolumeSceneLayerSource::Update(const CoordinateSystem3D& plane, bool forceLayerRecreation)
   {
     assert(slicer_.get() != NULL);
     std::unique_ptr<IVolumeSlicer::IExtractedSlice> slice(slicer_->ExtractSlice(plane));
@@ -117,7 +117,8 @@
       // The slicer cannot handle this cutting plane: Clear the layer
       ClearLayer();
     }
-    else if (lastPlane_.get() != NULL &&
+    else if (!forceLayerRecreation && 
+             lastPlane_.get() != NULL &&
              IsSameCuttingPlane(*lastPlane_, plane) &&
              lastRevision_ == slice->GetRevision())
     {
--- a/Framework/Volumes/VolumeSceneLayerSource.h	Mon Apr 06 08:43:03 2020 +0200
+++ b/Framework/Volumes/VolumeSceneLayerSource.h	Mon Apr 06 08:44:10 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);  
+    void Update(const CoordinateSystem3D& plane, bool forceLayerRecreation = false); 
   };
 }