diff --git a/.gitattributes b/.gitattributes index f7ab2e43736..97b0c3fdf3b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -882,6 +882,8 @@ Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/data/bulldog Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/data/bulldog_2.bps -text Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/data/char_g.bps -text Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/data/char_m.bps -text +Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/data/custom_1.bps -text +Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/data/custom_2.bps -text Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/data/flag.bps -text Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/data/logo.bps -text Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/data/spoun.bps -text diff --git a/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/boolean_operations_2.cpp b/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/boolean_operations_2.cpp index 810c511a396..aae39c09ac9 100644 --- a/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/boolean_operations_2.cpp +++ b/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/boolean_operations_2.cpp @@ -465,7 +465,9 @@ public slots: void on_actionOpenLinear_triggered() ; void on_actionOpenDXF_triggered() ; void on_actionOpenBezier_triggered() ; - void on_actionSave_triggered() ; + void on_actionSaveRed_triggered() ; + void on_actionSaveBlue_triggered() ; + void on_actionSaveResult_triggered() ; void on_actionIntersection_triggered() ; void on_actionUnion_triggered() ; void on_actionBlueMinusRed_triggered() ; @@ -999,27 +1001,79 @@ void MainWindow::on_actionOpenBezier_triggered() open(QFileDialog::getOpenFileName(this, tr("Open Bezier Polygon"), "../data", tr("Bezier Curve files (*.bps)") )); } -void MainWindow::on_actionSave_triggered() +void MainWindow::on_actionSaveRed_triggered() { if ( mCircular_active ) { - if ( !save_circular(QFileDialog::getSaveFileName(this, tr("Save Acive Circular Polygon Set"), "../data", tr("Linear Curve files (*.lps)") ) - ,active_set().circular() + if ( !save_circular(QFileDialog::getSaveFileName(this, tr("Save 'P' Circular Polygon Set"), "../data", tr("Linear Curve files (*.lps)") ) + ,red_set().circular() ) ) { - show_error("Caanoit save circular polygon set."); + show_error("Cannot save circular polygon set."); } } else { - if ( !save_bezier(QFileDialog::getSaveFileName(this, tr("Save Acive Bezier Polygon Set"), "../data", tr("Bezier Curve files (*.bps)") ) + if ( !save_bezier(QFileDialog::getSaveFileName(this, tr("Save 'P' Bezier Polygon Set"), "../data", tr("Bezier Curve files (*.bps)") ) ,active_set().bezier() ) ) { - show_error("Caanoit save bezier polygon set."); + show_error("Cannot save bezier polygon set."); + } + } + +} + +void MainWindow::on_actionSaveBlue_triggered() +{ + if ( mCircular_active ) + { + if ( !save_circular(QFileDialog::getSaveFileName(this, tr("Save 'Q' Circular Polygon Set"), "../data", tr("Linear Curve files (*.lps)") ) + ,active_set().circular() + ) + ) + { + show_error("Cannot save circular polygon set."); + } + + } + else + { + if ( !save_bezier(QFileDialog::getSaveFileName(this, tr("Save 'Q' Bezier Polygon Set"), "../data", tr("Bezier Curve files (*.bps)") ) + ,active_set().bezier() + ) + ) + { + show_error("Cannot save bezier polygon set."); + } + } + +} + +void MainWindow::on_actionSaveResult_triggered() +{ + if ( mCircular_active ) + { + if ( !save_circular(QFileDialog::getSaveFileName(this, tr("Save Result Circular Polygon Set"), "../data", tr("Linear Curve files (*.lps)") ) + ,result_set().circular() + ) + ) + { + show_error("Cannot save circular polygon set."); + } + + } + else + { + if ( !save_bezier(QFileDialog::getSaveFileName(this, tr("Save Result Bezier Polygon Set"), "../data", tr("Bezier Curve files (*.bps)") ) + ,result_set().bezier() + ) + ) + { + show_error("Cannot save bezier polygon set."); } } diff --git a/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/boolean_operations_2.ui b/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/boolean_operations_2.ui index 3f9899bea17..5e6bcc5ba76 100644 --- a/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/boolean_operations_2.ui +++ b/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/boolean_operations_2.ui @@ -60,7 +60,9 @@ - + + + @@ -215,12 +217,24 @@ - + - &Save Currently Active Set + &Save 'P' Set + + + &Save 'Q' Set + + + + + + &Save Result Set + + + &Quit diff --git a/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/data/custom_1.bps b/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/data/custom_1.bps new file mode 100644 index 00000000000..1f14666a6ea --- /dev/null +++ b/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/data/custom_1.bps @@ -0,0 +1,29 @@ +DOUBLE +1 + 1 + 5 + 4 + 0 15 + 0 5 + 5 0 + 15 0 + 4 + 15 0 + 25 0 + 30 5 + 30 15 + 4 + 30 15 + 30 50 + 20 50 + 20 10 + 4 + 20 10 + 20 5 + 10 5 + 10 10 + 4 + 10 10 + 10 50 + 0 50 + 0 15 \ No newline at end of file diff --git a/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/data/custom_2.bps b/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/data/custom_2.bps new file mode 100644 index 00000000000..6ae4428cabd --- /dev/null +++ b/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/data/custom_2.bps @@ -0,0 +1,29 @@ +DOUBLE +1 + 1 + 5 + 4 + 0 35 + 0 45 + 5 50 + 15 50 + 4 + 15 50 + 25 50 + 30 45 + 30 35 + 4 + 30 35 + 30 0 + 20 0 + 20 40 + 4 + 20 40 + 20 45 + 10 45 + 10 40 + 4 + 10 40 + 10 0 + 0 0 + 0 35 \ No newline at end of file diff --git a/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/include/CGAL/Qt/BezierCurves.h b/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/include/CGAL/Qt/BezierCurves.h index d5e03df6126..4dcfa498d4c 100644 --- a/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/include/CGAL/Qt/BezierCurves.h +++ b/Boolean_set_operations_2/demo/Boolean_set_operations_2_GraphicsView/include/CGAL/Qt/BezierCurves.h @@ -343,6 +343,7 @@ struct Draw_bezier_X_monotone_curve } } ; + template class Bezier_boundary_pieces_graphics_item : public Boundary_pieces_graphics_item {