mirror of https://github.com/CGAL/cgal
152 lines
3.8 KiB
C++
152 lines
3.8 KiB
C++
#include <CGAL/basic.h>
|
|
|
|
#include <CGAL/point_generators_2.h>
|
|
#include <CGAL/Arr_segment_traits_2.h>
|
|
#include <CGAL/MP_Float.h>
|
|
|
|
#include <CGAL/Algebraic_kernel_2_2.h>
|
|
|
|
#include <CGAL/intersections.h>
|
|
|
|
#include <CGAL/Circular_kernel.h>
|
|
#include <CGAL/Circular_arc_traits.h>
|
|
#include <CGAL/Circular_arc_traits_tracer.h>
|
|
|
|
#include <CGAL/Arrangement_2.h>
|
|
#include <CGAL/Arr_naive_point_location.h>
|
|
|
|
#include <CGAL/Cartesian.h>
|
|
#include <CGAL/CORE_algebraic_number_traits.h>
|
|
#include <CGAL/Arr_conic_traits_2.h>
|
|
#include <CGAL/Arrangement_2.h>
|
|
|
|
|
|
#include <CGAL/Random.h>
|
|
#include "benchmark.h"
|
|
|
|
#include <fstream>
|
|
#include "IntStr.h"
|
|
int main(int argc, char* argv[])
|
|
{ char* Dxffilename;
|
|
char* Htmlfilename;
|
|
char* Texfilename;
|
|
char exten[4];
|
|
|
|
|
|
|
|
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 = argv[1];
|
|
std::cout<< "File "<< Dxffilename << " is correct."<<std::endl;
|
|
}
|
|
if (argc >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." <<std::endl;
|
|
}
|
|
if (argv[3] != NULL)
|
|
{
|
|
int len =strlen(argv[3]);
|
|
for (int j=0; j < 3 ; j++)
|
|
{
|
|
exten[j]=argv[3][len - 3 + j];
|
|
}
|
|
if (strncmp(exten,"tex",3) !=0)
|
|
{
|
|
std::cout<< "File "<< argv[3] << " is not correct (*.tex is needed)."
|
|
<< std::endl;
|
|
return 0;
|
|
}
|
|
else{
|
|
std::cout<< "File "<< argv[3] << " is correct." <<std::endl;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Texfilename="benchmarks.tex";
|
|
std::cout<< "Default *.tex file is :" << Texfilename<< std::endl;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Htmlfilename="benchmarks.html";
|
|
Texfilename="benchmarks.tex";
|
|
std::cout<< "Default *.html file is :" << Htmlfilename<< std::endl;
|
|
std::cout<< "Default *.tex file is :" << Texfilename<< std::endl;
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
Dxffilename="cad_l2.dxf";
|
|
Htmlfilename="benchmarks.html";
|
|
Texfilename="benchmarks.tex";
|
|
std::cout<< "Default *.dxf file is :" << Dxffilename<< std::endl;
|
|
std::cout<< "Default *.html file is :" << Htmlfilename<< std::endl;
|
|
std::cout<< "Default *.tex file is :" << Texfilename<< std::endl;
|
|
}
|
|
|
|
std::ifstream fin;
|
|
fin.open (Dxffilename);
|
|
if (!fin.is_open())
|
|
{
|
|
cout<<"file "<< Dxffilename << " is not found"<<std::endl;
|
|
fin.close();
|
|
return 0;
|
|
|
|
}
|
|
fin.close();
|
|
Bench bench(Htmlfilename,Texfilename,Dxffilename);
|
|
/*-------------------------------------------------------------------------------------------------------------------------
|
|
!!!!!!!!!!!Arrangement_traits!!!!!!!!!!!!!!!!!!
|
|
|
|
-------------------------------------------------------------------------------------------------------------------------*/
|
|
|
|
typedef CGAL::CORE_algebraic_number_traits Nt_traits;
|
|
typedef Nt_traits::Rational Rational;
|
|
typedef Nt_traits::Algebraic Algebraic;
|
|
typedef CGAL::Cartesian<Rational> Rat_kernel;
|
|
typedef CGAL::Cartesian<Algebraic> Alg_kernel;
|
|
typedef CGAL::Arr_conic_traits_2<Rat_kernel,
|
|
Alg_kernel,
|
|
Nt_traits> Traits_2;
|
|
|
|
typedef Traits_2::Curve_2 Conic_arc_2;
|
|
typedef Traits_2::Polygon_2 Polygon;
|
|
bench.kernel("Arrangement_traits");
|
|
|
|
typedef std::vector<Conic_arc_2> ArcContainer;
|
|
|
|
bench.Compute_no_dxf<Rat_kernel,Traits_2,ArcContainer>();
|
|
|
|
|
|
bench.infotable();
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|