#ifndef FILE_2_GRID_H
#define FILE_2_GRID_H

/*!
  \file
  \brief ファイルの数値を X,Y のペアと見なして Grid を生成し、返す
  
  \author Satofumi KAMIMURA
  
  $Id: file2Grid.h 286 2008-10-20 09:40:22Z satofumi $
*/

#include "typeUtils.h"
#include <fstream>
#include <iterator>


namespace VXV {
  /*!
    \brief 指定ファイルデータを Grid 配列に変換して返す

    \param v [o] Grid を格納する vector
    \param fname [i] ファイル名
  */
  template<class T> void File2Grid(std::vector<T>& v, const char* fname) {
    std::ifstream from(fname);

    for (std::istream_iterator<int> it(from);
	 it != std::istream_iterator<int>();) {
      int x = *it++;
      if (it == std::istream_iterator<int>()) {
	break;
      }
      int y = *it++;
      v.push_back(T(x, y));
    }
  }
}

#endif /* !FILE_2_GRID_H */
