]> Creatis software - cpPlugins.git/blobdiff - lib/cpExtensions/IO/MeshReader.h
...
[cpPlugins.git] / lib / cpExtensions / IO / MeshReader.h
diff --git a/lib/cpExtensions/IO/MeshReader.h b/lib/cpExtensions/IO/MeshReader.h
new file mode 100644 (file)
index 0000000..94880a9
--- /dev/null
@@ -0,0 +1,62 @@
+#ifndef __CPEXTENSIONS__IO__MESHREADER__H__
+#define __CPEXTENSIONS__IO__MESHREADER__H__
+
+#include <string>
+#include <itkMeshSource.h>
+
+namespace cpExtensions
+  {
+    namespace IO
+    {
+      /**
+       */
+      template< typename M >
+      class MeshReader
+        : public itk::MeshSource< M >
+      {
+      public:
+        typedef MeshReader                      Self;
+        typedef itk::MeshSource< M >            Superclass;
+        typedef itk::SmartPointer< Self >       Pointer;
+        typedef itk::SmartPointer< const Self > ConstPointer;
+
+        typedef M MeshType;
+
+      public:
+        itkNewMacro( Self );
+        itkTypeMacro( MeshReader, itkMeshSource );
+
+        itkSetStringMacro( FileName );
+        itkGetStringMacro( FileName );
+
+      public:
+        virtual itk::ModifiedTimeType GetMTime( ) const;
+
+      protected:
+        MeshReader( );
+        virtual ~MeshReader( );
+
+        virtual void GenerateData( );
+
+        template< class R >
+        void _Read( );
+
+      private:
+        // Purposely not implemented
+        MeshReader( const Self& );
+        Self& operator=( const Self & );
+
+      protected:
+        typename Superclass::Pointer m_Reader;
+        std::string m_FileName;
+      };
+
+    } // ecapseman
+
+} // ecapseman
+
+#include <cpExtensions/IO/MeshReader.hxx>
+
+#endif // __CPEXTENSIONS__IO__MESHREADER__H__
+
+// eof - $RCSfile$