Ver código fonte

Merge branch 'slicer2512-lightbox-mapper'

* slicer2512-lightbox-mapper:
  Clear image mapper input when RenderWindowItem is destroyed

Closes #246
Jean-Christophe Fillion-Robin 12 anos atrás
pai
commit
6cee9c690d

+ 7 - 4
Libs/Visualization/VTK/Core/vtkLightBoxRendererManager.cpp

@@ -59,6 +59,7 @@ class RenderWindowItem
 public:
   RenderWindowItem(const double rendererBackgroundColor[3], const double highlightedBoxColor[3],
                    double colorWindow, double colorLevel);
+  ~RenderWindowItem();
   void SetViewport(double xMin, double yMin, double viewportWidth, double viewportHeight);
 
   /// Create the actor supporing the image mapper
@@ -95,6 +96,12 @@ RenderWindowItem::RenderWindowItem(const double rendererBackgroundColor[3],
 }
 
 //-----------------------------------------------------------------------------
+RenderWindowItem::~RenderWindowItem()
+{
+  this->ImageMapper->SetInput(0);
+}
+
+//-----------------------------------------------------------------------------
 void RenderWindowItem::SetViewport(double xMin, double yMin,
                                    double viewportWidth, double viewportHeight)
 {
@@ -606,8 +613,6 @@ void vtkLightBoxRendererManager::SetRenderWindowLayout(int rowCount, int columnC
     - static_cast<int>(this->Internal->RenderWindowItemList.size());
   if (extraItem > 0)
     {
-    //std::cout << "Creating " << extraItem << " RenderWindowItem";
-
     // Create extra RenderWindowItem(s)
     while(extraItem > 0)
       {
@@ -623,8 +628,6 @@ void vtkLightBoxRendererManager::SetRenderWindowLayout(int rowCount, int columnC
     }
   else
     {
-    //std::cout << "Removing " << extraItem << " RenderWindowItem";
-
     // Remove extra RenderWindowItem(s)
     extraItem = extraItem >= 0 ? extraItem : -extraItem; // Compute Abs
     while(extraItem > 0)