main () { int edge[MAX_PIECES], i, e = EMPTY; #ifdef DEBUG if (!(Debug_Fp = fopen ("debug.out", "w"))) quit(-1,"Couldn't open debug.out for writing\n"); #endif for (i = 0; i < 10; i++) edge[i] = EMPTY; compute_edge (edge, &Edge_Table[e][e][e][e][e][e][e][e][e][e]); process_all (); fprintf (stderr, "Average iterations = %f, Maximum = %d\n", (double) Total_Iters/Converged, Max_Num_Times); print_result (Edge_Table); return 0; }
void Viewer::compute_elements() { LCC &lcc = *scene->lcc; pos_facets.clear(); flat_normals.clear(); smooth_normals.clear(); colors.clear(); pos_lines.clear(); pos_points.clear(); if ( lcc.is_empty() ) { bb = LCC::Point(CGAL::ORIGIN).bbox(); bb = bb + LCC::Point(1,1,1).bbox(); // To avoid a warning from Qglviewer return; } LCC::size_type markvertex = lcc.get_new_mark(); LCC::size_type markedge = lcc.get_new_mark(); LCC::size_type markface = lcc.get_new_mark(); bool empty = true; for (LCC::Attribute_range<3>::type::iterator it=lcc.attributes<3>().begin(), itend=lcc.attributes<3>().end(); it!=itend; ++it ) { if ( it->info().is_visible() ) { for(LCC::Dart_of_cell_range<3>::iterator dartIter=lcc.darts_of_cell<3>(lcc.dart_of_attribute<3>(it)).begin(); dartIter.cont(); ++dartIter) { if ( it->info().is_filled() && !lcc.is_marked(dartIter, markface) ) compute_face(dartIter, markface); if ( !lcc.is_marked(dartIter, markedge) ) compute_edge(dartIter, markedge); if ( !lcc.is_marked(dartIter, markvertex) ) compute_vertex(dartIter, markvertex, empty); } } } if ( empty ) { bb = LCC::Point(CGAL::ORIGIN).bbox(); bb = bb + LCC::Point(1,1,1).bbox(); // To avoid a warning from Qglviewer } for (LCC::Dart_range::iterator it=lcc.darts().begin(), itend=lcc.darts().end(); it!=itend; ++it ) { lcc.unmark(it, markvertex); lcc.unmark(it, markedge); lcc.unmark(it, markface); } lcc.free_mark(markvertex); lcc.free_mark(markedge); lcc.free_mark(markface); }