]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Plugins/BasicFilters/Cutter.cxx
...
[cpPlugins.git] / lib / cpPlugins / Plugins / BasicFilters / Cutter.cxx
index 0ae95d51673527840f7336efe16563744cb247ad..a0b051d16c7d173977a9894edc5458f17f9c2b62 100644 (file)
@@ -5,42 +5,23 @@
 #include <vtkCutter.h>
 #include <vtkProperty.h>
 
-// -------------------------------------------------------------------------
-vtkAlgorithm* cpPlugins::BasicFilters::Cutter::
-GetVTKAlgorithm( )
-{
-  return( this->m_Algorithm );
-}
 
-// -------------------------------------------------------------------------
-const vtkAlgorithm* cpPlugins::BasicFilters::Cutter::
-GetVTKAlgorithm( ) const
-{
-  return( this->m_Algorithm );
-}
+#include <vtkPlane.h>
 
 // -------------------------------------------------------------------------
 cpPlugins::BasicFilters::Cutter::
 Cutter( )
-  : Superclass( ),
-    m_Algorithm( NULL )
+  : Superclass( )
 {
-  this->m_ClassName = "cpPlugins::BasicFilters::Cutter";
-  this->m_ClassCategory = "MeshToMeshFilter";
-
-  this->SetNumberOfInputs( 2 );
-  this->SetNumberOfOutputs( 1 );
-  this->_MakeOutput< cpPlugins::Interface::Mesh >( 0 );
-
-  this->m_Parameters = this->m_DefaultParameters;
+  this->_AddInput( "InputMesh", true );
+  this->_AddInput( "InputFunction", true );
+  this->_AddOutput< cpPlugins::Interface::Mesh >( "Output" );
 }
 
 // -------------------------------------------------------------------------
 cpPlugins::BasicFilters::Cutter::
 ~Cutter( )
 {
-  if( this->m_Algorithm != NULL )
-    this->m_Algorithm->Delete( );
 }
 
 // -------------------------------------------------------------------------
@@ -48,27 +29,25 @@ std::string cpPlugins::BasicFilters::Cutter::
 _GenerateData( )
 {
   // Get inputs
-  cpPlugins::Interface::Mesh* mesh =
-    this->GetInput< cpPlugins::Interface::Mesh >( 0 );
-  cpPlugins::Interface::ImplicitFunction* function =
-    this->GetInput< cpPlugins::Interface::ImplicitFunction >( 1 );
+  auto mesh = this->GetInputData< cpPlugins::Interface::Mesh >( "InputMesh" );
+  auto function =
+    this->GetInputData< cpPlugins::Interface::ImplicitFunction >(
+      "InputFunction"
+      );
   if( function == NULL )
     return( "Cutter: Input data 1 is not a valid implicit function." );
 
-  if( this->m_Algorithm != NULL )
-    this->m_Algorithm->Delete( );
-
-  vtkCutter* cutter = vtkCutter::New( );
-  cutter->SetInputData( mesh->GetVTKMesh( ) );
-  cutter->SetCutFunction( function->GetVTKImplicitFunction( ) );
+  vtkCutter* cutter = this->_CreateVTK< vtkCutter >( );
+  cutter->DebugOn( );
+  cutter->SetInputData( mesh->GetVTK< vtkPolyData >( ) );
+  cutter->SetCutFunction( function->GetVTK< vtkImplicitFunction >( ) );
+  cutter->SetValue( 0, 1 );
   cutter->GenerateTrianglesOff( );
-  this->m_Algorithm = cutter;
+  cutter->Update( );
 
   // Execute filter
-  this->m_Algorithm->Update( );
-  cpPlugins::Interface::Mesh* out =
-    this->GetOutput< cpPlugins::Interface::Mesh >( 0 );
-  out->SetVTKMesh( this->m_Algorithm->GetOutput( ) );
+  auto out = this->GetOutputData< cpPlugins::Interface::Mesh >( "Output" );
+  out->SetVTK( cutter->GetOutput( ) );
 
   return( "" );
 }