Моей средой является CGAL 4.5 и QT5 на Ubuntu 14.04.Как правильно назвать эту функцию интерфейса QT CGAL?
Я изучаю, как использовать CGAL's Qt interface для визуализации геометрических объектов, похожих на точки, линии, сегменты. Там, кажется, нет примеров, использующих эту фреймворк онлайн, поэтому я боюсь в данный момент.
Я не могу заставить свой тестовый код работать. Он компилируется, но генерирует seg-fault.
Вот мой код из моего файла MainWindow.cpp
в приложении QTwidgets, созданным через QtCreator.
#include <iostream>
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Qt/PointsGraphicsItem.h>
#include <CGAL/Qt/SegmentsGraphicsItem.h>
#include <vector>
typedef CGAL::Simple_cartesian<double> Kernel;
typedef Kernel::Point_2 Point_2;
typedef Kernel::Segment_2 Segment_2;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
scene = new QGraphicsScene(this);
ui->graphicsView->setScene(scene);
std::vector<Point_2> pts;
pts.push_back(Point_2(1,1));
pts.push_back(Point_2(10,10));
CGAL::Qt::PointsGraphicsItem< std::vector<Point_2> > graphical_points(&pts);
}
Последняя строка, кажется, проблема. Мой код продолжает бросать segfault в этот момент. Сообщение
The inferior stopped because it received a signal from the operating system.
Signal name : SIGSEGV
Signal meaning : Segmentation fault
Что я делаю неправильно в этом вызове функции? Я знаю, что мне нужно добавить очки в графическую сцену, но в данный момент это не важно.
В идеале, когда код запускается, он должен отображать две точки, одну в точке (1,1), а другую в (10,10), когда я добавляю эти точки в сцену.
Here является ссылкой на файл PointsGraphicsItem.h
на Pastebin.