void Scene::refine_loop() { if(m_pPolyhedron == NULL) { std::cout << "Load polyhedron first." << std::endl; return; } std::cout << "Loop subdivision..."; CGAL::Subdivision_method_3::Loop_subdivision(*m_pPolyhedron, 1); std::cout << "done (" << m_pPolyhedron->size_of_facets() << " facets)" << std::endl; clear_internal_data(); }
void Scene::refine_bisection(const FT max_sqlen) { if(m_pPolyhedron == NULL) { std::cout << "Load polyhedron first." << std::endl; return; } std::cout << "Refine through recursive longest edge bisection..."; Refiner<Kernel,Polyhedron> refiner(m_pPolyhedron); refiner(max_sqlen); std::cout << "done (" << m_pPolyhedron->size_of_facets() << " facets)" << std::endl; clear_internal_data(); }
int Scene::open(QString filename) { QTextStream cerr(stderr); cerr << QString("Opening file \"%1\"\n").arg(filename); QApplication::setOverrideCursor(QCursor(::Qt::WaitCursor)); QFileInfo fileinfo(filename); std::ifstream in(filename.toUtf8()); if(!in || !fileinfo.isFile() || ! fileinfo.isReadable()) { std::cerr << "unable to open file" << std::endl; QApplication::restoreOverrideCursor(); return -1; } if(m_pPolyhedron != NULL) delete m_pPolyhedron; // allocate new polyhedron m_pPolyhedron = new Polyhedron; in >> *m_pPolyhedron; if(!in) { std::cerr << "invalid OFF file" << std::endl; QApplication::restoreOverrideCursor(); delete m_pPolyhedron; m_pPolyhedron = NULL; return -1; } // clear tree clear_internal_data(); QApplication::restoreOverrideCursor(); changed(); return 0; }