]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Plugins/BasicFilters/MacheteFilter.cxx
...
[cpPlugins.git] / lib / cpPlugins / Plugins / BasicFilters / MacheteFilter.cxx
index 916d2ed1e84823475e238c3aacd72d81fbecaaed..6877a3d3e2ee65134f72dca8f3d90c9906ad56f8 100644 (file)
@@ -1,8 +1,5 @@
 #include "MacheteFilter.h"
 
-#include <cpPlugins/Interface/BaseApplication.h>
-#include <cpPlugins/Interface/Plugins.h>
-
 #include <cpPlugins/Interface/DataObject.h>
 #include <cpPlugins/Interface/Image.h>
 #include <cpPlugins/Interface/Mesh.h>
@@ -27,7 +24,7 @@ cpPlugins::BasicFilters::MacheteFilter_Dialog::
 MacheteFilter_Dialog(
   QWidget* parent, MacheteFilter* filter, Qt::WindowFlags f
   )
-  : QDialog( parent, f ),
+  : QDialog( parent, f | Qt::WindowStaysOnTopHint ),
     m_Filter( filter )
 {
   this->m_Title = new QLabel( this );
@@ -71,26 +68,37 @@ accept( )
   double center[ 3 ], normal[ 3 ];
   wdg->GetCenter( center );
   wdg->GetNormal( normal );
-  this->m_Filter->GetParameters( )->SetPoint( "PlaneCenter", 3, center );
-  this->m_Filter->GetParameters( )->SetVector( "PlaneNormal", 3, normal );
 
-  // Update filter
-  auto plugins = this->m_Filter->GetPlugins( );
-  if( plugins != NULL )
-  {
-    auto app = plugins->GetApplication( );
-    if( app != NULL )
-      app->UpdateActualFilter( );
+  /* TODO
+     this->m_Filter->GetParameters( )->SetPoint( "PlaneCenter", 3, center );
+     this->m_Filter->GetParameters( )->SetVector( "PlaneNormal", 3, normal );
+  */
 
-  } // fi
+  // Update filter
+  /* TODO
+     auto plugins = this->m_Filter->GetPlugins( );
+     if( plugins != NULL )
+     {
+     auto app = plugins->GetApplication( );
+     if( app != NULL )
+     app->UpdateActualFilter( );
+
+     } // fi
+  */
 }
 
 // -------------------------------------------------------------------------
 void cpPlugins::BasicFilters::MacheteFilter_Dialog::
 reject( )
 {
-  std::cout << "reject" << std::endl;
+  /*
+  auto plugins = this->m_Filter->GetPlugins( );
+  if( plugins != NULL )
+    plugins->DeactivateFilter( );
+  */
+  this->Superclass::reject( );
 }
+
 #endif // cpPlugins_Interface_QT4
 
 // -------------------------------------------------------------------------
@@ -104,6 +112,7 @@ ExecConfigurationDialog( QWidget* parent )
 
   // Choose a valid 3D interactor
   vtkRenderWindowInteractor* iren = NULL;
+  /* TODO
   auto iIt = this->m_Interactors.begin( );
   for( ; iIt != this->m_Interactors.end( ) && iren == NULL; ++iIt )
   {
@@ -115,13 +124,13 @@ ExecConfigurationDialog( QWidget* parent )
       iren = *iIt;
     
   } // rof
+  */
   if( iren == NULL )
-    return( Self::DialogResult_Cancel );
-
+    return( false );
+  
   // Get bounding box
   double bbox[ 6 ];
-  cpPlugins::Interface::Image* image =
-    this->GetInput< cpPlugins::Interface::Image >( "Input" );
+  auto image = this->GetInputData< cpPlugins::Interface::Image >( "Input" );
   bool input_found = false;
   if( image != NULL )
   {
@@ -129,8 +138,7 @@ ExecConfigurationDialog( QWidget* parent )
     input_found = true;
 
   } // fi
-  cpPlugins::Interface::Mesh* mesh =
-    this->GetInput< cpPlugins::Interface::Mesh >( "Input" );
+  auto mesh = this->GetInputData< cpPlugins::Interface::Mesh >( "Input" );
   if( mesh != NULL )
   {
     mesh->GetVTK< vtkPolyData >( )->GetBounds( bbox );
@@ -138,7 +146,7 @@ ExecConfigurationDialog( QWidget* parent )
 
   } // fi
   if( !input_found )
-    return( Self::DialogResult_Cancel );
+    return( false );
 
   // Create plane widget
   if( this->m_PlaneWidget != NULL )
@@ -174,9 +182,9 @@ ExecConfigurationDialog( QWidget* parent )
   this->m_Dialog = new MacheteFilter_Dialog( NULL, this );
   this->m_Dialog->show( );
 
-  return( Self::DialogResult_Modal );
+  return( true );
 #else // cpPlugins_Interface_QT4
-  return( Self::DialogResult_Cancel );
+  return( false );
 #endif // cpPlugins_Interface_QT4
 }
 
@@ -186,19 +194,14 @@ MacheteFilter( )
   : Superclass( ),
     m_PlaneWidget( NULL )
 {
-  this->_AddInput( "Input" );
-  this->_MakeOutput< cpPlugins::Interface::DataObject >( "PositiveOutput" );
-  this->_MakeOutput< cpPlugins::Interface::DataObject >( "NegativeOutput" );
-
-  itk::Point< double, 3 > center;
-  itk::Vector< double, 3 > normal;
-
-  center.Fill( double( 0 ) );
-  normal.Fill( double( 0 ) );
-  normal[ 0 ] = double( 1 );
-
-  this->m_Parameters->ConfigureAsPoint( "PlaneCenter", 3, center );
-  this->m_Parameters->ConfigureAsVector( "PlaneNormal", 3, normal );
+  this->_AddInput( "Input", true );
+  this->_AddOutput< cpPlugins::Interface::DataObject >( "PositiveOutput" );
+  this->_AddOutput< cpPlugins::Interface::DataObject >( "NegativeOutput" );
+
+  /*
+  this->m_Parameters->ConfigureAsPoint( "PlaneCenter" );
+  this->m_Parameters->ConfigureAsVector( "PlaneNormal" );
+  */
 }
 
 // -------------------------------------------------------------------------
@@ -213,12 +216,10 @@ cpPlugins::BasicFilters::MacheteFilter::
 std::string cpPlugins::BasicFilters::MacheteFilter::
 _GenerateData( )
 {
-  cpPlugins::Interface::Image* image =
-    this->GetInput< cpPlugins::Interface::Image >( "Input" );
+  auto image = this->GetInputData< cpPlugins::Interface::Image >( "Input" );
   if( image != NULL )
     return( this->_FromImage( image ) );
-  cpPlugins::Interface::Mesh* mesh =
-    this->GetInput< cpPlugins::Interface::Mesh >( "Input" );
+  auto mesh = this->GetInputData< cpPlugins::Interface::Mesh >( "Input" );
   if( mesh == NULL )
     return( this->_FromMesh( mesh ) );
   return( "MacheteFilter: No valid input." );
@@ -262,12 +263,16 @@ _RealImage( itk::DataObject* dobj )
 
   I* image = dynamic_cast< I* >( dobj );
 
+  /*
   _TPoint c = this->m_Parameters->GetPoint< _TPoint >(
     "PlaneCenter", I::ImageDimension
     );
   _TVector n = this->m_Parameters->GetVector< _TVector >(
     "PlaneNormal", I::ImageDimension
     );
+  */
+  _TPoint c;
+  _TVector n;
 
   typename _TPlane::Pointer plane = _TPlane::New( );
   plane->SetCenter( c );
@@ -280,25 +285,19 @@ _RealImage( itk::DataObject* dobj )
   filter->SetOutsideValue( _TPixel( 0 ) );
   filter->Update( );
 
-  // Get output names
-  auto pos_name = this->GetOutput< _TObj >( "PositiveOutput" )->GetName( );
-  auto neg_name = this->GetOutput< _TObj >( "NegativeOutput" )->GetName( );
-
   // Connect outputs (and correct their types and names)
-  _TImage* pos_out = this->GetOutput< _TImage >( "PositiveOutput" );
+  _TImage* pos_out = this->GetOutputData< _TImage >( "PositiveOutput" );
   if( pos_out == NULL )
   {
-    this->_MakeOutput< _TImage >( "PositiveOutput" );
-    pos_out = this->GetOutput< _TImage >( "PositiveOutput" );
-    pos_out->SetName( pos_name );
+    this->_AddOutput< _TImage >( "PositiveOutput" );
+    pos_out = this->GetOutputData< _TImage >( "PositiveOutput" );
 
   } // fi
-  _TImage* neg_out = this->GetOutput< _TImage >( "NegativeOutput" );
+  _TImage* neg_out = this->GetOutputData< _TImage >( "NegativeOutput" );
   if( neg_out == NULL )
   {
-    this->_MakeOutput< _TImage >( "NegativeOutput" );
-    neg_out = this->GetOutput< _TImage >( "NegativeOutput" );
-    neg_out->SetName( neg_name );
+    this->_AddOutput< _TImage >( "NegativeOutput" );
+    neg_out = this->GetOutputData< _TImage >( "NegativeOutput" );
 
   } // fi