int _CheckOuterplanarObstructionIntegrity(graphP theGraph) { int degrees[4], imageVerts[5]; if (_getImageVertices(theGraph, degrees, 3, imageVerts, 5) != OK) return NOTOK; if (_TestForCompleteGraphObstruction(theGraph, 4, degrees, imageVerts) == TRUE) { return OK; } if (_TestForK23GraphObstruction(theGraph, degrees, imageVerts) == TRUE) { return OK; } /* We get here only if we failed to recognize an outerplanarity obstruction, so we return failure */ return NOTOK; }
int _K23Search_CheckObstructionIntegrity(graphP theGraph, graphP origGraph) { // When searching for K2,3, we ensure that theGraph is a subgraph of // the original graph and that it contains a K2,3 homeomorph if (theGraph->embedFlags == EMBEDFLAGS_SEARCHFORK23) { int degrees[4], imageVerts[5]; if (_TestSubgraph(theGraph, origGraph) != TRUE) return NOTOK; if (_getImageVertices(theGraph, degrees, 3, imageVerts, 5) != OK) return NOTOK; if (_TestForK23GraphObstruction(theGraph, degrees, imageVerts) == TRUE) { return OK; } return NOTOK; } // When not searching for K2,3, we let the superclass do the work else { K23SearchContext *context = NULL; gp_FindExtension(theGraph, K23SEARCH_ID, (void *)&context); if (context != NULL) { return context->functions.fpCheckObstructionIntegrity(theGraph, origGraph); } } return NOTOK; }