#ifndef CGAL_QT_DELAUNAY_MESH_INSERT_SEEDS_H #define CGAL_QT_DELAUNAY_MESH_INSERT_SEEDS_H #include #include #include #include #include namespace CGAL { namespace Qt { template class DelaunayMeshInsertSeeds : public GraphicsViewInput { public: typedef typename CDT::Point Point; DelaunayMeshInsertSeeds(QGraphicsScene* s, CDT* cdt, QObject* parent) : GraphicsViewInput(parent) , cdt_(cdt) , scene_(s) {} protected: void mousePressEvent(QGraphicsSceneMouseEvent *event); bool eventFilter(QObject *obj, QEvent *event); private: CDT* cdt_; QGraphicsScene* scene_; }; template void DelaunayMeshInsertSeeds::mousePressEvent(QGraphicsSceneMouseEvent *event) { if((event->modifiers() & ::Qt::ShiftModifier) && event->button() == ::Qt::LeftButton) { Converter convert; typename T::Point seed = convert(event->scenePos()); Q_EMIT(generate(CGAL::make_object(seed))); } } template bool DelaunayMeshInsertSeeds::eventFilter(QObject *obj, QEvent *event) { if (event->type() == QEvent::GraphicsSceneMousePress) { QGraphicsSceneMouseEvent *mouseEvent = static_cast(event); mousePressEvent(mouseEvent); return false; } else { // standard event processing return QObject::eventFilter(obj, event); } } } // namespace Qt } // namespace CGAL #endif // CGAL_QT_DELAUNAY_MESH_INSERT_SEEDS_H