File: read_polylines.h

package info (click to toggle)
cgal 6.1.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 144,952 kB
  • sloc: cpp: 811,597; ansic: 208,576; sh: 493; python: 411; makefile: 286; javascript: 174
file content (29 lines) | stat: -rw-r--r-- 656 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef READ_POLYLINES_H
#define READ_POLYLINES_H

#include <cstddef>
#include <vector>
#include <fstream>

template <typename Point_3>
bool read_polylines(const std::string fname,
                    std::vector<std::vector<Point_3> >& polylines)
{
  std::ifstream ifs(fname);
  if(ifs.bad()) return false;
  std::size_t n;
  while(ifs >> n) {
    polylines.resize(polylines.size()+1);
    std::vector<Point_3>& polyline = polylines.back();
    while(n-- != 0) {
      Point_3 p;
      ifs >> p;
      if(ifs.fail()) return false;
      polyline.push_back(p);
    }
  }
  if(ifs.bad()) return false;
  else return ifs.eof();
}

#endif // READ_POLYLINES_H