#define CGAL_CAST_INT #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "benchmark.h" int main(int argc, char* argv[]) { char* Dxffilename[15]/*={"myFirst.dxf","minimask0.dxf","minimask1.dxf","mask0.dxf","smallpainttrack.dxf","mask0_25.dxf","mask0_5.dxf","cad_l2.dxf","cad_l1.dxf","CIOnZDraw.dxf","che_mod1.dxf","elekonta.dxf","painttrack.dxf","netlist_signal_1.dxf","51.dxf"}*/; char* Htmlfilename; char* Texfilename; char exten[4]; int i; i=0; if (argv[1] != NULL) { int len =strlen(argv[1]); for (int j=0; j < 3 ; j++) { exten[j]=argv[1][len - 3 + j]; } if (strncmp(exten,"dxf",3) !=0) { std::cout<< "File is not correct (*.dxf is needed)." << std::endl; return 0; } else{ Dxffilename[i] = argv[1]; std::cout<< "File "<< Dxffilename[i] << " is correct."<2 and argv[2] != NULL) { int len =strlen(argv[2]); for (int j=0; j < 4 ; j++) { exten[j]=argv[2][len - 4 + j]; } if (strncmp(exten,"html",4) !=0) { std::cout<< "File "<< argv[2] << " is not correct (*.html is needed)." << std::endl; return 0; } else{ std::cout<< "File "<< argv[2] << " is correct." < > NT4; // typedef CGAL::Cartesian Linear_k4; // typedef CGAL::Algebraic_kernel_2_2 Algebraic_k4; // typedef CGAL::Curved_kernel CK4; // // #ifndef CGAL_CURVED_KERNEL_DEBUG // typedef CGAL::Circular_arc_traits CircularK_CA_Traits; // #else // typedef CGAL::Circular_arc_traits Traits0; // typedef CGAL::Circular_arc_traits_tracer CircularK_CA_Traits; // #endif // // typedef CK4::Circular_arc_2 CircularKArc; // typedef std::vector CircularKArcContainer; // bench.kernel("Circular kernel Circular arc traits"); // // typedef CircularK_CA_Traits::Curve_2 Conic_arc_2; // typedef CGAL::Arrangement_2 Pmwx; // typedef CGAL::Arr_naive_point_location Point_location; // // typedef CircularK_CA_Traits::X_monotone_curve_2 X_monotone_curve_2; // typedef CK4::Point_2 Point_2; // typedef CK4::Circle_2 Circle_2; // typedef CK4::Circular_arc_2 Circular_arc_2; // // // CGAL::Random generatorOfgenerator; // int random_seed = generatorOfgenerator.get_int(0, 123456); // std::cout << "random_seed = " << random_seed << std::endl; // CGAL::Random theRandom(random_seed); // int random_max = 128; // int random_min = -128; // CircularKArcContainer ac; // int x; // int y; // int r; // for(int i = 0; i < 20; i++){ // x = theRandom.get_int(random_min,random_max); // y = theRandom.get_int(random_min,random_max); // r = theRandom.get_int(1,random_max); // ac.push_back( Circle_2( Point_2(x,y), r*r)); // } // // // Pmwx _pm; // // Point_location _pl(_pm); // // try{ // // bench.start(); // // for (typename ArcContainer::const_iterator it=ac.begin(); // // it != ac.end(); ++it) { // // //insert(_pm,_pl,*it); // // insert(_pm,*it,_pl); // // }; // // bench.stop(); // // bench.summarize(_pm.number_of_vertices(),_pm.number_of_halfedges()); // // } // // catch (...) { // // bench.fail(); // // } /*------------------------------------------------------------------------------------------------------------------------- !!!!!!!!!!!Circular_Kernel!!!!!!!!!!!!!!!!!! -------------------------------------------------------------------------------------------------------------------------*/ typedef CGAL::Quotient NT1; //typedef CGAL::Lazy_exact_nt > NT1; typedef CGAL::Cartesian Linear_k1; typedef CGAL::Algebraic_kernel_for_circles_2_2 Algebraic_k1; typedef CGAL::Circular_kernel_2 CircularKernel; #ifndef CGAL_CURVED_KERNEL_DEBUG typedef CGAL::Circular_arc_traits CircularK_CA_Traits; #else typedef CGAL::Circular_arc_traits Traits0; typedef CGAL::Circular_arc_traits_tracer CircularK_CA_Traits; #endif typedef CircularKernel::Circular_arc_2 CircularKArc; typedef std::vector CircularKArcContainer; bench.kernel("Circular kernel Circular arc traits"); bench.Compute_no_dxf(); typedef CircularKernel::Circular_arc_2 Circular_arc_2; typedef CircularKernel::Line_arc_2 Line_arc_2; typedef CGAL::Variant_traits CircularK_Variant_Traits; typedef boost::variant< Circular_arc_2, Line_arc_2 > CircularKVarArc; typedef std::vector CircularKVarArcContainer; bench.kernel("Circular kernel Variant traits"); bench.Compute(Dxffilename[i]); // bench.Compute_dxf(Dxffilename[i]); /*------------------------------------------------------------------------------------------------------------------------- !!!!!!!!!!!Lazy_curved_Kernel!!!!!!!!!!!!!!!!!! -------------------------------------------------------------------------------------------------------------------------*/ /* typedef CGAL::Quotient NT2; // typedef CGAL::Lazy_exact_nt > NT2; typedef CGAL::Cartesian Linear_k2; typedef CGAL::Algebraic_kernel_2_2 Algebraic_k2; typedef CGAL::Curved_kernel CK2_; //typedef CGAL::Interval_nt<> NT2; typedef CGAL::Interval_nt_advanced NT3; typedef CGAL::Cartesian Linear_k3; typedef CGAL::Algebraic_kernel_2_2 Algebraic_k3; typedef CGAL::Curved_kernel CK3_; typedef CGAL::Lazy_curved_kernel LazyCurvedK; #ifndef CGAL_CURVED_KERNEL_DEBUG typedef CGAL::Circular_arc_traits LazyCurvedK_CA_Traits; #else typedef CGAL::Circular_arc_traits Traits0_2; typedef CGAL::Circular_arc_traits_tracer LazyCurved_kTraits; #endif typedef LazyCurvedK::Circular_arc_2 LazyArc; typedef std::vector LazyArcContainer; bench.kernel("Lazy curved kernel Circular arc traits") ; bench.Compute_no_dxf(); typedef LazyCurvedK::Circular_arc_2 Circular_arc_3; typedef LazyCurvedK::Line_arc_2 Line_arc_3; typedef boost::variant LazyVarArc; typedef std::vector LazyVarContainer; typedef CGAL::Variant_traits LazyCurvedK_Variant_Traits; bench.kernel("Lazy curved kernel Variant traits"); bench.Compute(Dxffilename[i]); //bench.Compute_dxf(Dxffilename[i]); /*------------------------------------------------------------------------------------------------------------------------- !!!!!!!!!!!Filtered_hexagone_Circular_kernel!!!!!!!!!!!!!!!!!! -------------------------------------------------------------------------------------------------------------------------*/ /* typedef CGAL::Filtered_hexagon_curved_kernel CircularKernelHexagon; #ifndef CGAL_CURVED_KERNEL_DEBUG typedef CGAL::Circular_arc_traits CircularKernHex_CA_Traits; #else typedef CGAL::Circular_arc_traits Traits0_3; typedef CGAL::Circular_arc_traits_tracer CircularKernHex_CA_Traits; #endif typedef CircularKernelHexagon::Circular_arc_2 CircularKernHexArc; typedef std::vector CircularKernHexArcContainer; bench.kernel("Circular kernel filtered hexagon Circular arc traits"); bench.Compute_no_dxf(); typedef CircularKernelHexagon::Circular_arc_2 Circular_arc_4; typedef CircularKernelHexagon::Line_arc_2 Line_arc_4; typedef boost::variant< Circular_arc_4, Line_arc_4 > CircularKernHexVarArc; typedef std::vector CircularKernHexVarArcContainer; typedef CGAL::Variant_traits CircularKernHex_Variant_Traits; bench.kernel("Circular kernel filtered hexagon Variants traits"); //bench.Compute(Dxffilename[i]); bench.Compute_no_dxf(); /*------------------------------------------------------------------------------------------------------------------------- !!!!!!!!!!!Filtered_hexagone_Lazy_Circular_kernel!!!!!!!!!!!!!!!!!! -------------------------------------------------------------------------------------------------------------------------*/ /* typedef CGAL::Filtered_hexagon_curved_kernel LazyKernelHexagon; #ifndef CGAL_CURVED_KERNEL_DEBUG typedef CGAL::Circular_arc_traits LazyKernelHexagon_CA_Traits; #else typedef CGAL::Circular_arc_traits Traits0_4; typedef CGAL::Circular_arc_traits_tracer LazyKernelHexagon_CA_Traits; #endif typedef LazyKernelHexagon::Circular_arc_2 LazyKernelHexagonArc; typedef std::vector LazyKernelHexagonArcContainer; bench.kernel("Lazy curved kernel filtered hexagon Circular arc traits"); bench.Compute_no_dxf(); typedef LazyKernelHexagon::Circular_arc_2 Circular_arc_5; typedef LazyKernelHexagon::Line_arc_2 Line_arc_5; typedef boost::variant HxLazyVarArc; typedef std::vector HxLazyVarContainer; typedef CGAL::Variant_traits HxLazyVariantTraits; bench.kernel("Lazy curved kernel filtered hexagon Variants traits") ; //bench.Compute(Dxffilename[i]); bench.Compute_no_dxf(); /*------------------------------------------------------------------------------------------------------------------------- !!!!!!!!!!!bbox_filtered_Circular_kernel!!!!!!!!!!!!!!!!!! -------------------------------------------------------------------------------------------------------------------------*/ /* typedef CGAL::Filtered_bbox_curved_kernel BBCircularKernel ; #ifndef CGAL_CURVED_KERNEL_DEBUG typedef CGAL::Circular_arc_traits BBCircularKernel_CA_Traits; #else typedef CGAL::Circular_arc_traits Traits0_5; typedef CGAL::Circular_arc_traits_tracer BBCircularKernel_CA_Traits; #endif typedef BBCircularKernel::Circular_arc_2 BBCircularKernelArc; typedef std::vector BBCircularKernelArcContainer; bench.kernel("Circular kernel filtered bbox Circular arc traits"); bench.Compute_no_dxf(); typedef BBCircularKernel::Circular_arc_2 Circular_arc_6; typedef BBCircularKernel::Line_arc_2 Line_arc_6; typedef boost::variant BBCircVarArc; typedef std::vector BBCircVarContainer; typedef CGAL::Variant_traits BBCircVariantTraits; bench.kernel("Circular kernel filtered bbox Variants traits") ; // bench.Compute(Dxffilename[i]); bench.Compute_no_dxf(); /*------------------------------------------------------------------------------------------------------------------------- !!!!!!!!!!!bbox_hexagone_Lazy_Circular_kernel!!!!!!!!!!!!!!!!!! -------------------------------------------------------------------------------------------------------------------------*/ /* typedef CGAL::Filtered_bbox_curved_kernel BBLazyCurvedK; #ifndef CGAL_CURVED_KERNEL_DEBUG typedef CGAL::Circular_arc_traits BBLazyCurvedK_CA_Traits; #else typedef CGAL::Circular_arc_traits Traits0_6; typedef CGAL::Circular_arc_traits_tracer BBLazyCurvedK_CA_Traits; #endif typedef BBLazyCurvedK::Circular_arc_2 BBLazyCurvedKArc; typedef std::vector BBLazyCurvedKArcContainer; bench.kernel("Lazy curved kernel filtered bbox Circular arc traits"); bench.Compute_no_dxf(); typedef BBLazyCurvedK::Circular_arc_2 Circular_arc_7; typedef BBLazyCurvedK::Line_arc_2 Line_arc_7; typedef boost::variant BBLazyVarArc; typedef std::vector< BBLazyVarArc> BBLazyVarContainer; typedef CGAL::Variant_traits BBLazyVariantTraits; bench.kernel("Lazy curved kernel filtered bbox Variants traits") ; //bench.Compute(Dxffilename[i]); bench.Compute_no_dxf(); /*------------------------------------------------------------------------------------------------------------------------- !!!!!!!!!!!bbox_filtered_Filtered_hexagone_Circular_kernel!!!!!!!!!!!!!!!!!! -------------------------------------------------------------------------------------------------------------------------*/ /* typedef CGAL::Filtered_bbox_curved_kernel BBCircKHexagon ; #ifndef CGAL_CURVED_KERNEL_DEBUG typedef CGAL::Circular_arc_traits BBCircKHexagonCATraits; #else typedef CGAL::Circular_arc_traits Traits0_7; typedef CGAL::Circular_arc_traits_tracer BBCircKHexagonCATraits; #endif typedef BBCircKHexagon::Circular_arc_2 BBCircKHexagonArc; typedef std::vector BBCircKHexagonArcCont; bench.kernel("BBox Circular kernel filtered bbox Circular arc traits"); bench.Compute_no_dxf(); typedef BBCircularKernelHexagon::Circular_arc_2 Circular_arc_8; typedef BBCircularKernelHexagon::Line_arc_2 Line_arc_8; typedef boost::variant BBCircularKernelHexagonVarArc; typedef std::vector BBCircularKernelHexagonVarContainer; typedef CGAL::Variant_traits BBCircularKernelHexagonVariantTraits; bench.kernel("BBox Circular kernel filtered bbox Variants traits") ; //bench.Compute(Dxffilename[i]); bench.Compute_no_dxf();*/ /*-------------------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------*/ if (i+1<15) { if (strcmp(Dxffilename[i+1],"")) { bench.newDxfFilename(Dxffilename[i+1]); } else { std::cout << "that's all" << Dxffilename[i+1] << std::endl; break; } } } bench.infotable(); return 0; }