| 234 | } |
| 235 | |
| 236 | int |
| 237 | Graph::addEdgeFast(int vertexTag, int otherVertexTag) |
| 238 | { |
| 239 | // get pointers to the vertices, if one does not exist return |
| 240 | if (vertices.size()<=vertexTag || |
| 241 | vertices.size()<=otherVertexTag) { |
| 242 | opserr << "WARNING: the size of vertices is not correct\n"; |
| 243 | return -1; |
| 244 | } |
| 245 | Vertex *vertex1 = vertices[vertexTag]; |
| 246 | Vertex *vertex2 = vertices[otherVertexTag]; |
| 247 | if ((vertex1 == 0) || (vertex2 == 0)) { |
| 248 | opserr << "WARNING Graph::addEdge() - one or both of the vertices "; |
| 249 | opserr << vertexTag << " " << otherVertexTag << " not in Graph\n"; |
| 250 | return -1; |
| 251 | } |
| 252 | |
| 253 | // add an edge to each vertex |
| 254 | int result = vertex1->addEdge(otherVertexTag); |
| 255 | if (result == 1) |
| 256 | return 0; // already there |
| 257 | else if (result == 0) { // added to vertexTag now add to other |
| 258 | if ((result = vertex2->addEdge(vertexTag)) == 0) { |
| 259 | numEdge++; |
| 260 | } |
| 261 | else { |
| 262 | opserr << " WARNING Graph::addEdge() - " << vertexTag; |
| 263 | opserr << " added to " << otherVertexTag; |
| 264 | opserr << " adjacency - but already there in otherVertexTag!.\n"; |
| 265 | opserr << *this; exit(0); |
| 266 | return -2; |
| 267 | } |
| 268 | } else { |
| 269 | opserr << " WARNING Graph::addEdge() - " << vertexTag; |
| 270 | opserr << " added to " << otherVertexTag; |
| 271 | opserr << " adjacency - but not vica versa!.\n"; |
| 272 | opserr << *this; exit(0); |
| 273 | return -2; |
| 274 | } |
| 275 | return result; |
| 276 | } |
| 277 | |
| 278 | Vertex * |
| 279 | Graph::getVertexPtr(int vertexTag) |
no test coverage detected