]> Creatis software - cpPlugins.git/blob - plugins/cpPluginsVisualization/PolyLineParametricPathToPolyData.cxx
...
[cpPlugins.git] / plugins / cpPluginsVisualization / PolyLineParametricPathToPolyData.cxx
1 #include <cpPluginsVisualization/PolyLineParametricPathToPolyData.h>
2 #include <cpPlugins/Mesh.h>
3
4 #include <cpExtensions/Visualization/PolyLineParametricPathToPolyData.h>
5 #include <cpExtensions/Visualization/PolyLineParametricPathToPolyData.hxx>
6 #include <itkPolyLineParametricPath.h>
7
8 // -------------------------------------------------------------------------
9 cpPluginsVisualization::PolyLineParametricPathToPolyData::
10 PolyLineParametricPathToPolyData( )
11   : Superclass( )
12 {
13   this->_AddInput( "Input" );
14   this->_AddInput( "ReferenceImage", false );
15   this->_AddOutput< cpPlugins::Mesh >( "Output" );
16 }
17
18 // -------------------------------------------------------------------------
19 cpPluginsVisualization::PolyLineParametricPathToPolyData::
20 ~PolyLineParametricPathToPolyData( )
21 {
22 }
23
24 // -------------------------------------------------------------------------
25 std::string cpPluginsVisualization::PolyLineParametricPathToPolyData::
26 _GenerateData( )
27 {
28   typedef itk::PolyLineParametricPath< 2 > _2DPath;
29   typedef itk::PolyLineParametricPath< 3 > _3DPath;
30
31   auto path = this->GetInputData( "Input" )->GetITK< itk::DataObject >( );
32   auto path2D = dynamic_cast< _2DPath* >( path );
33   auto path3D = dynamic_cast< _3DPath* >( path );
34   if( path2D != NULL )
35     return( this->_GD0( path2D ) );
36   else if( path3D != NULL )
37     return( this->_GD0( path3D ) );
38   else
39     return( "cpPluginsVisualization::PolyLineParametricPathToPolyData: no valid input." );
40 }
41
42 // -------------------------------------------------------------------------
43 template< class _TPath >
44 std::string cpPluginsVisualization::PolyLineParametricPathToPolyData::
45 _GD0( _TPath* path )
46 {
47   typedef
48     cpExtensions::Visualization::PolyLineParametricPathToPolyData< _TPath >
49     _TFilter;
50   typedef typename _TFilter::TImage _TImage;
51
52   // Configure filter
53   _TFilter* filter = this->_CreateVTK< _TFilter >( );
54   filter->SetInput( path );
55   filter->SetReferenceImage(
56     this->GetInputData( "Input" )->GetITK< _TImage >( )
57     );
58   filter->Update( );
59
60   // Connect output
61   this->GetOutputData( "Output" )->SetVTK( filter->GetOutput( ) );
62   return( "" );
63 }
64
65 // eof - $RCSfile$