//! Return True if nextRidge3d //! Simplicial facets may have incomplete ridgeSets //! Does not use qh_qh or qh_errexit() bool QhullRidge:: hasNextRidge3d(const QhullFacet f) const { vertexT *v= 0; ridgeT *ridge= qh_nextridge3d(getRidgeT(), f.getFacetT(), &v); return (ridge!=0); }//hasNextRidge3d
//! Return True if nextRidge3d //! Simplicial facets may have incomplete ridgeSets //! Does not use qh_errexit() bool QhullRidge:: hasNextRidge3d(const QhullFacet &f) const { if(!qh_qh){ return false; } vertexT *v= 0; // Does not call qh_errexit(), TRY_QHULL_ not needed ridgeT *ridge= qh_nextridge3d(getRidgeT(), f.getFacetT(), &v); return (ridge!=0); }//hasNextRidge3d
//! 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
//! 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