Ввод для классов CGAL из файла

Существует ли простой способ считывания точек и отрезков в 2D из одного файла с использованием CGAL?

Какой должен быть формат для этого файла?

0

Решение

В CGAL operator<< перегружен для объектов ядра и потоков. Формат, по-видимому, недокументирован, но отчасти очевиден для простых типов.

#include <CGAL/basic.h>
#include <CGAL/Simple_cartesian.h>

typedef CGAL::Simple_cartesian<double> K;

int main()
{
K::Point_2 p;
std::stringstream ss;
ss << "2.05 3.05";

ss >> p; // read from a stream
std::cout << p << std::endl; // write to a stream

K::Segment_2 s;
ss.clear();
ss << "2.3 4.2 4.2 2.3";
ss >> s; // read a segment from a stream
std::cout << s << std::endl; // write a segment to a stream
return 0;
}

Глядя на код CGAL::Polygon_2 ожидает ввода, как это:

"4 0 0 0 1 1 1 1 0"

где первое число — это количество очков, следующих за ними и после них.

2

Другие решения

Других решений пока нет …