//#define CGAL_MP_FLOAT_ALLOW_INEXACT #include #include #include #include //#include //#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // CURVED KERNEL TYPEDEFS //typedef CGAL::Gmpz RT; //typedef CGAL::Gmpq NT1; typedef CGAL::MP_Float RT; typedef CGAL::Quotient NT1; typedef CGAL::Cartesian Linear_k1; typedef CGAL::Algebraic_kernel_for_circles_2_2 Algebraic_k1; typedef CGAL::Circular_kernel_2 CircularKernel; typedef CGAL::Arr_circular_arc_traits CircularK_CA_Traits; typedef CircularKernel::Circular_arc_2 CircularKArc; typedef std::vector CircularKArcContainer; 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; // LAZY KERNEL TYPEDEFS 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_curved_kernel LazyCurvedK; typedef CGAL::Arr_circular_arc_traits LazyCurvedK_CA_Traits; typedef LazyCurvedK::Circular_arc_2 LazyArc; typedef std::vector LazyArcContainer; 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; // AH TYPEDEFS typedef CGAL::Filtered_interval_circular_kernel AHCircularKernel; typedef CGAL::Arr_circular_arc_traits AHCircularKernel_CA_Traits; typedef AHCircularKernel::Circular_arc_2 AHCircularKernelArc; typedef std::vector AHCircularKernelArcContainer; typedef AHCircularKernel::Circular_arc_2 Circular_arc_8; typedef AHCircularKernel::Line_arc_2 Line_arc_8; typedef boost::variant AHCircVarArc; typedef std::vector AHCircVarContainer; typedef CGAL::Arr_circular_line_arc_traits AHCircVariantTraits; // BBOX TYPEDEFS typedef CGAL::Filtered_bbox_curved_kernel BBCircularKernel ; typedef CGAL::Arr_circular_arc_traits BBCircularKernel_CA_Traits; typedef BBCircularKernel::Circular_arc_2 BBCircularKernelArc; typedef std::vector BBCircularKernelArcContainer; 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; // BBOX(AH) TYPEDEFS typedef CGAL::Filtered_bbox_curved_kernel BBAHCircularKernel ; typedef CGAL::Arr_circular_arc_traits BBAHCircularKernel_CA_Traits; typedef BBAHCircularKernel::Circular_arc_2 BBAHCircularKernelArc; typedef std::vector BBAHCircularKernelArcContainer; typedef BBAHCircularKernel::Circular_arc_2 Circular_arc_ah; typedef BBAHCircularKernel::Line_arc_2 Line_arc_ah; typedef boost::variant BBAHCircVarArc; typedef std::vector BBAHCircVarContainer; typedef CGAL::Arr_circular_line_arc_traits BBAHCircVariantTraits; template void do_main(char *s) { // TYPEDEFS typedef typename CK::Circular_arc_2 C2; typedef typename CK::Line_arc_2 L2; typedef typename CGAL::Arrangement_2 Pmwx; typedef typename CGAL::Arr_naive_point_location Point_location; // LOADING CURVES ArcContainer ac; std::ifstream fin; fin.open (s); CGAL::variant_load( fin, std::back_inserter(ac)); fin.close(); // BENCHMARKING Pmwx _pm; Point_location _pl(_pm); CGAL::Timer clck1; double t1,t2; clck1.start(); t1=clck1.time(); insert_curves(_pm,ac.begin(),ac.end()); t2=clck1.time(); clck1.stop(); std::cout<<"Time="<<(t2-t1)<(dxf_filename[7]); //do_main(dxf_filename[7]); //do_main(dxf_filename[7]); //do_main(dxf_filename[7]); do_main(dxf_filename[3]); return 0; }