mirror of https://github.com/CGAL/cgal
Make the benchmark compiling again.
I try to run some of the mode 'alpha' as described in the README_benchmark_CK2.txt but this ended up with different preconditions non validated (for alpha=1,4,5 or 8 with beta=9)
This commit is contained in:
parent
625582b52e
commit
93a7d05699
|
|
@ -260,14 +260,14 @@ private:
|
|||
typedef typename CGAL::Arr_naive_point_location<Pmwx> Point_location;
|
||||
|
||||
std::cout << "memory size before construction" << mem_sizer.virtual_size() << std::endl;
|
||||
std::cout << "memory resident size before insert_curves()" << mem_sizer.resident_size () << std::endl;
|
||||
std::cout << "memory resident size before insert()" << mem_sizer.resident_size () << std::endl;
|
||||
MemBefore = mem_sizer.virtual_size ()/1000;
|
||||
Pmwx _pm;
|
||||
Point_location _pl(_pm);
|
||||
|
||||
try{
|
||||
this->start();
|
||||
insert_curves(_pm,ac.begin(),ac.end());
|
||||
insert(_pm,ac.begin(),ac.end(),boost::false_type());
|
||||
this->stop();
|
||||
}
|
||||
catch (...) {
|
||||
|
|
@ -280,8 +280,8 @@ private:
|
|||
if (!fail){this->summarize(_pm.number_of_vertices(),_pm.number_of_halfedges());}
|
||||
|
||||
MemAfter = mem_sizer.virtual_size ()/1000;
|
||||
std::cout << "memory size after insert_curves()" << mem_sizer.virtual_size () << std::endl;
|
||||
std::cout << "memory resident size after insert_curves()" << mem_sizer.resident_size () << std::endl;
|
||||
std::cout << "memory size after insert()" << mem_sizer.virtual_size () << std::endl;
|
||||
std::cout << "memory resident size after insert()" << mem_sizer.resident_size () << std::endl;
|
||||
_pm.clear();
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ void _bench_input_grid(ArcContainer& ac){
|
|||
|
||||
for(int i = 0; i < 20; i++){
|
||||
for(int j = 0; j <20; j++){
|
||||
ac.push_back( Circle_2( Point_2(x + j*r, y + i*r), r*r));
|
||||
ac.push_back(typename CK::Circular_arc_2 ( Circle_2( Point_2(x + j*r, y + i*r), r*r)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -42,7 +42,7 @@ void _bench_input_grid2(ArcContainer& ac){
|
|||
|
||||
for(int i = 0; i < 20; i++){
|
||||
for(int j = 0; j < 20; j++){
|
||||
ac.push_back(Circle_2( Point_2(x + j*r, y + i*r), r*r));
|
||||
ac.push_back(typename CK::Circular_arc_2 ( Circle_2( Point_2(x + j*r, y + i*r), r*r) ));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -51,7 +51,7 @@ void _bench_input_grid2(ArcContainer& ac){
|
|||
|
||||
for(int i = 0; i < 20; i++){
|
||||
for(int j = 0; j < 20; j++){
|
||||
ac.push_back( Circle_2( Point_2(x + j*r, y + i*r), r*r));
|
||||
ac.push_back(typename CK::Circular_arc_2 ( Circle_2( Point_2(x + j*r, y + i*r), r*r)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -77,7 +77,7 @@ void _bench_input_random(ArcContainter& arcs)
|
|||
double y = theRandom.get_double(random_min,random_max);
|
||||
double r = theRandom.get_double(0.1,random_max);
|
||||
fout << x << " " << y << " " << r << " " ;
|
||||
arcs.push_back( Circle_2( Point_2(x,y), r*r));
|
||||
arcs.push_back(typename CK::Circular_arc_2 ( Circle_2( Point_2(x,y), r*r) ));
|
||||
}
|
||||
|
||||
fout.close();
|
||||
|
|
@ -94,7 +94,7 @@ void _bench_input_file(ArcContainter& arcs){
|
|||
std::ifstream fin("random.inp");
|
||||
for(int i = 0; i < 100 ; i++){
|
||||
fin >> x >> y >> r ;
|
||||
arcs.push_back( Circle_2( Point_2(x,y), r*r));
|
||||
arcs.push_back(typename CK::Circular_arc_2 ( Circle_2( Point_2(x,y), r*r)));
|
||||
}
|
||||
|
||||
fin.close();
|
||||
|
|
@ -115,7 +115,7 @@ void _bench_input_rotation(ArcContainter& ac){
|
|||
for(int i = 0; i < 5; i++){
|
||||
for(int j = 0; j < 5; j++){
|
||||
R = (r+k)*(r+k);
|
||||
ac.push_back( Circle_2( Point_2(x + i*r, y + j*r),R));
|
||||
ac.push_back(typename CK::Circular_arc_2 ( Circle_2( Point_2(x + i*r, y + j*r),R) ));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -206,7 +206,7 @@ class Bench
|
|||
typedef typename CGAL::Arrangement_2<Traits> Pmwx;
|
||||
typedef typename CGAL::Arr_naive_point_location<Pmwx> Point_location;
|
||||
std::cout << "memory size before construction" << mem_sizer.virtual_size() << std::endl;
|
||||
std::cout << "memory resident size before insert_curves()" << mem_sizer.resident_size () << std::endl;
|
||||
std::cout << "memory resident size before insert()" << mem_sizer.resident_size () << std::endl;
|
||||
Pmwx _pm;
|
||||
Point_location _pl(_pm);
|
||||
|
||||
|
|
@ -214,7 +214,7 @@ class Bench
|
|||
try{
|
||||
this->start();
|
||||
|
||||
insert_curves(_pm,ac.begin(),ac.end());
|
||||
insert(_pm,ac.begin(),ac.end(),boost::false_type());
|
||||
|
||||
this->stop();
|
||||
}
|
||||
|
|
@ -231,8 +231,8 @@ class Bench
|
|||
if (!fail){this->summarize(_pm.number_of_vertices(),_pm.number_of_halfedges());}
|
||||
|
||||
|
||||
std::cout << "memory size after insert_curves()" << mem_sizer.virtual_size () << std::endl;
|
||||
std::cout << "memory resident size after insert_curves()" << mem_sizer.resident_size () << std::endl;
|
||||
std::cout << "memory size after insert()" << mem_sizer.virtual_size () << std::endl;
|
||||
std::cout << "memory resident size after insert()" << mem_sizer.resident_size () << std::endl;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -195,7 +195,7 @@ Bench bench(Htmlfilename,Texfilename,Dxffilename[i]);
|
|||
// // for (typename ArcContainer::const_iterator it=ac.begin();
|
||||
// // it != ac.end(); ++it) {
|
||||
// // //insert(_pm,_pl,*it);
|
||||
// // insert_curves(_pm,*it,_pl);
|
||||
// // insert(_pm,*it,_pl);
|
||||
// // };
|
||||
// // bench.stop();
|
||||
// // bench.summarize(_pm.number_of_vertices(),_pm.number_of_halfedges());
|
||||
|
|
|
|||
|
|
@ -29,13 +29,13 @@ private:
|
|||
int i;
|
||||
typedef std::size_t size_type;
|
||||
CGAL::Memory_sizer mem_sizer;
|
||||
char* Dxffile;
|
||||
std::string Dxffile;
|
||||
bool ONLY_DXF;
|
||||
double MemBefore,MemAfter;
|
||||
|
||||
public:
|
||||
|
||||
Bench(const bool only_dxf=false, char *fhtml="benchmarks.html", char* ftex="benchmarks.tex",char* Dxffilename=""):
|
||||
Bench(const bool only_dxf=false, const char *fhtml="benchmarks.html", const char* ftex="benchmarks.tex",const char* Dxffilename=""):
|
||||
htmlout(fhtml,std::ios::app),
|
||||
texout(ftex,std::ios::app){
|
||||
i=0;
|
||||
|
|
@ -161,7 +161,7 @@ private:
|
|||
|
||||
void summarize(int vertices,int hedges){
|
||||
int temp;
|
||||
temp=CGAL::Interval_nt<>::number_of_failures();
|
||||
// temp=CGAL::Interval_nt<>::number_of_failures();
|
||||
numof_f_fails = temp - numof_f_fails;
|
||||
std::cout << " numbers_of_filter_fails : " << numof_f_fails << std::endl;
|
||||
|
||||
|
|
@ -188,7 +188,7 @@ private:
|
|||
<< " Time (sec): " << utime.tv_sec << std::endl
|
||||
<< " (usec): " << std::setw(6) << std::setfill('0')
|
||||
<< utime.tv_usec << std::endl;
|
||||
numof_f_fails = CGAL::Interval_nt<>::number_of_failures();
|
||||
// numof_f_fails = CGAL::Interval_nt<>::number_of_failures();
|
||||
}
|
||||
|
||||
void fail(void){
|
||||
|
|
@ -213,13 +213,13 @@ private:
|
|||
typedef typename CGAL::Arr_naive_point_location<Pmwx> Point_location;
|
||||
|
||||
std::cout << "memory size before construction" << mem_sizer.virtual_size() << std::endl;
|
||||
std::cout << "memory resident size before insert_curves()" << mem_sizer.resident_size () << std::endl;
|
||||
std::cout << "memory resident size before insert()" << mem_sizer.resident_size () << std::endl;
|
||||
MemBefore = mem_sizer.virtual_size ()/1000000;
|
||||
Pmwx _pm;
|
||||
Point_location _pl(_pm);
|
||||
try{
|
||||
this->start();
|
||||
insert_curves(_pm,ac.begin(),ac.end());
|
||||
insert(_pm,ac.begin(),ac.end(),boost::false_type());
|
||||
this->stop();
|
||||
} catch (std::exception &e) {
|
||||
this->fail();
|
||||
|
|
@ -236,8 +236,8 @@ private:
|
|||
|
||||
|
||||
MemAfter = mem_sizer.virtual_size ()/1000000;
|
||||
std::cout << "memory size after insert_curves()" << mem_sizer.virtual_size () << std::endl;
|
||||
std::cout << "memory resident size after insert_curves()" << mem_sizer.resident_size () << std::endl;
|
||||
std::cout << "memory size after insert()" << mem_sizer.virtual_size () << std::endl;
|
||||
std::cout << "memory resident size after insert()" << mem_sizer.resident_size () << std::endl;
|
||||
_pm.clear();
|
||||
}
|
||||
|
||||
|
|
@ -282,7 +282,7 @@ template <class CK,class Traits,class ArcContainer>
|
|||
}
|
||||
|
||||
template <class CK,class Traits,class ArcContainer>
|
||||
void dfx(char* Dfxfile){
|
||||
void dfx(const char* Dfxfile){
|
||||
i=4;
|
||||
|
||||
ArcContainer arc;
|
||||
|
|
@ -316,7 +316,7 @@ template <class CK,class Traits,class ArcContainer>
|
|||
}
|
||||
public:
|
||||
template <class CK,class Traits,class ArcContainer>
|
||||
void Compute(char* dxffile){
|
||||
void Compute(const char* dxffile){
|
||||
if(!ONLY_DXF){
|
||||
this->grid<CK,Traits,ArcContainer>();
|
||||
this->grid2<CK,Traits,ArcContainer>();
|
||||
|
|
@ -351,12 +351,12 @@ public:
|
|||
}
|
||||
|
||||
template <class CK,class Traits,class ArcContainer>
|
||||
void Compute_dxf(char* dxffile){
|
||||
void Compute_dxf(const char* dxffile){
|
||||
this->dfx<CK,Traits,ArcContainer>(dxffile);
|
||||
this->close_row();
|
||||
}
|
||||
|
||||
void kernel(char* kernel){
|
||||
void kernel(const char* kernel){
|
||||
this->open_row();
|
||||
this->open_cell();
|
||||
htmlout << kernel;
|
||||
|
|
@ -365,8 +365,8 @@ template <class CK,class Traits,class ArcContainer>
|
|||
}
|
||||
|
||||
|
||||
void newDxfFilename(char* Dxffilename=""){
|
||||
char* newDxf = Dxffilename;
|
||||
void newDxfFilename(const char* Dxffilename=""){
|
||||
const char* newDxf = Dxffilename;
|
||||
|
||||
if(!ONLY_DXF){
|
||||
htmlout<< "<tr bgcolor=\"gray\"><td>Kernel</td><td>grid I</td><td>grid II</td><td>random double</td><td>Dxf input is: "<< newDxf <<"</td><td> rotation </td></tr>"
|
||||
|
|
|
|||
|
|
@ -10,12 +10,12 @@
|
|||
#include <CGAL/Algebraic_kernel_for_circles_2_2.h>
|
||||
#include <CGAL/intersections.h>
|
||||
#include <CGAL/Circular_kernel_2.h>
|
||||
#include <CGAL/Arr_circular_arc_traits.h>
|
||||
#include <CGAL/Arr_circular_arc_traits_2.h>
|
||||
#include <CGAL/Lazy_circular_kernel_2.h>
|
||||
#include <CGAL/Filtered_bbox_circular_kernel_2.h>
|
||||
#include <CGAL/Arrangement_2.h>
|
||||
#include <CGAL/Arr_naive_point_location.h>
|
||||
#include <CGAL/Arr_circular_line_arc_traits.h>
|
||||
#include <CGAL/Arr_circular_line_arc_traits_2.h>
|
||||
#include <CGAL/Timer.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/resource.h>
|
||||
|
|
@ -23,19 +23,20 @@
|
|||
#include <fstream>
|
||||
#include <iomanip>
|
||||
|
||||
#include <boost/type_traits.hpp>
|
||||
|
||||
// CIRCULAR KERNEL TYPEDEFS
|
||||
typedef CGAL::MP_Float RT;
|
||||
typedef CGAL::Quotient<RT> NT1;
|
||||
typedef CGAL::Cartesian<NT1> Linear_k1;
|
||||
typedef CGAL::Algebraic_kernel_for_circles_2_2<NT1> Algebraic_k1;
|
||||
typedef CGAL::Circular_kernel_2<Linear_k1, Algebraic_k1> CircularKernel;
|
||||
typedef CGAL::Arr_circular_arc_traits<CircularKernel> CircularK_CA_Traits;
|
||||
typedef CGAL::Arr_circular_arc_traits_2<CircularKernel> CircularK_CA_Traits;
|
||||
typedef CircularKernel::Circular_arc_2 CircularKArc;
|
||||
typedef std::vector<CircularKArc> CircularKArcContainer;
|
||||
typedef CircularKernel::Circular_arc_2 Circular_arc_2;
|
||||
typedef CircularKernel::Line_arc_2 Line_arc_2;
|
||||
typedef CGAL::Arr_circular_line_arc_traits<CircularKernel,
|
||||
Line_arc_2,Circular_arc_2> CircularK_Variant_Traits;
|
||||
typedef CGAL::Arr_circular_line_arc_traits_2<CircularKernel> CircularK_Variant_Traits;
|
||||
typedef boost::variant< Circular_arc_2, Line_arc_2 > CircularKVarArc;
|
||||
typedef std::vector<CircularKVarArc> CircularKVarArcContainer;
|
||||
|
||||
|
|
@ -45,20 +46,20 @@ typedef CGAL::Cartesian<NT3> Linear_k3;
|
|||
typedef CGAL::Algebraic_kernel_for_circles_2_2<NT3> Algebraic_k3;
|
||||
typedef CGAL::Circular_kernel_2 <Linear_k3,Algebraic_k3> CK3_;
|
||||
typedef CGAL::Lazy_circular_kernel_2<CircularKernel,CK3_> LazyCurvedK;
|
||||
typedef CGAL::Arr_circular_arc_traits<LazyCurvedK> LazyCurvedK_CA_Traits;
|
||||
typedef CGAL::Arr_circular_arc_traits_2<LazyCurvedK> LazyCurvedK_CA_Traits;
|
||||
typedef LazyCurvedK::Circular_arc_2 LazyArc;
|
||||
typedef std::vector<LazyArc> LazyArcContainer;
|
||||
typedef LazyCurvedK::Circular_arc_2 Circular_arc_3;
|
||||
typedef LazyCurvedK::Line_arc_2 Line_arc_3;
|
||||
typedef boost::variant<Circular_arc_3,Line_arc_3 > LazyVarArc;
|
||||
typedef std::vector<LazyVarArc> LazyVarContainer;
|
||||
typedef CGAL::Arr_circular_line_arc_traits<LazyCurvedK,
|
||||
Line_arc_3,Circular_arc_3> LazyCurvedK_Variant_Traits;
|
||||
//~ typedef CGAL::Arr_circular_line_arc_traits_2<LazyCurvedK,Line_arc_3,Circular_arc_3> LazyCurvedK_Variant_Traits;
|
||||
typedef CGAL::Arr_circular_line_arc_traits_2<LazyCurvedK> LazyCurvedK_Variant_Traits;
|
||||
|
||||
// BBOX TYPEDEFS
|
||||
typedef CGAL::Filtered_bbox_circular_kernel_2<CircularKernel>
|
||||
BBCircularKernel ;
|
||||
typedef CGAL::Arr_circular_arc_traits<BBCircularKernel>
|
||||
typedef CGAL::Arr_circular_arc_traits_2<BBCircularKernel>
|
||||
BBCircularKernel_CA_Traits;
|
||||
typedef BBCircularKernel::Circular_arc_2
|
||||
BBCircularKernelArc;
|
||||
|
|
@ -72,13 +73,12 @@ typedef boost::variant<Circular_arc_6,Line_arc_6 >
|
|||
BBCircVarArc;
|
||||
typedef std::vector<BBCircVarArc>
|
||||
BBCircVarContainer;
|
||||
typedef CGAL::Arr_circular_line_arc_traits<BBCircularKernel,
|
||||
Line_arc_6,Circular_arc_6> BBCircVariantTraits;
|
||||
typedef CGAL::Arr_circular_line_arc_traits_2<BBCircularKernel> BBCircVariantTraits;
|
||||
|
||||
// BBOX(LAZY)
|
||||
typedef CGAL::Filtered_bbox_circular_kernel_2<LazyCurvedK>
|
||||
BBLazyKernel ;
|
||||
typedef CGAL::Arr_circular_arc_traits<BBLazyKernel>
|
||||
typedef CGAL::Arr_circular_arc_traits_2<BBLazyKernel>
|
||||
BBLazyKernel_CA_Traits;
|
||||
typedef BBLazyKernel::Circular_arc_2
|
||||
BBLazyKernelArc;
|
||||
|
|
@ -92,11 +92,10 @@ typedef boost::variant<Circular_arc_lazybb,Line_arc_lazybb >
|
|||
BBLazyVarArc;
|
||||
typedef std::vector<BBLazyVarArc>
|
||||
BBLazyVarContainer;
|
||||
typedef CGAL::Arr_circular_line_arc_traits<BBLazyKernel,
|
||||
Line_arc_lazybb,Circular_arc_lazybb> BBLazyVariantTraits;
|
||||
typedef CGAL::Arr_circular_line_arc_traits_2<BBLazyKernel> BBLazyVariantTraits;
|
||||
|
||||
template <class CK,class Traits,class ArcContainer>
|
||||
void do_main(char *s) {
|
||||
void do_main(const char *s) {
|
||||
|
||||
// TYPEDEFS
|
||||
typedef typename CK::Circular_arc_2 C2;
|
||||
|
|
@ -120,7 +119,7 @@ void do_main(char *s) {
|
|||
struct rusage before, after;
|
||||
struct timeval utime, stime;
|
||||
getrusage(RUSAGE_SELF,&before);
|
||||
insert_curves(_pm,ac.begin(),ac.end());
|
||||
insert(_pm,ac.begin(),ac.end(),boost::false_type());
|
||||
getrusage(RUSAGE_SELF,&after);
|
||||
timersub(&(after.ru_utime),&(before.ru_utime),&utime);
|
||||
timersub(&(after.ru_stime),&(before.ru_stime),&stime);
|
||||
|
|
@ -157,7 +156,7 @@ void do_main(int k) {
|
|||
if(k == 0) {
|
||||
for(cx = 0.0; cx <= 10.0; cx += 0.5) {
|
||||
for(cy = 0.0; cy <= 10.0; cy += 0.5) {
|
||||
ac.push_back(typename CK::Construct_circle_2()(Point_2(cx,cy),rft));
|
||||
ac.push_back(typename CK::Circular_arc_2 ( typename CK::Circle_2(Point_2(cx,cy),rft) ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -166,14 +165,14 @@ void do_main(int k) {
|
|||
if(k == 1) {
|
||||
for(cx = 0.0; cx <= 0.2; cx += 0.01) {
|
||||
for(cy = 0.0; cy <= 0.2; cy += 0.01) {
|
||||
ac.push_back(typename CK::Construct_circle_2()(Point_2(cx,cy),rft));
|
||||
ac.push_back(typename CK::Circular_arc_2 ( typename CK::Circle_2(Point_2(cx,cy),rft) ));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ONE CIRCLE
|
||||
if(k == 2) {
|
||||
ac.push_back(typename CK::Construct_circle_2()(Point_2(0,0),5));
|
||||
ac.push_back(typename CK::Circular_arc_2 ( typename CK::Circle_2(Point_2(0,0),5) ));
|
||||
}
|
||||
|
||||
// RANDOM CASE
|
||||
|
|
@ -185,7 +184,7 @@ void do_main(int k) {
|
|||
double x = theRandom.get_double(0.0,1.0);
|
||||
double y = theRandom.get_double(0.0,1.0);
|
||||
double r = theRandom.get_double(0.00001,1.0);
|
||||
ac.push_back(typename CK::Construct_circle_2()(Point_2(x,y),FT(r)));
|
||||
ac.push_back(typename CK::Circular_arc_2 ( typename CK::Circle_2(Point_2(x,y),FT(r)) ));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -194,10 +193,10 @@ void do_main(int k) {
|
|||
double h = (std::sqrt(3.0)+0.01);
|
||||
for(cx = 0.0; cx <= 40.4; cx += 2.01) {
|
||||
for(cy = h; cy <= h*20; cy += h*2) {
|
||||
ac.push_back(typename CK::Construct_circle_2()(Point_2(cx+1.0,cy),rft));
|
||||
ac.push_back(typename CK::Circular_arc_2 ( typename CK::Circle_2(Point_2(cx+1.0,cy),rft) ));
|
||||
}
|
||||
for(cy = 0.0; cy <= h*20.0; cy += h*2) {
|
||||
ac.push_back(typename CK::Construct_circle_2()(Point_2(cx,cy),rft));
|
||||
ac.push_back(typename CK::Circular_arc_2 ( typename CK::Circle_2(Point_2(cx,cy),rft)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -210,7 +209,7 @@ void do_main(int k) {
|
|||
struct rusage before, after;
|
||||
struct timeval utime, stime;
|
||||
getrusage(RUSAGE_SELF,&before);
|
||||
insert_curves(_pm,ac.begin(),ac.end());
|
||||
insert(_pm,ac.begin(),ac.end(),boost::false_type());
|
||||
getrusage(RUSAGE_SELF,&after);
|
||||
timersub(&(after.ru_utime),&(before.ru_utime),&utime);
|
||||
timersub(&(after.ru_stime),&(before.ru_stime),&stime);
|
||||
|
|
@ -228,15 +227,15 @@ void do_main(int k) {
|
|||
|
||||
int main(int argc, char* argv[]){
|
||||
|
||||
char* dxf_filename[] = { "DXF/51.dxf",
|
||||
"DXF/cad_l1.dxf",
|
||||
"DXF/cad_l2.dxf",
|
||||
"DXF/che_mod1.dxf",
|
||||
"DXF/CIOnZDraw.dxf",
|
||||
"DXF/mask1.dxf",
|
||||
"DXF/elekonta.dxf",
|
||||
"DXF/netlist_signal_1.dxf",
|
||||
"DXF/painttrack.dxf" };
|
||||
const char* dxf_filename[] = { "DXF/51.dxf",
|
||||
"DXF/cad_l1.dxf",
|
||||
"DXF/cad_l2.dxf",
|
||||
"DXF/che_mod1.dxf",
|
||||
"DXF/CIOnZDraw.dxf",
|
||||
"DXF/mask1.dxf",
|
||||
"DXF/elekonta.dxf",
|
||||
"DXF/netlist_signal_1.dxf",
|
||||
"DXF/painttrack.dxf" };
|
||||
if(argc == 3) {
|
||||
int i = argv[1][0]-'0';
|
||||
int j = argv[2][0]-'0';
|
||||
|
|
|
|||
|
|
@ -18,18 +18,20 @@
|
|||
#include <CGAL/intersections.h>
|
||||
|
||||
#include <CGAL/Circular_kernel_2.h>
|
||||
#include <CGAL/Arr_circular_arc_traits.h>
|
||||
#include <CGAL/Arr_circular_arc_traits_2.h>
|
||||
//#include <CGAL/Circular_arc_traits_tracer.h>
|
||||
|
||||
#include <CGAL/Lazy_circular_kernel_2.h>
|
||||
|
||||
#ifdef CIRCULAR_KERNEL_2_FILTERED_HEXAGON
|
||||
#include <CGAL/Filtered_hexagon_circular_kernel_2.h>
|
||||
#endif
|
||||
|
||||
#include <CGAL/Filtered_bbox_circular_kernel_2.h>
|
||||
|
||||
#include <CGAL/Arrangement_2.h>
|
||||
#include <CGAL/Arr_naive_point_location.h>
|
||||
#include <CGAL/Arr_circular_line_arc_traits.h>
|
||||
#include <CGAL/Arr_circular_line_arc_traits_2.h>
|
||||
|
||||
|
||||
#include <CGAL/Random.h>
|
||||
|
|
@ -39,9 +41,9 @@
|
|||
|
||||
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;
|
||||
const 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"};
|
||||
std::string Htmlfilename;
|
||||
std::string Texfilename;
|
||||
char exten[4];
|
||||
int i;
|
||||
i=0;
|
||||
|
|
@ -154,7 +156,7 @@ Bench bench; //If you want create table with all datasets you supose to use th
|
|||
typedef CGAL::Circular_kernel_2<Linear_k1, Algebraic_k1> CircularKernel;
|
||||
|
||||
// #ifndef CGAL_CURVED_KERNEL_DEBUG
|
||||
typedef CGAL::Arr_circular_arc_traits<CircularKernel> CircularK_CA_Traits;
|
||||
typedef CGAL::Arr_circular_arc_traits_2<CircularKernel> CircularK_CA_Traits;
|
||||
// #else
|
||||
// typedef CGAL::Circular_arc_traits<CircularKernel> Traits0;
|
||||
// typedef CGAL::Circular_arc_traits_tracer<Traits0> CircularK_CA_Traits;
|
||||
|
|
@ -169,7 +171,7 @@ Bench bench; //If you want create table with all datasets you supose to use th
|
|||
|
||||
typedef CircularKernel::Circular_arc_2 Circular_arc_2;
|
||||
typedef CircularKernel::Line_arc_2 Line_arc_2;
|
||||
typedef CGAL::Arr_circular_line_arc_traits<CircularKernel,Line_arc_2,Circular_arc_2> CircularK_Variant_Traits;
|
||||
typedef CGAL::Arr_circular_line_arc_traits_2<CircularKernel> CircularK_Variant_Traits;
|
||||
|
||||
typedef boost::variant< Circular_arc_2, Line_arc_2 > CircularKVarArc;
|
||||
typedef std::vector<CircularKVarArc> CircularKVarArcContainer;
|
||||
|
|
@ -203,7 +205,7 @@ bench.Compute_no_dxf<CircularKernel,CircularK_Variant_Traits,CircularKVarArcCont
|
|||
typedef CGAL::Lazy_circular_kernel_2<CK2_,CK3_> LazyCurvedK;
|
||||
|
||||
// #ifndef CGAL_CURVED_KERNEL_DEBUG
|
||||
typedef CGAL::Arr_circular_arc_traits<LazyCurvedK> LazyCurvedK_CA_Traits;
|
||||
typedef CGAL::Arr_circular_arc_traits_2<LazyCurvedK> LazyCurvedK_CA_Traits;
|
||||
// #else
|
||||
// typedef CGAL::Circular_arc_traits<LazyCurved_k> Traits0_2;
|
||||
// typedef CGAL::Circular_arc_traits_tracer<Traits0_2> LazyCurved_kTraits;
|
||||
|
|
@ -221,7 +223,7 @@ bench.Compute_no_dxf<CircularKernel,CircularK_Variant_Traits,CircularKVarArcCont
|
|||
typedef LazyCurvedK::Line_arc_2 Line_arc_3;
|
||||
typedef boost::variant<Circular_arc_3,Line_arc_3 > LazyVarArc;
|
||||
typedef std::vector<LazyVarArc> LazyVarContainer;
|
||||
typedef CGAL::Arr_circular_line_arc_traits<LazyCurvedK,Line_arc_3,Circular_arc_3> LazyCurvedK_Variant_Traits;
|
||||
typedef CGAL::Arr_circular_line_arc_traits_2<LazyCurvedK> LazyCurvedK_Variant_Traits;
|
||||
|
||||
bench.kernel("LazyKVar");
|
||||
|
||||
|
|
@ -239,7 +241,7 @@ bench.Compute_no_dxf<CircularKernel,CircularK_Variant_Traits,CircularKVarArcCont
|
|||
typedef CGAL::Filtered_hexagon_circular_kernel_2<CircularKernel> CircularKernelHexagon;
|
||||
|
||||
// #ifndef CGAL_CURVED_KERNEL_DEBUG
|
||||
typedef CGAL::Arr_circular_arc_traits<CircularKernelHexagon> CircularKernHex_CA_Traits;
|
||||
typedef CGAL::Arr_circular_arc_traits_2<CircularKernelHexagon> CircularKernHex_CA_Traits;
|
||||
// #else
|
||||
// typedef CGAL::Circular_arc_traits<CircularKernelHexagon> Traits0_3;
|
||||
// typedef CGAL::Circular_arc_traits_tracer<Traits0_3> CircularKernHex_CA_Traits;
|
||||
|
|
@ -256,7 +258,7 @@ bench.Compute_no_dxf<CircularKernel,CircularK_Variant_Traits,CircularKVarArcCont
|
|||
typedef CircularKernelHexagon::Line_arc_2 Line_arc_4;
|
||||
typedef boost::variant< Circular_arc_4, Line_arc_4 > CircularKernHexVarArc;
|
||||
typedef std::vector<CircularKernHexVarArc> CircularKernHexVarArcContainer;
|
||||
typedef CGAL::Arr_circular_line_arc_traits<CircularKernelHexagon,Circular_arc_4,Line_arc_4> CircularKernHex_Variant_Traits;
|
||||
typedef CGAL::Arr_circular_line_arc_traits_2<CircularKernelHexagon> CircularKernHex_Variant_Traits;
|
||||
|
||||
bench.kernel("CK Hex VarTraits");
|
||||
|
||||
|
|
@ -275,7 +277,7 @@ bench.Compute_no_dxf<CircularKernel,CircularK_Variant_Traits,CircularKVarArcCont
|
|||
typedef CGAL::Filtered_hexagon_circular_kernel_2<LazyCurvedK> LazyKernelHexagon;
|
||||
|
||||
// #ifndef CGAL_CURVED_KERNEL_DEBUG
|
||||
typedef CGAL::Arr_circular_arc_traits<LazyKernelHexagon> LazyKernelHexagon_CA_Traits;
|
||||
typedef CGAL::Arr_circular_arc_traits_2<LazyKernelHexagon> LazyKernelHexagon_CA_Traits;
|
||||
// #else
|
||||
// typedef CGAL::Circular_arc_traits<LazyKernelHexagon> Traits0_4;
|
||||
// typedef CGAL::Circular_arc_traits_tracer<Traits0_4> LazyKernelHexagon_CA_Traits;
|
||||
|
|
@ -291,7 +293,7 @@ bench.Compute_no_dxf<CircularKernel,CircularK_Variant_Traits,CircularKVarArcCont
|
|||
typedef LazyKernelHexagon::Line_arc_2 Line_arc_5;
|
||||
typedef boost::variant<Circular_arc_5,Line_arc_5 > HxLazyVarArc;
|
||||
typedef std::vector<HxLazyVarArc> HxLazyVarContainer;
|
||||
typedef CGAL::Arr_circular_line_arc_traits<LazyKernelHexagon,Line_arc_5,Circular_arc_5> HxLazyVariantTraits;
|
||||
typedef CGAL::Arr_circular_line_arc_traits_2<LazyKernelHexagon> HxLazyVariantTraits;
|
||||
|
||||
bench.kernel("LazyK Hex VarTraits") ;
|
||||
|
||||
|
|
@ -308,7 +310,7 @@ bench.Compute_no_dxf<LazyKernelHexagon,HxLazyVariantTraits,HxLazyVarContainer>()
|
|||
typedef CGAL::Filtered_bbox_circular_kernel_2<CircularKernel> BBCircularKernel ;
|
||||
|
||||
// #ifndef CGAL_CURVED_KERNEL_DEBUG
|
||||
typedef CGAL::Arr_circular_arc_traits<BBCircularKernel> BBCircularKernel_CA_Traits;
|
||||
typedef CGAL::Arr_circular_arc_traits_2<BBCircularKernel> BBCircularKernel_CA_Traits;
|
||||
// #else
|
||||
// typedef CGAL::Circular_arc_traits<BBCircularKernel> Traits0_5;
|
||||
// typedef CGAL::Circular_arc_traits_tracer<Traits0_5> BBCircularKernel_CA_Traits;
|
||||
|
|
@ -323,7 +325,7 @@ bench.Compute_no_dxf<LazyKernelHexagon,HxLazyVariantTraits,HxLazyVarContainer>()
|
|||
typedef BBCircularKernel::Line_arc_2 Line_arc_6;
|
||||
typedef boost::variant<Circular_arc_6,Line_arc_6 > BBCircVarArc;
|
||||
typedef std::vector<BBCircVarArc> BBCircVarContainer;
|
||||
typedef CGAL::Arr_circular_line_arc_traits<BBCircularKernel,Line_arc_6,Circular_arc_6> BBCircVariantTraits;
|
||||
typedef CGAL::Arr_circular_line_arc_traits_2<BBCircularKernel> BBCircVariantTraits;
|
||||
|
||||
bench.kernel("CK BBox VarTraits") ;
|
||||
|
||||
|
|
@ -340,7 +342,7 @@ bench.Compute_no_dxf<LazyKernelHexagon,HxLazyVariantTraits,HxLazyVarContainer>()
|
|||
typedef CGAL::Filtered_bbox_circular_kernel_2<LazyCurvedK> BBLazyCurvedK;
|
||||
|
||||
// #ifndef CGAL_CURVED_KERNEL_DEBUG
|
||||
typedef CGAL::Arr_circular_arc_traits<BBLazyCurvedK> BBLazyCurvedK_CA_Traits;
|
||||
typedef CGAL::Arr_circular_arc_traits_2<BBLazyCurvedK> BBLazyCurvedK_CA_Traits;
|
||||
// #else
|
||||
// typedef CGAL::Circular_arc_traits<BBLazyCurvedK> Traits0_6;
|
||||
// typedef CGAL::Circular_arc_traits_tracer<Traits0_6> BBLazyCurvedK_CA_Traits;
|
||||
|
|
@ -357,7 +359,7 @@ bench.Compute_no_dxf<LazyKernelHexagon,HxLazyVariantTraits,HxLazyVarContainer>()
|
|||
typedef BBLazyCurvedK::Line_arc_2 Line_arc_7;
|
||||
typedef boost::variant<Circular_arc_7,Line_arc_7 > BBLazyVarArc;
|
||||
typedef std::vector< BBLazyVarArc> BBLazyVarContainer;
|
||||
typedef CGAL::Arr_circular_line_arc_traits<BBLazyCurvedK,Line_arc_7,Circular_arc_7> BBLazyVariantTraits;
|
||||
typedef CGAL::Arr_circular_line_arc_traits_2<BBLazyCurvedK> BBLazyVariantTraits;
|
||||
|
||||
bench.kernel("LLazyK BBox VarTraits") ;
|
||||
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ class Bench
|
|||
typedef typename CGAL::Arrangement_2<Traits> Pmwx;
|
||||
typedef typename CGAL::Arr_naive_point_location<Pmwx> Point_location;
|
||||
std::cout << "memory size before construction" << mem_sizer.virtual_size() << std::endl;
|
||||
std::cout << "memory resident size before insert_curves()" << mem_sizer.resident_size () << std::endl;
|
||||
std::cout << "memory resident size before insert()" << mem_sizer.resident_size () << std::endl;
|
||||
Pmwx _pm;
|
||||
Point_location _pl(_pm);
|
||||
|
||||
|
|
@ -217,7 +217,7 @@ class Bench
|
|||
this->start();
|
||||
for (typename ArcContainer::const_iterator it=ac.begin();
|
||||
it != ac.end(); ++it) {
|
||||
insert_curve(_pm,*it,_pl);
|
||||
insert(_pm,*it,_pl,boost::false_type());
|
||||
};
|
||||
this->stop();
|
||||
}
|
||||
|
|
@ -234,8 +234,8 @@ class Bench
|
|||
if (!fail){this->summarize(_pm.number_of_vertices(),_pm.number_of_halfedges());}
|
||||
|
||||
_pm.clear();
|
||||
std::cout << "memory size after insert_curves()" << mem_sizer.virtual_size () << std::endl;
|
||||
std::cout << "memory resident size after insert_curves()" << mem_sizer.resident_size () << std::endl;
|
||||
std::cout << "memory size after insert()" << mem_sizer.virtual_size () << std::endl;
|
||||
std::cout << "memory resident size after insert()" << mem_sizer.resident_size () << std::endl;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,66 +0,0 @@
|
|||
# Created by the script cgal_create_makefile
|
||||
# This is the makefile for compiling a CGAL application.
|
||||
|
||||
#---------------------------------------------------------------------#
|
||||
# include platform specific settings
|
||||
#---------------------------------------------------------------------#
|
||||
# Choose the right include file from the <cgalroot>/make directory.
|
||||
|
||||
# CGAL_MAKEFILE = ENTER_YOUR_INCLUDE_MAKEFILE_HERE
|
||||
|
||||
#-DNDEBUG \
|
||||
#-O2 -fprofile-arcs -ftest-coverage \
|
||||
#-DCGAL_PROFILE \
|
||||
#-g
|
||||
|
||||
include $(CGAL_MAKEFILE)
|
||||
|
||||
|
||||
#---------------------------------------------------------------------#
|
||||
# compiler flags
|
||||
#---------------------------------------------------------------------#
|
||||
|
||||
CXXFLAGS = \
|
||||
-DNDEBUG \
|
||||
-O2 \
|
||||
-I../include \
|
||||
$(TESTSUITE_CXXFLAGS) \
|
||||
$(EXTRA_FLAGS) \
|
||||
$(CGAL_CXXFLAGS) \
|
||||
$(LONG_NAME_PROBLEM_CXXFLAGS)
|
||||
|
||||
#---------------------------------------------------------------------#
|
||||
# linker flags
|
||||
#---------------------------------------------------------------------#
|
||||
|
||||
LIBPATH = \
|
||||
$(CGAL_LIBPATH)
|
||||
|
||||
LDFLAGS = \
|
||||
$(LONG_NAME_PROBLEM_LDFLAGS) \
|
||||
$(CGAL_LDFLAGS)
|
||||
#---------------------------------------------------------------------#
|
||||
# target entries
|
||||
#---------------------------------------------------------------------#
|
||||
|
||||
all: \
|
||||
benchmark_CK2$(EXE_EXT)\
|
||||
benchmarks_arrangement$(EXE_EXT)
|
||||
|
||||
benchmarks_arrangement$(EXE_EXT): benchmarks_arrangement$(OBJ_EXT)
|
||||
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)benchmarks_arrangement benchmarks_arrangement$(OBJ_EXT) $(LDFLAGS)
|
||||
|
||||
benchmark_CK2$(EXE_EXT): benchmark_CK2$(OBJ_EXT)
|
||||
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)benchmark_CK2 benchmark_CK2$(OBJ_EXT) $(LDFLAGS)
|
||||
|
||||
clean: \
|
||||
benchmarks_arrangement.clean\
|
||||
benchmark_CK2.clean
|
||||
|
||||
#---------------------------------------------------------------------#
|
||||
# suffix rules
|
||||
#---------------------------------------------------------------------#
|
||||
|
||||
.cpp$(OBJ_EXT):
|
||||
$(CGAL_CXX) $(CXXFLAGS) $(OBJ_OPT) $<
|
||||
|
||||
|
|
@ -93,7 +93,13 @@ struct Circular_kernel_2
|
|||
>,
|
||||
Circular_kernel_2<LinearKernel,AlgebraicKernel>
|
||||
>
|
||||
{};
|
||||
{
|
||||
// for Lazy hexagons/bbox kernels
|
||||
// Please remove this if you consider it to be sloppy
|
||||
struct Circular_tag{};
|
||||
typedef Circular_tag Definition_tag;
|
||||
//
|
||||
};
|
||||
|
||||
} //namespace CGAL
|
||||
|
||||
|
|
|
|||
|
|
@ -63,8 +63,8 @@ template <class CK>
|
|||
typedef typename CK::Compare_x_2 Compare_x_2;
|
||||
typedef typename CK::Compare_y_2 Compare_y_2;
|
||||
typedef typename CK::Compare_xy_2 Compare_xy_2;
|
||||
typedef typename CK::Compute_Circular_x_2 Compute_Circular_x_2;
|
||||
typedef typename CK::Compute_Circular_y_2 Compute_Circular_y_2;
|
||||
typedef typename CK::Compute_circular_x_2 Compute_circular_x_2;
|
||||
typedef typename CK::Compute_circular_y_2 Compute_circular_y_2;
|
||||
typedef Hexagon_functors::Construct_circular_source_vertex_2<Self> Construct_circular_source_vertex_2;
|
||||
typedef Hexagon_functors::Construct_circular_target_vertex_2<Self> Construct_circular_target_vertex_2;
|
||||
typedef Hexagon_functors::Construct_circular_min_vertex_2<Self> Construct_circular_min_vertex_2;
|
||||
|
|
|
|||
|
|
@ -166,10 +166,6 @@ public:
|
|||
Lazy_make_x_monotone_2 <Kernel,typename AK::C, typename EK::C>, \
|
||||
typename boost::mpl::if_<boost::is_same<typename AK::C, typename AK::Make_xy_monotone_2>, \
|
||||
Lazy_make_x_monotone_2 <Kernel,typename AK::C, typename EK::C>, \
|
||||
typename boost::mpl::if_<boost::is_same<typename AK::C, typename AK::Advanced_make_x_monotone_2>, \
|
||||
Lazy_advanced_make_x_monotone_2 <Kernel,typename AK::C, typename EK::C>, \
|
||||
typename boost::mpl::if_<boost::is_same<typename AK::C, typename AK::Advanced_make_xy_monotone_2>, \
|
||||
Lazy_advanced_make_x_monotone_2 <Kernel,typename AK::C, typename EK::C>, \
|
||||
typename boost::mpl::if_<boost::is_same<typename AK::C, typename AK::Split_2>, \
|
||||
Lazy_functor_2_2 <Kernel, typename AK::C, typename EK::C>, \
|
||||
typename boost::mpl::if_<boost::is_same<typename AK::C::result_type, Bbox_2>, \
|
||||
|
|
@ -178,7 +174,7 @@ public:
|
|||
Lazy_construction_nt<Kernel,typename AK::C, typename EK::C>,\
|
||||
typename boost::mpl::if_<boost::is_same<typename AK::C::result_type, Object >,\
|
||||
Lazy_construction_object<Kernel,typename AK::C, typename EK::C>,\
|
||||
Lazy_construction<Kernel,typename AK::C, typename EK::C> >::type >::type >::type >::type >::type >::type >::type >::type >::type C; \
|
||||
Lazy_construction<Kernel,typename AK::C, typename EK::C> >::type >::type >::type >::type >::type >::type >::type C; \
|
||||
C Cf() const { return C(); }
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -47,17 +47,17 @@ make_lazy_CK(const Object& eto)
|
|||
object_cast<std::pair<typename EK::Circular_arc_point_2,
|
||||
unsigned > >(&eto))){
|
||||
return make_object(std::make_pair(typename LK::Circular_arc_point_2(
|
||||
new Lazy_construct_rep_0<typename AK::Circular_arc_point_2,
|
||||
new Lazy_rep_0<typename AK::Circular_arc_point_2,
|
||||
typename EK::Circular_arc_point_2, E2A>(ptr->first)),ptr->second));
|
||||
} else if(const typename EK::Circular_arc_2* ptr =
|
||||
object_cast<typename EK::Circular_arc_2>(&eto)){
|
||||
return make_object(typename LK::Circular_arc_2(
|
||||
new Lazy_construct_rep_0<typename AK::Circular_arc_2,
|
||||
new Lazy_rep_0<typename AK::Circular_arc_2,
|
||||
typename EK::Circular_arc_2, E2A>(*ptr)));
|
||||
} else if(const typename EK::Line_arc_2* ptr =
|
||||
object_cast<typename EK::Line_arc_2>(&eto)){
|
||||
return make_object(typename LK::Line_arc_2(
|
||||
new Lazy_construct_rep_0<typename AK::Line_arc_2,
|
||||
new Lazy_rep_0<typename AK::Line_arc_2,
|
||||
typename EK::Line_arc_2, E2A>(*ptr)));
|
||||
} else{
|
||||
std::cerr << "object_cast inside Lazy_construction_rep::operator() failed. It needs more else if's" << std::endl;
|
||||
|
|
@ -94,7 +94,7 @@ public:
|
|||
CGAL_BRANCH_PROFILER(std::string(" failures/calls to : ") + std::string(CGAL_PRETTY_FUNCTION), tmp);
|
||||
try {
|
||||
Protect_FPU_rounding<Protection> P;
|
||||
Lazy_vector lv(new Lazy_construct_rep_with_vector_2<AC, EC, E2A, L1, L2>(ac, ec, l1, l2));
|
||||
Lazy_vector lv(new Lazy_rep_with_vector_2<AC, EC, E2A, L1, L2>(ac, ec, l1, l2));
|
||||
|
||||
for(unsigned int i = 0; i < lv.approx().size(); i++){
|
||||
|
||||
|
|
@ -103,21 +103,21 @@ public:
|
|||
if((temp_p=object_cast<std::pair<typename AK::Circular_arc_point_2,
|
||||
unsigned > >(& (lv.approx()[i])))){
|
||||
*it = make_object(std::make_pair(typename LK::Circular_arc_point_2(
|
||||
new Lazy_construct_rep_1<Ith<typename AK::Circular_arc_point_2>,
|
||||
new Lazy_rep_1<Ith<typename AK::Circular_arc_point_2>,
|
||||
Ith<typename EK::Circular_arc_point_2>, E2A,
|
||||
Lazy_vector>(Ith<typename AK::Circular_arc_point_2>(i,false),
|
||||
Ith<typename EK::Circular_arc_point_2>(i,false), lv)),temp_p->second));
|
||||
++it;
|
||||
} else if(object_cast<typename AK::Circular_arc_2>(& (lv.approx()[i]))){
|
||||
*it = make_object(typename LK::Circular_arc_2(
|
||||
new Lazy_construct_rep_1<Ith<typename AK::Circular_arc_2>,
|
||||
new Lazy_rep_1<Ith<typename AK::Circular_arc_2>,
|
||||
Ith<typename EK::Circular_arc_2>,E2A,
|
||||
Lazy_vector>(Ith<typename AK::Circular_arc_2>(i),
|
||||
Ith<typename EK::Circular_arc_2>(i), lv)));
|
||||
++it;
|
||||
} else if(object_cast<typename AK::Line_arc_2>(& (lv.approx()[i]))){
|
||||
*it = make_object(typename LK::Line_arc_2(
|
||||
new Lazy_construct_rep_1<Ith<typename AK::Line_arc_2>,
|
||||
new Lazy_rep_1<Ith<typename AK::Line_arc_2>,
|
||||
Ith<typename EK::Line_arc_2>,E2A,
|
||||
Lazy_vector>(Ith<typename AK::Line_arc_2>(i),
|
||||
Ith<typename EK::Line_arc_2>(i), lv)));
|
||||
|
|
@ -172,20 +172,20 @@ public:
|
|||
CGAL_BRANCH_PROFILER(std::string(" failures/calls to : ") + std::string(CGAL_PRETTY_FUNCTION), tmp);
|
||||
try {
|
||||
Protect_FPU_rounding<Protection> P;
|
||||
Lazy_vector lv(new Lazy_construct_rep_with_vector_1<AC, EC, E2A, L1>(ac, ec, l1));
|
||||
Lazy_vector lv(new Lazy_rep_with_vector_1<AC, EC, E2A, L1>(ac, ec, l1));
|
||||
// lv.approx() is a std::vector<Object([AK::Point_2,AK::Segment_2])>
|
||||
// that is, when we get here we have constructed all approximate results
|
||||
for(unsigned int i = 0; i < lv.approx().size(); i++){
|
||||
if(object_cast<typename AK::Circular_arc_2>(& (lv.approx()[i]))){
|
||||
*it = make_object(typename LK::Circular_arc_2(
|
||||
new Lazy_construct_rep_1<Ith<typename AK::Circular_arc_2>,
|
||||
new Lazy_rep_1<Ith<typename AK::Circular_arc_2>,
|
||||
Ith<typename EK::Circular_arc_2>,E2A,
|
||||
Lazy_vector>(Ith<typename AK::Circular_arc_2>(i),
|
||||
Ith<typename EK::Circular_arc_2>(i), lv)));
|
||||
++it;
|
||||
} else if(object_cast<typename AK::Line_arc_2>(& (lv.approx()[i]))){
|
||||
*it = make_object(typename LK::Line_arc_2(
|
||||
new Lazy_construct_rep_1<Ith<typename AK::Line_arc_2>,
|
||||
new Lazy_rep_1<Ith<typename AK::Line_arc_2>,
|
||||
Ith<typename EK::Line_arc_2>,E2A,
|
||||
Lazy_vector>(Ith<typename AK::Line_arc_2>(i),
|
||||
Ith<typename EK::Line_arc_2>(i), lv)));
|
||||
|
|
@ -240,20 +240,20 @@ public:
|
|||
CGAL_BRANCH_PROFILER(std::string(" failures/calls to : ") + std::string(CGAL_PRETTY_FUNCTION), tmp);
|
||||
try {
|
||||
Protect_FPU_rounding<Protection> P;
|
||||
Lazy_vector lv(new Lazy_construct_rep_with_vector_1<AC, EC, E2A, L1>(ac, ec, l1));
|
||||
Lazy_vector lv(new Lazy_rep_with_vector_1<AC, EC, E2A, L1>(ac, ec, l1));
|
||||
// lv.approx() is a std::vector<Object([AK::Point_2,AK::Segment_2])>
|
||||
// that is, when we get here we have constructed all approximate results
|
||||
for(unsigned int i = 0; i < lv.approx().size(); i++){
|
||||
if(object_cast<typename AK::Circular_arc_2>(& (lv.approx()[i].first))){
|
||||
*it = std::make_pair(make_object(typename LK::Circular_arc_2(
|
||||
new Lazy_construct_rep_1<Ith<typename AK::Circular_arc_2>,
|
||||
new Lazy_rep_1<Ith<typename AK::Circular_arc_2>,
|
||||
Ith<typename EK::Circular_arc_2>,E2A,
|
||||
Lazy_vector>(Ith<typename AK::Circular_arc_2>(i),
|
||||
Ith<typename EK::Circular_arc_2>(i), lv))),lv.approx()[i].second);
|
||||
++it;
|
||||
} else if(object_cast<typename AK::Line_arc_2>(& (lv.approx()[i].first))){
|
||||
*it = std::make_pair(make_object(typename LK::Line_arc_2(
|
||||
new Lazy_construct_rep_1<Ith<typename AK::Line_arc_2>,
|
||||
new Lazy_rep_1<Ith<typename AK::Line_arc_2>,
|
||||
Ith<typename EK::Line_arc_2>,E2A,
|
||||
Lazy_vector>(Ith<typename AK::Line_arc_2>(i),
|
||||
Ith<typename EK::Line_arc_2>(i), lv))),lv.approx()[i].second);
|
||||
|
|
@ -315,30 +315,30 @@ template <typename L1>
|
|||
CGAL_BRANCH_PROFILER(std::string(" failures/calls to : ") + std::string(CGAL_PRETTY_FUNCTION), tmp);
|
||||
try {
|
||||
Protect_FPU_rounding<Protection> P;
|
||||
Lazy_object lo(new Lazy_construct_rep_1<AC, EC, E2A, L1>(ac, ec, l1));
|
||||
Lazy_object lo(new Lazy_rep_1<AC, EC, E2A, L1>(ac, ec, l1));
|
||||
|
||||
std::pair<typename AK::Circular_arc_point_2, unsigned> *temp_p;
|
||||
|
||||
if((temp_p=object_cast<std::pair<typename AK::Circular_arc_point_2, unsigned > >(& (lo.approx())))){
|
||||
typedef Lazy_construct_rep_1<Object_cast<typename AK::Circular_arc_point_2>,
|
||||
typedef Lazy_rep_1<Object_cast<typename AK::Circular_arc_point_2>,
|
||||
Object_cast<typename EK::Circular_arc_point_2>, E2A, Lazy_object> Lcr;
|
||||
Lcr * lcr = new Lcr(Object_cast<typename AK::Circular_arc_point_2>(),
|
||||
Object_cast<typename EK::Circular_arc_point_2>(), lo);
|
||||
return make_object(std::make_pair(typename LK::Circular_arc_point_2(lcr),temp_p->second));
|
||||
} else if(object_cast<typename AK::Circular_arc_point_2>(& (lo.approx()))){
|
||||
typedef Lazy_construct_rep_1<Object_cast<typename AK::Circular_arc_point_2>,
|
||||
typedef Lazy_rep_1<Object_cast<typename AK::Circular_arc_point_2>,
|
||||
Object_cast<typename EK::Circular_arc_point_2>, E2A, Lazy_object> Lcr;
|
||||
Lcr * lcr = new Lcr(Object_cast<typename AK::Circular_arc_point_2>(),
|
||||
Object_cast<typename EK::Circular_arc_point_2>(), lo);
|
||||
return make_object(typename LK::Circular_arc_point_2(lcr));
|
||||
} else if(object_cast<typename AK::Circular_arc_2>(& (lo.approx()))){
|
||||
typedef Lazy_construct_rep_1<Object_cast<typename AK::Circular_arc_2>,
|
||||
typedef Lazy_rep_1<Object_cast<typename AK::Circular_arc_2>,
|
||||
Object_cast<typename EK::Circular_arc_2>, E2A, Lazy_object> Lcr;
|
||||
Lcr * lcr = new Lcr(Object_cast<typename AK::Circular_arc_2>(),
|
||||
Object_cast<typename EK::Circular_arc_2>(), lo);
|
||||
return make_object(typename LK::Circular_arc_2(lcr));}
|
||||
else if(object_cast<typename AK::Line_arc_2>(& (lo.approx()))){
|
||||
typedef Lazy_construct_rep_1<Object_cast<typename AK::Line_arc_2>,
|
||||
typedef Lazy_rep_1<Object_cast<typename AK::Line_arc_2>,
|
||||
Object_cast<typename EK::Line_arc_2>, E2A, Lazy_object> Lcr;
|
||||
Lcr * lcr = new Lcr(Object_cast<typename AK::Line_arc_2>(),
|
||||
Object_cast<typename EK::Line_arc_2>(), lo);
|
||||
|
|
@ -364,31 +364,31 @@ template <typename L1>
|
|||
CGAL_BRANCH_PROFILER(std::string(" failures/calls to : ") + std::string(CGAL_PRETTY_FUNCTION), tmp);
|
||||
try {
|
||||
Protect_FPU_rounding<Protection> P;
|
||||
Lazy_object lo(new Lazy_construct_rep_2<AC, EC, E2A, L1, L2>(ac, ec, l1, l2));
|
||||
Lazy_object lo(new Lazy_rep_2<AC, EC, E2A, L1, L2>(ac, ec, l1, l2));
|
||||
|
||||
std::pair<typename AK::Circular_arc_point_2, unsigned> *temp_p;
|
||||
|
||||
|
||||
if((temp_p=object_cast<std::pair<typename AK::Circular_arc_point_2, unsigned > >(& (lo.approx())))){
|
||||
typedef Lazy_construct_rep_1<Object_cast<typename AK::Circular_arc_point_2>,
|
||||
typedef Lazy_rep_1<Object_cast<typename AK::Circular_arc_point_2>,
|
||||
Object_cast<typename EK::Circular_arc_point_2>, E2A, Lazy_object> Lcr;
|
||||
Lcr * lcr = new Lcr(Object_cast<typename AK::Circular_arc_point_2>(),
|
||||
Object_cast<typename EK::Circular_arc_point_2>(), lo);
|
||||
return make_object(std::make_pair(typename LK::Circular_arc_point_2(lcr),temp_p->second));
|
||||
} else if(object_cast<typename AK::Circular_arc_point_2>(& (lo.approx()))){
|
||||
typedef Lazy_construct_rep_1<Object_cast<typename AK::Circular_arc_point_2>,
|
||||
typedef Lazy_rep_1<Object_cast<typename AK::Circular_arc_point_2>,
|
||||
Object_cast<typename EK::Circular_arc_point_2>, E2A, Lazy_object> Lcr;
|
||||
Lcr * lcr = new Lcr(Object_cast<typename AK::Circular_arc_point_2>(),
|
||||
Object_cast<typename EK::Circular_arc_point_2>(), lo);
|
||||
return make_object(typename LK::Circular_arc_point_2(lcr));
|
||||
} else if(object_cast<typename AK::Circular_arc_2>(& (lo.approx()))){
|
||||
typedef Lazy_construct_rep_1<Object_cast<typename AK::Circular_arc_2>,
|
||||
typedef Lazy_rep_1<Object_cast<typename AK::Circular_arc_2>,
|
||||
Object_cast<typename EK::Circular_arc_2>, E2A, Lazy_object> Lcr;
|
||||
Lcr * lcr = new Lcr(Object_cast<typename AK::Circular_arc_2>(),
|
||||
Object_cast<typename EK::Circular_arc_2>(), lo);
|
||||
return make_object(typename LK::Circular_arc_2(lcr));}
|
||||
else if(object_cast<typename AK::Line_arc_2>(& (lo.approx()))){
|
||||
typedef Lazy_construct_rep_1<Object_cast<typename AK::Line_arc_2>,
|
||||
typedef Lazy_rep_1<Object_cast<typename AK::Line_arc_2>,
|
||||
Object_cast<typename EK::Line_arc_2>, E2A, Lazy_object> Lcr;
|
||||
Lcr * lcr = new Lcr(Object_cast<typename AK::Line_arc_2>(),
|
||||
Object_cast<typename EK::Line_arc_2>(), lo);
|
||||
|
|
|
|||
|
|
@ -90,7 +90,13 @@ struct Circular_kernel_2
|
|||
>,
|
||||
Circular_kernel_2<LinearKernel,AlgebraicKernel>
|
||||
>
|
||||
{};
|
||||
{
|
||||
// for Lazy hexagons/bbox kernels
|
||||
// Please remove this if you consider it to be sloppy
|
||||
struct Circular_tag{};
|
||||
typedef Circular_tag Definition_tag;
|
||||
//
|
||||
};
|
||||
|
||||
} //namespace CGAL
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue