File: read_polylines.h

package info (click to toggle)
cgal 4.13-1
  • links: PTS
  • area: main
  • in suites: buster
  • size: 101,504 kB
  • sloc: cpp: 703,154; ansic: 163,044; sh: 674; fortran: 616; python: 411; makefile: 115
file content (29 lines) | stat: -rw-r--r-- 650 bytes parent folder | download | duplicates (3)
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 char* 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