#ifndef qwt3d_reader_h__2004_03_07_14_03_begin_guarded_code
#define qwt3d_reader_h__2004_03_07_14_03_begin_guarded_code

#include "qwt3d_io.h"

namespace Qwt3D
{

/*! 
Functor for reading of native files containing grid data. 
As a standart input functor associated with "mes" and "MES"
file extensions.   
*/
class QWT3D_EXPORT NativeReader : public IO::Functor
{
friend class IO;

public:		
  NativeReader();

private:
  //! Provides new NativeReader object. 
  IO::Functor* clone() const{return new NativeReader(*this);}
  //! Performs actual input
  bool operator()(Plot3D* plot, QString const& fname);
  bool operator()(QImage* plot, QString const& fname)
  {
	Q_UNUSED(plot); Q_UNUSED(fname); return false;		// Reading an image is not supported.
  }

  static const char* magicstring;
  double minz_, maxz_;
	bool collectInfo(FILE*& file, QString const& fname, unsigned& xmesh, unsigned& ymesh, 
									 double& minx, double& maxx, double& miny, double& maxy);
};


} // ns

#endif
