]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Plugins/MeshReader.cxx
Major refactoring: API-HCI bug corrected.
[cpPlugins.git] / lib / cpPlugins / Plugins / MeshReader.cxx
index b7ce4ba88e3d5667232cef35c237d82a95854295..5338c32b3424ebd1464be2406a7144e682fb4042 100644 (file)
@@ -1,21 +1,17 @@
 #include <cpPlugins/Plugins/MeshReader.h>
 #include <cpPlugins/Interface/Mesh.h>
 
-#include <cpPlugins/Extensions/DataStructures/QuadEdgeMesh.h>
-#include <cpPlugins/Extensions/IO/MeshReader.h>
-
-// -------------------------------------------------------------------------
-std::string cpPlugins::Plugins::MeshReader::
-GetClassName( ) const
-{
-  return( "cpPlugins::Plugins::MeshReader" );
-}
+#include <vtkPolyData.h>
+#include <vtkPolyDataReader.h>
 
 // -------------------------------------------------------------------------
 cpPlugins::Plugins::MeshReader::
 MeshReader( )
   : Superclass( )
 {
+  this->m_ClassName = "cpPlugins::MeshReader";
+  this->m_ClassCategory = "MeshReader";
+
   this->SetNumberOfOutputs( 1 );
   this->_MakeOutput< cpPlugins::Interface::Mesh >( 0 );
 
@@ -40,7 +36,7 @@ _GenerateData( )
 {
   using namespace cpPlugins::Interface;
   Parameters::TUint dim = this->m_Parameters.GetValueAsUint( "Dimension" );
-  std::string r = "cpPlugins::Plugins::MeshReader: itk::Mesh dimension not supported.";
+  std::string r = "MeshReader: Mesh dimension not supported.";
   if( dim == 3 )
     r = this->_GD0< 3 >( );
   return( r );
@@ -53,7 +49,7 @@ _GD0( )
 {
   using namespace cpPlugins::Interface;
   Parameters::TString pt = this->m_Parameters.GetValueAsString( "PixelType" );
-  std::string r = "cpPlugins::Plugins::MeshReader: itk::Mesh pixel type not supported";
+  std::string r = "MeshReader: Mesh pixel type not supported";
   if( pt == "float" )       r = this->_GD1< float, D >( );
   else if( pt == "double" ) r = this->_GD1< double, D >( );
   return( r );
@@ -69,31 +65,14 @@ _GD1( )
   Parameters::TString fname =
     this->m_Parameters.GetValueAsString( "FileName" );
 
-  using namespace cpPlugins::Extensions;
-  typedef DataStructures::QuadEdgeMesh< P, D > _TMesh;
-  typedef IO::MeshReader< _TMesh > _TReader;
-
-  _TReader* reader =
-    dynamic_cast< _TReader* >( this->m_RealProcessObject.GetPointer( ) );
-  if( reader == NULL )
-  {
-    this->m_RealProcessObject = _TReader::New( );
-    reader =
-      dynamic_cast< _TReader* >( this->m_RealProcessObject.GetPointer( ) );
-
-  } // fi
-  reader->SetFileName( fname );
-  try
-  {
-    reader->Update( );
-  }
-  catch( itk::ExceptionObject& err )
-  {
-    return( err.GetDescription( ) );
-
-  } // yrt
-  this->_SetOutput( 0, reader->GetOutput( ) );
+  if( this->m_Reader != NULL )
+    this->m_Reader->Delete( );
 
+  vtkPolyDataReader* pdr = vtkPolyDataReader::New( );
+  this->m_Reader = pdr;
+  pdr->SetFileName( fname.c_str( ) );
+  pdr->Update( );
+  this->m_Outputs[ 0 ]->SetVTKDataObject( pdr->GetOutput( ) );
   return( "" );
 }