#define CGAL_CAST_INT #define CIRCULAR_KERNEL_2 #define LAZY_CURVED_KERNEL_2 #define CIRCULAR_KERNEL_2_FILTERED_HEXAGON #define LAZY_CURVED_KERNEL_2_FILTERED_HEXAGON #define CIRCULAR_KERNEL_2_FILTERED_BBOX #define LAZY_CURVED_KERNEL_2_FILTERED_BBOX #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[]={"myFirst.dxf","cad_l1.dxf"}; char* Dxffilename[]={"myFirst.dxf","minimask0.dxf","minimask1.dxf","mask0.dxf","mask1.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." < 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::Arr_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("CkCircArc"); bench.Compute_no_dxf(); typedef CircularKernel::Circular_arc_2 Circular_arc_2; typedef CircularKernel::Line_arc_2 Line_arc_2; typedef CGAL::Arr_circular_line_arc_traits CircularK_Variant_Traits; typedef boost::variant< Circular_arc_2, Line_arc_2 > CircularKVarArc; typedef std::vector CircularKVarArcContainer; bench.kernel("CKVar"); //bench.Compute(Dxffilename[i]); //bench.Compute_dxf(Dxffilename[i]); bench.Compute_no_dxf(); #endif /*------------------------------------------------------------------------------------------------------------------------- !!!!!!!!!!!Lazy_curved_Kernel!!!!!!!!!!!!!!!!!! -------------------------------------------------------------------------------------------------------------------------*/ #ifdef LAZY_CURVED_KERNEL_2 typedef CGAL::Quotient NT2; typedef CGAL::Cartesian Linear_k2; typedef CGAL::Algebraic_kernel_for_circles_2_2 Algebraic_k2; typedef CGAL::Circular_kernel_2 CK2_; typedef CGAL::Interval_nt_advanced NT3; typedef CGAL::Cartesian Linear_k3; typedef CGAL::Algebraic_kernel_for_circles_2_2 Algebraic_k3; typedef CGAL::Circular_kernel_2 CK3_; typedef CGAL::Lazy_circular_kernel_2 LazyCurvedK; // #ifndef CGAL_CURVED_KERNEL_DEBUG typedef CGAL::Arr_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("LazyCircArc") ; 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::Arr_circular_line_arc_traits LazyCurvedK_Variant_Traits; bench.kernel("LazyKVar"); //bench.Compute(Dxffilename[i]); //bench.Compute_dxf(Dxffilename[i]); bench.Compute_no_dxf(); #endif /*------------------------------------------------------------------------------------------------------------------------- !!!!!!!!!!!Filtered_hexagone_Circular_kernel!!!!!!!!!!!!!!!!!! -------------------------------------------------------------------------------------------------------------------------*/ #ifdef CIRCULAR_KERNEL_2_FILTERED_HEXAGON typedef CGAL::Filtered_hexagon_circular_kernel_2 CircularKernelHexagon; // #ifndef CGAL_CURVED_KERNEL_DEBUG typedef CGAL::Arr_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("CK Hex CircArcTraits"); 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::Arr_circular_line_arc_traits CircularKernHex_Variant_Traits; bench.kernel("CK Hex VarTraits"); // bench.Compute(Dxffilename[i]); bench.Compute_no_dxf(); #endif /*------------------------------------------------------------------------------------------------------------------------- !!!!!!!!!!!Filtered_hexagone_Lazy_Circular_kernel!!!!!!!!!!!!!!!!!! -------------------------------------------------------------------------------------------------------------------------*/ #ifdef LAZY_CURVED_KERNEL_2_FILTERED_HEXAGON typedef CGAL::Filtered_hexagon_circular_kernel_2 LazyKernelHexagon; // #ifndef CGAL_CURVED_KERNEL_DEBUG typedef CGAL::Arr_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("LazyK Hex CircArcTraits"); 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::Arr_circular_line_arc_traits HxLazyVariantTraits; bench.kernel("LazyK Hex VarTraits") ; //bench.Compute(Dxffilename[i]); bench.Compute_no_dxf(); #endif /*------------------------------------------------------------------------------------------------------------------------- !!!!!!!!!!!bbox_filtered_Circular_kernel!!!!!!!!!!!!!!!!!! -------------------------------------------------------------------------------------------------------------------------*/ #ifdef CIRCULAR_KERNEL_2_FILTERED_BBOX typedef CGAL::Filtered_bbox_circular_kernel_2 BBCircularKernel ; // #ifndef CGAL_CURVED_KERNEL_DEBUG typedef CGAL::Arr_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("CK BBox CircArcTraits"); 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::Arr_circular_line_arc_traits BBCircVariantTraits; bench.kernel("CK BBox VarTraits") ; // bench.Compute(Dxffilename[i]); bench.Compute_no_dxf(); #endif /*------------------------------------------------------------------------------------------------------------------------- !!!!!!!!!!!bbox_hexagone_Lazy_Circular_kernel!!!!!!!!!!!!!!!!!! -------------------------------------------------------------------------------------------------------------------------*/ #ifdef LAZY_CURVED_KERNEL_2_FILTERED_BBOX typedef CGAL::Filtered_bbox_circular_kernel_2 BBLazyCurvedK; // #ifndef CGAL_CURVED_KERNEL_DEBUG typedef CGAL::Arr_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("LLazyK BBox CircArcTraits"); 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::Arr_circular_line_arc_traits BBLazyVariantTraits; bench.kernel("LLazyK BBox VarTraits") ; //bench.Compute(Dxffilename[i]); bench.Compute_no_dxf(); #endif /*------------------------------------------------------------------------------------------------------------------------- !!!!!!!!!!!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 Hexagon CircArcTraits"); 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 Hexagon VarTraits") ; //bench.Compute(Dxffilename[i]); bench.Compute_no_dxf();*/ /*-------------------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------*/ // if (i+1<2) // { // try{ // if (strcmp(Dxffilename[i+1],"")) // { // try{ // fin.open (Dxffilename[i]); // } // catch(...){ // std::cout<<"error"<