--- /dev/null
+#ifndef __CPEXTENSIONS__IO__WAVEFRONTOBJREADER__H__
+#define __CPEXTENSIONS__IO__WAVEFRONTOBJREADER__H__
+
+#include <string>
+#include <itkIntTypes.h>
+#include <itkMesh.h>
+#include <itkMeshSource.h>
+#include <itkPolygonCell.h>
+
+namespace cpExtensions
+ {
+ namespace IO
+ {
+ /**
+ * \class WaveFrontOBJReader
+ * \brief
+ * Reads a wavefront OBJ file and create an itkMesh.
+ *
+ * Caveat1: itkWaveFrontOBJReader will read only vertices and faces.
+ * Normal, parameters and textures vectors are ignored.
+ *
+ */
+ template< typename M >
+ class WaveFrontOBJReader
+ : public itk::MeshSource< M >
+ {
+ public:
+ typedef WaveFrontOBJReader Self;
+ typedef itk::MeshSource< M > Superclass;
+ typedef itk::SmartPointer< Self > Pointer;
+ typedef itk::SmartPointer< const Self > ConstPointer;
+
+ typedef M MeshType;
+ typedef typename M::MeshTraits MeshTraits;
+ typedef typename M::PointType PointType;
+ typedef typename MeshTraits::PixelType PixelType;
+ typedef typename M::Pointer MeshPointer;
+ typedef typename M::CellTraits CellTraits;
+ typedef typename M::CellIdentifier CellIdentifier;
+ typedef typename M::CellType CellType;
+ typedef typename M::CellAutoPointer CellAutoPointer;
+ typedef typename M::PointIdentifier PointIdentifier;
+ typedef typename CellTraits::PointIdIterator PointIdIterator;
+ typedef typename M::PointsContainerPointer PointsContainerPointer;
+ typedef typename M::PointsContainer PointsContainer;
+
+ typedef itk::PolygonCell< CellType > TPolygonCell;
+
+ public:
+ itkNewMacro( Self );
+ itkTypeMacro( WaveFrontOBJReader, itkMeshSource );
+
+ itkSetStringMacro( FileName );
+ itkGetStringMacro( FileName );
+
+ protected:
+ WaveFrontOBJReader( );
+ virtual ~WaveFrontOBJReader( );
+
+ virtual void GenerateData( );
+
+ private:
+ // Purposely not implemented
+ WaveFrontOBJReader( const Self& );
+ Self& operator=( const Self & );
+
+ protected:
+ std::string m_FileName;
+ };
+
+ } // ecapseman
+
+} // ecapseman
+
+#include <cpExtensions/IO/WaveFrontOBJReader.hxx>
+
+#endif // __CPEXTENSIONS__IO__WAVEFRONTOBJREADER__H__
+
+// eof - $RCSfile$