diff --git a/GraphicsView/demo/Triangulation_2/Constrained_Delaunay_triangulation_2.cpp b/GraphicsView/demo/Triangulation_2/Constrained_Delaunay_triangulation_2.cpp
index 7e49e55be75..2f07c180a5a 100644
--- a/GraphicsView/demo/Triangulation_2/Constrained_Delaunay_triangulation_2.cpp
+++ b/GraphicsView/demo/Triangulation_2/Constrained_Delaunay_triangulation_2.cpp
@@ -193,6 +193,8 @@ public slots:
void on_actionShowDelaunay_toggled(bool checked);
+ void on_actionShowTriangulationInDomain_toggled(bool checked);
+
void on_actionShow_constrained_edges_toggled(bool checked);
void on_actionShow_voronoi_edges_toggled(bool checked);
@@ -297,6 +299,7 @@ MainWindow::MainWindow()
// Check two actions
this->actionInsertPolyline->setChecked(true);
this->actionShowDelaunay->setChecked(true);
+ this->actionShowTriangulationInDomain->setChecked(false);
this->actionShow_faces_in_domain->setChecked(true);
this->actionShow_constrained_edges->setChecked(true);
this->actionShow_voronoi_edges->setChecked(false);
@@ -390,6 +393,23 @@ void
MainWindow::on_actionShowDelaunay_toggled(bool checked)
{
dgi->setVisibleEdges(checked);
+ if(checked)
+ {
+ dgi->setVisibleInsideEdges(false);
+ actionShowTriangulationInDomain->setChecked(false);
+ }
+ update();
+}
+
+void
+MainWindow::on_actionShowTriangulationInDomain_toggled(bool checked)
+{
+ dgi->setVisibleInsideEdges(checked);
+ if(checked)
+ {
+ dgi->setVisibleEdges(false);
+ actionShowDelaunay->setChecked(false);
+ }
update();
}
diff --git a/GraphicsView/demo/Triangulation_2/Constrained_Delaunay_triangulation_2.ui b/GraphicsView/demo/Triangulation_2/Constrained_Delaunay_triangulation_2.ui
index bff01e1cd15..888a012378f 100644
--- a/GraphicsView/demo/Triangulation_2/Constrained_Delaunay_triangulation_2.ui
+++ b/GraphicsView/demo/Triangulation_2/Constrained_Delaunay_triangulation_2.ui
@@ -110,6 +110,7 @@
+
@@ -368,6 +369,14 @@
Show seeds
+
+
+ true
+
+
+ Show triangulation in domain only
+
+
diff --git a/GraphicsView/include/CGAL/Qt/DelaunayMeshTriangulationGraphicsItem.h b/GraphicsView/include/CGAL/Qt/DelaunayMeshTriangulationGraphicsItem.h
index aa54fcfb633..ac25d265936 100644
--- a/GraphicsView/include/CGAL/Qt/DelaunayMeshTriangulationGraphicsItem.h
+++ b/GraphicsView/include/CGAL/Qt/DelaunayMeshTriangulationGraphicsItem.h
@@ -32,7 +32,8 @@ namespace CGAL {
namespace Qt {
template
-class DelaunayMeshTriangulationGraphicsItem : public ConstrainedTriangulationGraphicsItem
+class DelaunayMeshTriangulationGraphicsItem
+ : public ConstrainedTriangulationGraphicsItem
{
typedef ConstrainedTriangulationGraphicsItem Base;
typedef typename T::Geom_traits Geom_traits;
@@ -49,6 +50,7 @@ public:
, seeds_begin()
, seeds_end()
, visible_seeds(false)
+ , visible_inside_edges(false)
{
setSeedsPen(QPen(::Qt::black, 10.));
}
@@ -143,6 +145,18 @@ public:
this->update();
}
+ bool visibleInsideEdges() const
+ {
+ return visible_inside_edges;
+ }
+
+ void setVisibleInsideEdges(const bool b)
+ {
+ visible_inside_edges = b;
+ update();
+ }
+
+
protected:
void drawAll(QPainter *painter);
void paintSeeds(QPainter *painter);
@@ -151,6 +165,7 @@ protected:
bool visible_blind_faces;
bool visible_voronoi;
bool visible_seeds;
+ bool visible_inside_edges;
typename std::list::iterator seeds_begin, seeds_end;
QBrush in_domain_brush;
@@ -177,6 +192,20 @@ DelaunayMeshTriangulationGraphicsItem::drawAll(QPainter *painter)
}
painter->setBrush(::Qt::NoBrush);
}
+ if(visibleInsideEdges())
+ {
+ this->painterostream = PainterOstream(painter);
+ painter->setBrush(::Qt::NoBrush);
+ painter->setPen(this->edgesPen());
+ for(typename T::Finite_faces_iterator fit = this->t->finite_faces_begin();
+ fit != this->t->finite_faces_end();
+ ++fit){
+ if(fit->is_in_domain()){
+ this->painterostream << this->t->triangle(fit);
+ }
+ }
+ painter->setBrush(::Qt::NoBrush);
+ }
if(visibleBlindFaces())
{
this->painterostream = PainterOstream(painter);