X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpExtensions%2FIO%2FWaveFrontOBJReader.h;fp=lib%2FcpExtensions%2FIO%2FWaveFrontOBJReader.h;h=9ce320d19b90f37a2bf4d355d9bc1f9c1a6ce9cb;hb=2361f4f97631e09d88d8a5510a369817dcaa19db;hp=0000000000000000000000000000000000000000;hpb=e18f55af541dba9026284beb6f12ef06b12e6f47;p=cpPlugins.git diff --git a/lib/cpExtensions/IO/WaveFrontOBJReader.h b/lib/cpExtensions/IO/WaveFrontOBJReader.h new file mode 100644 index 0000000..9ce320d --- /dev/null +++ b/lib/cpExtensions/IO/WaveFrontOBJReader.h @@ -0,0 +1,79 @@ +#ifndef __CPEXTENSIONS__IO__WAVEFRONTOBJREADER__H__ +#define __CPEXTENSIONS__IO__WAVEFRONTOBJREADER__H__ + +#include +#include +#include +#include +#include + +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 + +#endif // __CPEXTENSIONS__IO__WAVEFRONTOBJREADER__H__ + +// eof - $RCSfile$