diff --git a/Boolean_set_operations_2/examples/Boolean_set_operations_2/bezier_traits_adapter2.cpp b/Boolean_set_operations_2/examples/Boolean_set_operations_2/bezier_traits_adapter2.cpp index b1fee46ed15..1c90e786d70 100644 --- a/Boolean_set_operations_2/examples/Boolean_set_operations_2/bezier_traits_adapter2.cpp +++ b/Boolean_set_operations_2/examples/Boolean_set_operations_2/bezier_traits_adapter2.cpp @@ -6,7 +6,7 @@ #ifndef CGAL_USE_CORE #include -int main () +int main() { std::cout << "Sorry, this example needs CORE ..." << std::endl; return (0); @@ -16,7 +16,6 @@ int main () #include #include #include -#include #include #include #include @@ -24,25 +23,25 @@ int main () #include -typedef CGAL::CORE_algebraic_number_traits Nt_traits; -typedef Nt_traits::Rational Rational; -typedef Nt_traits::Algebraic Algebraic; +typedef CGAL::CORE_algebraic_number_traits Nt_traits; +typedef Nt_traits::Rational Rational; +typedef Nt_traits::Algebraic Algebraic; -typedef CGAL::Cartesian Rat_kernel; -typedef CGAL::Cartesian Alg_kernel; +typedef CGAL::Cartesian Rat_kernel; +typedef CGAL::Cartesian Alg_kernel; typedef CGAL::Arr_Bezier_curve_traits_2 - Traits_2; + Traits_2; -typedef Rat_kernel::Point_2 Bezier_rat_point; -typedef Traits_2::Curve_2 Bezier_curve; -typedef Traits_2::X_monotone_curve_2 Bezier_X_monotone_curve; -typedef CGAL::Gps_traits_2 Bezier_traits; -typedef Bezier_traits::General_polygon_2 Bezier_polygon; -typedef Bezier_traits::General_polygon_with_holes_2 Bezier_polygon_with_holes; -typedef CGAL::General_polygon_set_2 Bezier_polygon_set; -typedef std::vector Bezier_polygon_vector; +typedef Rat_kernel::Point_2 Bezier_rat_point; +typedef Traits_2::Curve_2 Bezier_curve; +typedef Traits_2::X_monotone_curve_2 Bezier_X_monotone_curve; +typedef CGAL::Gps_traits_2 Bezier_traits; +typedef Bezier_traits::General_polygon_2 Bezier_polygon; +typedef Bezier_traits::General_polygon_with_holes_2 Bezier_polygon_with_holes; +typedef CGAL::General_polygon_set_2 Bezier_polygon_set; +typedef std::vector Bezier_polygon_vector; -Bezier_curve read_bezier_curve ( std::istream& is, bool aDoubleFormat ) +Bezier_curve read_bezier_curve(std::istream& is, bool aDoubleFormat) { // Read the number of control points. unsigned int n; @@ -51,63 +50,52 @@ Bezier_curve read_bezier_curve ( std::istream& is, bool aDoubleFormat ) // Read the control points. std::vector ctrl_pts; - - for ( unsigned int k = 0; k < n; k++) - { - Bezier_rat_point p ; - if ( aDoubleFormat ) - { - double x,y ; - is >> x >> y ; + for (unsigned int k = 0; k < n; ++k) { + Bezier_rat_point p; + if (aDoubleFormat) { + double x, y; + is >> x >> y; p = Bezier_rat_point(x,y); } else - { - is >> p ; - } + is >> p; - if ( k == 0 || ctrl_pts[k-1] != p ) - { - ctrl_pts.push_back(p) ; - } + if ((k == 0) || (ctrl_pts[k-1] != p)) + ctrl_pts.push_back(p); } - return Bezier_curve(ctrl_pts.begin(),ctrl_pts.end()); + return Bezier_curve(ctrl_pts.begin(), ctrl_pts.end()); } -bool read_bezier ( char const* aFileName, Bezier_polygon_set& rSet ) +bool read_bezier(char const* aFileName, Bezier_polygon_set& rSet) { - bool rOK = false ; + bool rOK = false; - std::ifstream in_file (aFileName); + std::ifstream in_file(aFileName); - if ( in_file ) - { - try - { - std::cout << "Reading " << aFileName << std::endl ; + if (in_file) { + try { + std::cout << "Reading " << aFileName << std::endl; - std::string format ; - std::getline(in_file,format); + std::string format; + std::getline(in_file, format); - bool lDoubleFormat = ( format.length() >= 6 && - format.substr(0,6) == "DOUBLE") ; + bool lDoubleFormat = + ((format.length() >= 6) && (format.substr(0,6) == "DOUBLE")); // Red the number of bezier polygon with holes - unsigned int n_regions ; + unsigned int n_regions; in_file >> n_regions; - for ( unsigned int r = 0 ; r < n_regions ; ++ r ) - { - Bezier_polygon_vector polygons ; + for (unsigned int r = 0; r < n_regions; ++r) { + Bezier_polygon_vector polygons; // Read the number of bezier curves. unsigned int n_boundaries; in_file >> n_boundaries; - for ( unsigned int b = 0 ; b < n_boundaries ; ++ b ) - { + for (unsigned int b = 0; b < n_boundaries; ++b) { // Read the number of bezier curves. unsigned int n_curves; in_file >> n_curves; @@ -117,8 +105,7 @@ bool read_bezier ( char const* aFileName, Bezier_polygon_set& rSet ) std::list xcvs; - for ( unsigned int k = 0; k < n_curves; ++ k ) - { + for (unsigned int k = 0; k < n_curves; ++k) { // Read the current curve and subdivide it into x-monotone subcurves. std::list x_objs; @@ -129,101 +116,90 @@ bool read_bezier ( char const* aFileName, Bezier_polygon_set& rSet ) traits.make_x_monotone_2_object(); Bezier_curve B = read_bezier_curve(in_file, lDoubleFormat); - if ( B.number_of_control_points() >= 2 ) - { + if (B.number_of_control_points() >= 2) { - make_x_monotone (B, std::back_inserter (x_objs)); + make_x_monotone(B, std::back_inserter(x_objs)); - for (xoit = x_objs.begin(); xoit != x_objs.end(); ++xoit) - { - if (CGAL::assign (xcv, *xoit)) - { - xcvs.push_back (xcv); - } + for (xoit = x_objs.begin(); xoit != x_objs.end(); ++xoit) { + if (CGAL::assign(xcv, *xoit)) + xcvs.push_back(xcv); } } } - Bezier_polygon pgn (xcvs.begin(), xcvs.end()); + Bezier_polygon pgn(xcvs.begin(), xcvs.end()); CGAL::Orientation orient = pgn.orientation(); - std::cout << " Orientation: " << orient << std::endl ; + std::cout << " Orientation: " << orient << std::endl; - if (( b == 0 && orient == CGAL::CLOCKWISE) || - ( b > 0 && orient == CGAL::COUNTERCLOCKWISE)) + if (((b == 0) && (orient == CGAL::CLOCKWISE)) || + ((b > 0) && (orient == CGAL::COUNTERCLOCKWISE))) { - std::cout << " Reversing orientation: " << std::endl ; + std::cout << " Reversing orientation: " << std::endl; pgn.reverse_orientation(); } - polygons.push_back (pgn); + polygons.push_back(pgn); } - if ( polygons.size() > 0 ) - { + if (polygons.size() > 0) { Bezier_polygon_with_holes pwh(polygons.front()); - if ( polygons.size() > 1 ) - { + if (polygons.size() > 1) { Bezier_polygon_vector::const_iterator it; - for ( it = CGAL::cpp11::next(polygons.begin()); it != polygons.end(); - ++ it ) + for (it = CGAL::cpp11::next(polygons.begin()); + it != polygons.end(); ++it) pwh.add_hole(*it); } - if ( is_valid_polygon_with_holes(pwh, rSet.traits() ) ) - { - std::cout << " Inserting bezier polygon with holes made of " - << polygons.size() << " boundaries into Set." - << std::endl ; - rSet.join(pwh) ; - std::cout << " Done." << std::endl ; + if (is_valid_polygon_with_holes(pwh, rSet.traits())) { + std::cout << " Inserting Bezier polygon with holes comprising " + << polygons.size() << " boundaries in total into set." + << std::endl; + rSet.join(pwh); + std::cout << " Done." << std::endl; } else - { - std::cout << " **** Bezier polygon wiht holes IS NOT VALID ****" - << std::endl ; - } + std::cout << " **** Bezier polygon with holes is NOT VALID ****" + << std::endl; } - rOK = true ; + rOK = true; } } - catch( std::exception const& x ) - { - std::cout << "Exception ocurred during reading of bezier polygon set:" - << x.what() << std::endl ; + catch(std::exception const& x) { + std::cout << "An exception ocurred during reading of Bezier polygon set:" + << x.what() << std::endl; } - catch(...) - { - std::cout << "Exception ocurred during reading of bezier polygon set." - << std::endl ; + catch(...) { + std::cout << "An exception ocurred during reading of Bezier polygon set." + << std::endl; } } - return rOK ; + return rOK; } // The main program. -int main (int argc, char* argv[]) +int main(int argc, char* argv[]) { const char* filename1 = (argc > 1) ? argv[1] : "char_g.bps"; const char* filename2 = (argc > 2) ? argv[2] : "char_m.bps"; const char* bop = (argc > 3) ? argv[3] : "i"; // Read the general polygons from the input files. - CGAL::Timer timer; - Bezier_polygon_set S1, S2 ; + CGAL::Timer timer; + Bezier_polygon_set S1, S2; timer.start(); - if (! read_bezier (filename1, S1)) { + if (! read_bezier(filename1, S1)) { std::cerr << "Failed to read " << filename1 << " ..." << std::endl; return 1; } - if (! read_bezier (filename2, S2)) { + if (! read_bezier(filename2, S2)) { std::cerr << "Failed to read " << filename2 << " ..." << std::endl; return 1; } @@ -232,29 +208,27 @@ int main (int argc, char* argv[]) std::cout << "Constructed the input polygons in " << timer.time() << " seconds." << std::endl << std::endl; - std::cout << "Starting boolean operation..." << std::endl ; + std::cout << "Starting boolean operation..." << std::endl; timer.reset(); timer.start(); - try - { - switch ( bop[0] ) - { - case 'i': S1.intersection(S2); break ; - case 'u': S1.join (S2); break ; + try { + switch (bop[0]) { + case 'i': S1.intersection(S2); break; + case 'u': S1.join(S2); break; } } - catch( std::exception const& x ) - { - std::cout << "Exception ocurred during the boolean operation:" << x.what() - << std::endl ; + catch(std::exception const& x) { + std::cout << "An exception occurred during the Boolean operation:" + << x.what() << std::endl; } - catch(...) - { - std::cout << "Exception ocurred during the boolean operation." << std::endl; + catch(...) { + std::cout << "An exception occurred during the Boolean operation." + << std::endl; } timer.stop(); - std::cout << "The intersection computation took " + std::cout << "The " << ( bop[0] == 'i' ? "intersection" : "union" ) + << " computation took " << timer.time() << " seconds." << std::endl; return 0;