diff --git a/GraphicsView/demo/Polygon/Polygon_2.cpp b/GraphicsView/demo/Polygon/Polygon_2.cpp
index e7ad7df4c97..0e5ebec7f4c 100644
--- a/GraphicsView/demo/Polygon/Polygon_2.cpp
+++ b/GraphicsView/demo/Polygon/Polygon_2.cpp
@@ -77,6 +77,7 @@ public slots:
void on_actionRecenter_triggered();
void on_actionInnerSkeleton_triggered();
void on_actionLinearLeastSquaresFitting_triggered();
+ void on_actionLinearLeastSquaresFittingOfSegments_triggered();
void on_actionCreateInputPolygon_toggled(bool);
void on_actionYMonotonePartition_triggered();
@@ -323,17 +324,33 @@ MainWindow::on_actionLinearLeastSquaresFitting_triggered()
clear();
Line_2 line;
- CGAL::linear_least_squares_fitting_2(poly.vertices_begin(),
- poly.vertices_end(),
- line,
- CGAL::Dimension_tag<0>());
-
- // Line_2 line (Point_2(0,0), Point_2(1,1));
- lgi->setLine(line);
- lgi->show();
+ CGAL::linear_least_squares_fitting_2(poly.vertices_begin(),
+ poly.vertices_end(),
+ line,
+ CGAL::Dimension_tag<0>());
+
+ lgi->setLine(line);
+ lgi->show();
}
}
+void
+MainWindow::on_actionLinearLeastSquaresFittingOfSegments_triggered()
+{
+ if(poly.size()>2){
+ clear();
+
+ Line_2 line;
+ CGAL::linear_least_squares_fitting_2(poly.edges_begin(),
+ poly.edges_end(),
+ line,
+ CGAL::Dimension_tag<1>());
+
+
+ lgi->setLine(line);
+ lgi->show();
+ }
+}
void
MainWindow::on_actionYMonotonePartition_triggered()
diff --git a/GraphicsView/demo/Polygon/Polygon_2.ui b/GraphicsView/demo/Polygon/Polygon_2.ui
index d24a59533ae..ed8ebd75edb 100644
--- a/GraphicsView/demo/Polygon/Polygon_2.ui
+++ b/GraphicsView/demo/Polygon/Polygon_2.ui
@@ -120,6 +120,7 @@
+
@@ -221,7 +222,12 @@
- Linear Least Squares Fitting
+ Linear Least Squares Fitting of Points
+
+
+
+
+ Linear Least Squares Fitting of Segments