//! Print facet identifiers to stream. Space prefix. From qh_printfacetheader [io.c] ostream & operator<<(ostream &os, const QhullFacetSet::PrintIdentifiers &p) { os << p.print_message; for(QhullFacetSet::const_iterator i=p.facet_set->begin(); i!=p.facet_set->end(); ++i){ const QhullFacet f= *i; if(f.getFacetT()==qh_MERGEridge){ os << " MERGE"; }else if(f.getFacetT()==qh_DUPLICATEridge){ os << " DUP"; }else if(p.facet_set->isSelectAll() || f.isGood()){ os << " f" << f.id(); } } os << endl; return os; }//<<QhullFacetSet::PrintIdentifiers
//! Return next ridge and optional vertex for a 3d facet and ridge //! Does not use qh_errexit() QhullRidge QhullRidge:: nextRidge3d(const QhullFacet &f, QhullVertex *nextVertex) const { vertexT *v= 0; ridgeT *ridge= 0; if(qh_qh){ // Does not call qh_errexit(), TRY_QHULL_ not needed ridge= qh_nextridge3d(getRidgeT(), f.getFacetT(), &v); if(!ridge){ throw QhullError(10030, "Qhull error nextRidge3d: missing next ridge for facet %d ridge %d. Does facet contain ridge?", f.id(), id()); } } if(nextVertex!=0){ *nextVertex= QhullVertex(qh_qh, v); } return QhullRidge(qh_qh, ridge); }//nextRidge3d
//! Return next ridge and optional vertex for a 3d facet and ridge //! Does not use qh_qh or qh_errexit() QhullRidge QhullRidge:: nextRidge3d(const QhullFacet f, QhullVertex *nextVertex) const { vertexT *v= 0; ridgeT *ridge= qh_nextridge3d(getRidgeT(), f.getFacetT(), &v); if(!ridge){ throw QhullError(10030, "Qhull error nextRidge3d: missing next ridge for facet %d ridge %d. Does facet contain ridge?", f.id(), id()); } if(nextVertex!=0){ *nextVertex= QhullVertex(v); } return QhullRidge(ridge); }//nextRidge3d