Моя первая проблема заключается в том, что итераторы вершин и точки «неизвестны» в CLION. Когда я объявляю точку и хочу получить доступ к ее функциям-членам, автозаполнение не выполняется (в отличие от многоугольников и т. Д.).
Мой второй вопрос: как я могу перебирать вершины многоугольника и получать координаты вершин в виде значений типа int?
Идея заключалась в следующем, но тип возвращаемого значения p.x () не является int или double.
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Polygon_2.h>
typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel;
typedef Kernel::Point_2 Point;
typedef CGAL::Polygon_2<Kernel> Polygon_2;
int main() {
std::vector<Point> points;
points.emplace_back(Point(10, 10));
points.emplace_back(Point(20, 10));
points.emplace_back(Point(20, 20));
points.emplace_back(Point(10, 20));
Polygon_2 poly(points.begin(), points.end());
for (auto vi = poly.vertices_begin(); vi != poly.vertices_end(); ++vi)
{
int x = (*vi).x();
int y = (*vi).y();
}
return 0;
}
Ошибка компилятора:
main.cpp:20:13: error: no viable conversion from 'typename cpp11::result_of<typename R::Compute_x_2 (Point_2<Epeck>)>::type' (aka 'Lazy_exact_nt<CGAL::Gmpq>') to 'int'
int x = (*vi).x();
^ ~~~~~~~~~
Спасибо за помощь!