MCPcopy Create free account
hub / github.com/OpenSees/OpenSees / addEdge

Method addEdge

DEVELOPER/core/Graph.cpp:180–216  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

178// graph. Returns $0$ if sucessfull, a negative number if not.
179
180int
181Graph::addEdge(int vertexTag, int otherVertexTag)
182{
183 // get pointers to the vertices, if one does not exist return
184
185 Vertex *vertex1 = this->getVertexPtr(vertexTag);
186 Vertex *vertex2 = this->getVertexPtr(otherVertexTag);
187 if ((vertex1 == 0) || (vertex2 == 0)) {
188 opserr << "WARNING Graph::addEdge() - one or both of the vertices ";
189 opserr << vertexTag << " " << otherVertexTag << " not in Graph\n";
190 return -1;
191 }
192
193 // add an edge to each vertex
194 int result = vertex1->addEdge(otherVertexTag);
195 if (result == 1)
196 return 0; // already there
197 else if (result == 0) { // added to vertexTag now add to other
198 if ((result = vertex2->addEdge(vertexTag)) == 0) {
199 numEdge++;
200 }
201 else {
202 opserr << " WARNING Graph::addEdge() - " << vertexTag;
203 opserr << " added to " << otherVertexTag;
204 opserr << " adjacency - but already there in otherVertexTag!.\n";
205 opserr << *this; exit(0);
206 return -2;
207 }
208 } else {
209 opserr << " WARNING Graph::addEdge() - " << vertexTag;
210 opserr << " added to " << otherVertexTag;
211 opserr << " adjacency - but not vica versa!.\n";
212 opserr << *this; exit(0);
213 return -2;
214 }
215 return result;
216}
217
218
219Vertex *

Callers 6

GraphMethod · 0.95
mergeMethod · 0.95
AnalysisModel.cppFile · 0.45
recvSelfMethod · 0.45
buildEleGraphMethod · 0.45
buildNodeGraphMethod · 0.45

Calls 2

getVertexPtrMethod · 0.95
exitFunction · 0.85

Tested by

no test coverage detected