mirror of https://github.com/CGAL/cgal
Improve reporting
This commit is contained in:
parent
ef19ead48a
commit
0afbfc9c65
|
|
@ -43,6 +43,40 @@ struct Visitor_rep{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void start_coplanar_faces(int tc)
|
||||||
|
{
|
||||||
|
std::cout << "Visitor::start_coplanar_faces() at " << t.time() << " sec." << std::endl;
|
||||||
|
tcoplanar= tc;
|
||||||
|
count_coplanar = 0;
|
||||||
|
bound_coplanar = tcoplanar/10;
|
||||||
|
}
|
||||||
|
|
||||||
|
void coplanar_faces_step()
|
||||||
|
{
|
||||||
|
++count_coplanar;
|
||||||
|
if(count_coplanar> bound_coplanar){
|
||||||
|
std::cout << "Visitor::coplanar_faces: " << double(count_coplanar)/double(tcoplanar) * 100 << " % " << std::endl;
|
||||||
|
bound_coplanar += tcoplanar/10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void start_intersection_points(int ti)
|
||||||
|
{
|
||||||
|
std::cout << "Visitor::start_intersection_points() at " << t.time() << " sec." << std::endl;
|
||||||
|
tintersection= ti;
|
||||||
|
count_intersection = 0;
|
||||||
|
bound_intersection = tintersection/10;
|
||||||
|
}
|
||||||
|
|
||||||
|
void intersection_points_step()
|
||||||
|
{
|
||||||
|
++count_intersection;
|
||||||
|
if(count_intersection> bound_intersection){
|
||||||
|
std::cout << "Visitor::intersection_points: " << double(count_intersection)/double(tintersection) * 100 << " % " << std::endl;
|
||||||
|
bound_intersection += tintersection/10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
double time() const
|
double time() const
|
||||||
{
|
{
|
||||||
return t.time();
|
return t.time();
|
||||||
|
|
@ -55,6 +89,14 @@ struct Visitor_rep{
|
||||||
|
|
||||||
int bound_faces = 0;
|
int bound_faces = 0;
|
||||||
int tfaces = 0;
|
int tfaces = 0;
|
||||||
|
|
||||||
|
int bound_coplanar = 0;
|
||||||
|
int tcoplanar = 0;
|
||||||
|
int count_coplanar = 0;
|
||||||
|
|
||||||
|
int bound_intersection = 0;
|
||||||
|
int tintersection = 0;
|
||||||
|
int count_intersection = 0;
|
||||||
CGAL::Timer t;
|
CGAL::Timer t;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -75,16 +117,16 @@ struct Visitor :
|
||||||
|
|
||||||
void start_filter_intersections() const
|
void start_filter_intersections() const
|
||||||
{
|
{
|
||||||
std::cout << "Visitor::start_filter_intersections() at " << sptr->time() << std::endl;
|
std::cout << "Visitor::start_filter_intersections() at " << sptr->time() << " sec." << std::endl;
|
||||||
}
|
}
|
||||||
void end_filter_intersections() const
|
void end_filter_intersections() const
|
||||||
{
|
{
|
||||||
std::cout << "Visitor::end_filter_intersections() at " << sptr->time() << std::endl;
|
std::cout << "Visitor::end_filter_intersections() at " << sptr->time() << " sec." << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void start_triangulation(int tf)const
|
void start_triangulation(int tf)const
|
||||||
{
|
{
|
||||||
std::cout << "Visitor::start_triangulation() with " << tf << " faces at " << sptr->time() << std::endl;
|
std::cout << "Visitor::start_triangulation() with " << tf << " faces at " << sptr->time() << " sec." << std::endl;
|
||||||
sptr->start_triangulation(tf);
|
sptr->start_triangulation(tf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -95,37 +137,52 @@ struct Visitor :
|
||||||
|
|
||||||
void end_triangulation()const
|
void end_triangulation()const
|
||||||
{
|
{
|
||||||
std::cout << "Visitor::end_triangulation() at " << sptr->time() << std::endl;
|
std::cout << "Visitor::end_triangulation() at " << sptr->time() << " sec." << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void start_coplanar_faces(int) const
|
void start_coplanar_faces(int i) const
|
||||||
{
|
{
|
||||||
std::cout << "Visitor::start_coplanar_faces() at " << sptr->time() << std::endl;
|
sptr->start_coplanar_faces(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
void coplanar_faces_step() const
|
void coplanar_faces_step() const
|
||||||
{
|
{
|
||||||
std::cout << "Visitor::coplanar_faces_step() at " << sptr->time() << std::endl;
|
sptr->coplanar_faces_step();
|
||||||
}
|
}
|
||||||
|
|
||||||
void end_coplanar_faces() const
|
void end_coplanar_faces() const
|
||||||
{
|
{
|
||||||
std::cout << "Visitor::end_coplanar_faces() at " << sptr->time() << std::endl;
|
std::cout << "Visitor::end_coplanar_faces() at " << sptr->time() << " sec." << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
void start_intersection_points(int i) const
|
||||||
|
{
|
||||||
|
sptr->start_intersection_points(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
void intersection_points_step() const
|
||||||
|
{
|
||||||
|
sptr->intersection_points_step();
|
||||||
|
}
|
||||||
|
|
||||||
|
void end_intersection_points() const
|
||||||
|
{
|
||||||
|
std::cout << "Visitor::end_intersection_points() at " << sptr->time() << " sec." << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void start_build_output() const
|
void start_build_output() const
|
||||||
{
|
{
|
||||||
std::cout << "Visitor::start_build_output() at " << sptr->time() << std::endl;
|
std::cout << "Visitor::start_build_output() at " << sptr->time() << " sec."<< std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void build_output_step() const
|
void build_output_step() const
|
||||||
{
|
{
|
||||||
std::cout << "Visitor::build_output_step() at " << sptr->time() << std::endl;
|
std::cout << "Visitor::build_output_step() at " << sptr->time() << " sec." << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void end_build_output() const
|
void end_build_output() const
|
||||||
{
|
{
|
||||||
std::cout << "Visitor::end_build_output() at " << sptr->time() << std::endl;
|
std::cout << "Visitor::end_build_output() at " << sptr->time() << " sec." << std::endl;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -146,10 +203,10 @@ int main(int argc, char* argv[])
|
||||||
t.start();
|
t.start();
|
||||||
Mesh out;
|
Mesh out;
|
||||||
Visitor visitor;
|
Visitor visitor;
|
||||||
// PMP::corefine(mesh1,mesh2, CGAL::parameters::visitor(visitor));
|
|
||||||
bool valid_union = PMP::corefine_and_compute_union (mesh1,mesh2, out, CGAL::parameters::visitor(visitor));
|
bool valid_union = PMP::corefine_and_compute_union (mesh1,mesh2, out, CGAL::parameters::visitor(visitor));
|
||||||
|
|
||||||
std::cout << "total time = " << t.time() << std::endl;
|
std::cout << "Global timer = " << t.time() << " sec." << std::endl;
|
||||||
|
|
||||||
|
|
||||||
if(valid_union)
|
if(valid_union)
|
||||||
|
|
|
||||||
|
|
@ -570,19 +570,19 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void start_build_output() const
|
void start_intersection_points(int i) const
|
||||||
{
|
{
|
||||||
user_visitor.start_build_output();
|
user_visitor.start_intersection_points(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
void build_output_step() const
|
void intersection_points_step() const
|
||||||
{
|
{
|
||||||
user_visitor.build_output_step();
|
user_visitor.intersection_points_step();
|
||||||
}
|
}
|
||||||
|
|
||||||
void end_build_output() const
|
void end_intersection_points() const
|
||||||
{
|
{
|
||||||
user_visitor.end_build_output();
|
user_visitor.end_intersection_points();
|
||||||
}
|
}
|
||||||
|
|
||||||
void start_coplanar_faces(int i) const
|
void start_coplanar_faces(int i) const
|
||||||
|
|
@ -600,6 +600,21 @@ public:
|
||||||
user_visitor.end_coplanar_faces();
|
user_visitor.end_coplanar_faces();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void start_build_output() const
|
||||||
|
{
|
||||||
|
user_visitor.start_build_output();
|
||||||
|
}
|
||||||
|
|
||||||
|
void build_output_step() const
|
||||||
|
{
|
||||||
|
user_visitor.build_output_step();
|
||||||
|
}
|
||||||
|
|
||||||
|
void end_build_output() const
|
||||||
|
{
|
||||||
|
user_visitor.end_build_output();
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
set_non_manifold_feature_map(
|
set_non_manifold_feature_map(
|
||||||
const TriangleMesh& tm,
|
const TriangleMesh& tm,
|
||||||
|
|
|
||||||
|
|
@ -465,15 +465,23 @@ struct Default_visitor{
|
||||||
void start_filter_intersections() const {}
|
void start_filter_intersections() const {}
|
||||||
void progress_filter_intersection(double ) const {}
|
void progress_filter_intersection(double ) const {}
|
||||||
void end_filter_intersections() const {}
|
void end_filter_intersections() const {}
|
||||||
|
|
||||||
void start_triangulation(int) const {}
|
void start_triangulation(int) const {}
|
||||||
void progress_triangulation(int) const {}
|
void progress_triangulation(int) const {}
|
||||||
void end_triangulation() const {}
|
void end_triangulation() const {}
|
||||||
|
|
||||||
|
void start_coplanar_faces(int) const {}
|
||||||
|
void coplanar_faces_step() const {}
|
||||||
|
void end_coplanar_faces() const {}
|
||||||
|
|
||||||
|
void start_intersection_points(int) const {}
|
||||||
|
void intersection_points_step() const {}
|
||||||
|
void end_intersection_points() const {}
|
||||||
|
|
||||||
void start_build_output() const {}
|
void start_build_output() const {}
|
||||||
void build_output_step() const {}
|
void build_output_step() const {}
|
||||||
void end_build_output() const {}
|
void end_build_output() const {}
|
||||||
void start_coplanar_faces() const {}
|
|
||||||
void coplanar_faces_step() const {}
|
|
||||||
void end_coplanar_faces() const {}
|
|
||||||
|
|
||||||
// calls commented in the code and probably incomplete due to the migration
|
// calls commented in the code and probably incomplete due to the migration
|
||||||
// see NODE_VISITOR_TAG
|
// see NODE_VISITOR_TAG
|
||||||
|
|
|
||||||
|
|
@ -854,10 +854,12 @@ class Intersection_of_triangle_meshes
|
||||||
{
|
{
|
||||||
typedef std::tuple<Intersection_type, halfedge_descriptor, bool,bool> Inter_type;
|
typedef std::tuple<Intersection_type, halfedge_descriptor, bool,bool> Inter_type;
|
||||||
|
|
||||||
|
visitor.start_intersection_points(tm1_edge_to_tm2_faces.size());
|
||||||
|
|
||||||
for(typename Edge_to_faces::iterator it=tm1_edge_to_tm2_faces.begin();
|
for(typename Edge_to_faces::iterator it=tm1_edge_to_tm2_faces.begin();
|
||||||
it!=tm1_edge_to_tm2_faces.end();++it)
|
it!=tm1_edge_to_tm2_faces.end();++it)
|
||||||
{
|
{
|
||||||
|
visitor.intersection_points_step();
|
||||||
edge_descriptor e_1=it->first;
|
edge_descriptor e_1=it->first;
|
||||||
|
|
||||||
halfedge_descriptor h_1=halfedge(e_1,tm1);
|
halfedge_descriptor h_1=halfedge(e_1,tm1);
|
||||||
|
|
@ -1076,6 +1078,7 @@ class Intersection_of_triangle_meshes
|
||||||
} // end loop on all faces that intersect the edge
|
} // end loop on all faces that intersect the edge
|
||||||
} // end loop on all entries (edges) in 'edge_to_face'
|
} // end loop on all entries (edges) in 'edge_to_face'
|
||||||
CGAL_assertion(nodes.size()==unsigned(current_node+1));
|
CGAL_assertion(nodes.size()==unsigned(current_node+1));
|
||||||
|
visitor.end_intersection_points();
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Graph_node{
|
struct Graph_node{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue