]> Creatis software - FrontAlgorithms.git/blob - tests/image/SkeletonToPolyData.cxx
6ee6fd81248b09b961b95e728e8223cbdd26481b
[FrontAlgorithms.git] / tests / image / SkeletonToPolyData.cxx
1
2 #include <vtkPolyDataWriter.h>
3 #include <vtkSmartPointer.h>
4
5 #include <fpa/Image/Skeleton.h>
6 #include <fpa/Image/SkeletonReader.h>
7 #include <fpa/Image/SkeletonToPolyDataFilter.h>
8
9 // -------------------------------------------------------------------------
10 const unsigned int Dim = 3;
11 typedef fpa::Image::Skeleton< Dim > TSkeleton;
12 typedef fpa::Image::SkeletonToPolyDataFilter< TSkeleton > TFilter;
13
14 // -------------------------------------------------------------------------
15 int main( int argc, char* argv[] )
16 {
17 #ifdef USE_VTK
18   // Get arguments
19   if( argc < 3 )
20   {
21     std::cerr
22       << "Usage: " << argv[ 0 ]
23       << " input_skeleton output_polydata"
24       << std::endl;
25     return( 1 );
26
27   } // fi
28   std::string input_skeleton_filename = argv[ 1 ];
29   std::string output_polydata_filename = argv[ 2 ];
30
31   fpa::Image::SkeletonReader< TSkeleton >::Pointer reader =
32     fpa::Image::SkeletonReader< TSkeleton >::New( );
33   reader->SetFileName( input_skeleton_filename );
34   try
35   {
36     reader->Update( );
37   }
38   catch( std::exception& err )
39   {
40     std::cerr << "Error caught: " << err.what( ) << std::endl;
41     return( 1 );
42
43   } // yrt
44
45   vtkSmartPointer< TFilter > filter = vtkSmartPointer< TFilter >::New( );
46   filter->SetInput( reader->GetOutput( ) );
47
48   vtkSmartPointer< vtkPolyDataWriter > writer =
49     vtkSmartPointer< vtkPolyDataWriter >::New( );
50   writer->SetInputConnection( filter->GetOutputPort( ) );
51   writer->SetFileName( output_polydata_filename.c_str( ) );
52   writer->Update( );
53
54   return( 0 );
55 #else // USE_VTK
56   std::cerr
57     << "Error: FrontAlgorithms was compiled without VTK support."
58     << std::endl;
59   return( 1 );
60 #endif // USE_VTK
61 }
62
63 // eof - $RCSfile$