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