char Facet::isClosed() const { for (int i=0; i<3; i++) { Edge *opposite = m_edges[i]->getTwin(); if(!opposite) { printf("edge not connected\n"); return 0; } Facet * f = (Facet *)(opposite->getFace()); if(!f){ printf("edge has no face\n"); return 0; } if(f->getIndex() < 0) { printf("face %d is removed\n", f->getIndex()); return 0; } } return 1; }
char Facet::getEdgeOnHorizon(std::vector<Edge *> & horizons) const { for (int i=0; i<3; i++) { Edge *opposite = m_edges[i]->getTwin(); if(!opposite) { printf("edge not connected\n"); return 0; } Facet * f = (Facet *)(opposite->getFace()); if(!f){ printf("edge has no face\n"); return 0; } if(f->getIndex() < 0) { printf("face %d is removed\n", f->getIndex()); return 0; } if(!f->isMarked()) { horizons.push_back(opposite); } } return 1; }