1 #ifndef __CPPLUGINS__EXTENSIONS__MESHREADER__HXX__
2 #define __CPPLUGINS__EXTENSIONS__MESHREADER__HXX__
5 #include <cpPlugins/Extensions/WaveFrontOBJReader.h>
6 #include <itkVTKPolyDataReader.h>
8 // -------------------------------------------------------------------------
10 itk::ModifiedTimeType cpPlugins::Extensions::MeshReader< M >::
13 itk::ModifiedTimeType mtime = this->Superclass::GetMTime( );
14 if( this->m_Reader.IsNotNull( ) )
16 itk::ModifiedTimeType rtime = this->m_Reader->GetMTime( );
17 mtime = ( rtime < mtime )? rtime: mtime;
23 // -------------------------------------------------------------------------
24 template< typename M >
25 cpPlugins::Extensions::MeshReader< M >::
31 // -------------------------------------------------------------------------
32 template< typename M >
33 cpPlugins::Extensions::MeshReader< M >::
38 // -------------------------------------------------------------------------
39 template< typename M >
40 void cpPlugins::Extensions::MeshReader< M >::
43 std::string fn = this->m_FileName;
44 std::transform( fn.begin( ), fn.end( ), fn.begin( ), ::tolower );
45 if( fn.rfind( ".vtk" ) != std::string::npos )
46 this->_Read< itk::VTKPolyDataReader< M > >( );
47 else if( fn.rfind( ".obj" ) != std::string::npos )
48 this->_Read< cpPlugins::Extensions::WaveFrontOBJReader< M > >( );
51 // -------------------------------------------------------------------------
52 template< typename M >
54 void cpPlugins::Extensions::MeshReader< M >::
57 typename R::Pointer reader = NULL;
58 if( this->m_Reader.IsNotNull( ) )
60 reader = dynamic_cast< R* >( this->m_Reader.GetPointer( ) );
61 if( reader.IsNotNull( ) )
63 if( reader->GetFileName( ) == this->m_FileName )
69 this->m_Reader = reader;
76 this->m_Reader = reader;
80 if( reader.IsNotNull( ) )
82 reader->SetFileName( this->m_FileName );
83 reader->GraftOutput( this->GetOutput( ) );
85 this->GraftOutput( reader->GetOutput( ) );
90 #endif // __CPPLUGINS__EXTENSIONS__MESHREADER__HXX__