]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Plugins/BasicFilters/Cutter.cxx
Widget integration (step 4/6)... Testing on windows.
[cpPlugins.git] / lib / cpPlugins / Plugins / BasicFilters / Cutter.cxx
1 #include "Cutter.h"
2 #include <cpPlugins/Interface/ImplicitFunction.h>
3 #include <cpPlugins/Interface/Mesh.h>
4
5 #include <vtkCutter.h>
6 #include <vtkProperty.h>
7
8
9 #include <vtkPlane.h>
10
11 // -------------------------------------------------------------------------
12 cpPlugins::BasicFilters::Cutter::
13 Cutter( )
14   : Superclass( )
15 {
16   this->m_ClassName = "cpPlugins::BasicFilters::Cutter";
17   this->m_ClassCategory = "MeshToMeshFilter";
18
19   this->SetNumberOfInputs( 2 );
20   this->SetNumberOfOutputs( 1 );
21   this->_MakeOutput< cpPlugins::Interface::Mesh >( 0 );
22
23   this->m_Parameters = this->m_DefaultParameters;
24 }
25
26 // -------------------------------------------------------------------------
27 cpPlugins::BasicFilters::Cutter::
28 ~Cutter( )
29 {
30 }
31
32 // -------------------------------------------------------------------------
33 std::string cpPlugins::BasicFilters::Cutter::
34 _GenerateData( )
35 {
36   // Get inputs
37   cpPlugins::Interface::Mesh* mesh =
38     this->GetInput< cpPlugins::Interface::Mesh >( 0 );
39   cpPlugins::Interface::ImplicitFunction* function =
40     this->GetInput< cpPlugins::Interface::ImplicitFunction >( 1 );
41   if( function == NULL )
42     return( "Cutter: Input data 1 is not a valid implicit function." );
43
44   vtkCutter* cutter = this->_CreateVTK< vtkCutter >( );
45   cutter->DebugOn( );
46   cutter->SetInputData( mesh->GetVTK< vtkPolyData >( ) );
47   cutter->SetCutFunction( function->GetVTK< vtkImplicitFunction >( ) );
48   cutter->SetValue( 0, 1 );
49   cutter->GenerateTrianglesOff( );
50   cutter->Update( );
51
52   // Execute filter
53   cpPlugins::Interface::Mesh* out =
54     this->GetOutput< cpPlugins::Interface::Mesh >( 0 );
55   out->SetVTK( cutter->GetOutput( ) );
56
57   return( "" );
58 }
59
60 // eof - $RCSfile$