]> Creatis software - cpPlugins.git/blobdiff - lib/cpExtensions/QT/MPR3DWidget.cxx
Raster filter updated. LUT image visualization strange bug :-(
[cpPlugins.git] / lib / cpExtensions / QT / MPR3DWidget.cxx
index 788fb22a44b86ce9015d2ee3426c466ad8a71f20..b4224a7a86bc96b347b5b139061640f8f846d9c0 100644 (file)
@@ -3,17 +3,18 @@
 #ifdef cpExtensions_QT4
 
 #include <cpExtensions/Visualization/ImageOutlineActor.h>
+#include <cpExtensions/Visualization/MeshActor.h>
 #include <cpExtensions/Visualization/WindowLevelImageActor.h>
 
 #include <vtkImageData.h>
 #include <vtkPlane.h>
+#include <vtkPolyData.h>
 
 /* TODO
    #include <cpExtensions/Visualization/MPR3DActors.h>
    #include <cpExtensions/Visualization/LUTImageActor.h>
 
    #include <vtkActor.h>
-   #include <vtkPolyData.h>
 */
 
 // -------------------------------------------------------------------------
@@ -32,6 +33,9 @@ MPR3DWidget( QWidget* parent, Qt::WindowFlags f )
 cpExtensions::QT::MPR3DWidget::
 ~MPR3DWidget( )
 {
+  for( auto a = this->m_Actors.begin( ); a != this->m_Actors.end( ); ++a )
+    delete *a;
+  this->m_Actors.clear( );
 }
 
 // -------------------------------------------------------------------------
@@ -70,6 +74,35 @@ SetImage( vtkImageData* image, const std::string& name )
   } // rof
 }
 
+// -------------------------------------------------------------------------
+void cpExtensions::QT::MPR3DWidget::
+Add( vtkDataSet* data, const std::string& name )
+{
+  auto image = dynamic_cast< vtkImageData* >( data );
+  auto pdata = dynamic_cast< vtkPolyData* >( data );
+  if( image != NULL )
+  {
+    /* TODO
+       if( this->m_ImageName != "" )
+       {
+       }
+       else
+       this->SetImage( image, name );
+    */
+  }
+  else if( pdata != NULL )
+  {
+    TActor* actor = new TActor( );
+    actor->SetMesh( pdata );
+    this->m_Actors.push_back( actor );
+    this->AddViewProp( actor->GetActor( ), name );
+    this->Render( );
+    if( this->m_ImageName == "" )
+      this->ResetCamera( );
+
+  } // fi
+}
+
 // -------------------------------------------------------------------------
 cpExtensions::QT::MPR3DWidget::
 TWLActor* cpExtensions::QT::MPR3DWidget::
@@ -145,50 +178,6 @@ SetImage( vtkImageData* image, const std::string& name )
   this->Render( );
 }
 
-// -------------------------------------------------------------------------
-void cpExtensions::QT::MPR3DWidget::
-Add( vtkDataSet* data, const std::string& name )
-{
-  auto image = dynamic_cast< vtkImageData* >( data );
-  auto pdata = dynamic_cast< vtkPolyData* >( data );
-  if( image != NULL )
-  {
-    if( this->m_ImageName != "" )
-    {
-    }
-    else
-      this->SetImage( image, name );
-  }
-  else if( pdata != NULL )
-  {
-    this->AddViewProp( this->m_Actors->AddMesh( pdata ), name );
-    this->Render( );
-    if( this->m_ImageName == "" )
-      this->ResetCamera( );
-
-  } // fi
-
-     return;
-
-     auto image = dynamic_cast< vtkImageData* >( data );
-     auto pdata = dynamic_cast< vtkPolyData* >( data );
-     if( image != NULL )
-     {
-     this->m_Actors->AddLUTImage( image );
-     vtkSmartPointer< vtkPropCollection > coll =
-     vtkSmartPointer< vtkPropCollection >::New( );
-     coll->AddItem( this->m_Actors->GetLUTImageActor( 0 ) );
-     coll->AddItem( this->m_Actors->GetLUTImageActor( 1 ) );
-     coll->AddItem( this->m_Actors->GetLUTImageActor( 2 ) );
-     this->AddViewProps( coll, name );
-     this->Render( );
-     }
-     else if( pdata != NULL )
-     {
-
-     } // fi
-}
-
 // -------------------------------------------------------------------------
 void cpExtensions::QT::MPR3DWidget::
 SetSliceNumber( int orientation, int slice )