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

Method addVertex

DEVELOPER/core/Graph.cpp:129–169  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

127// before the vertex is added.
128
129bool
130Graph::addVertex(Vertex *vertexPtr, bool checkAdjacency)
131{
132 // check the vertex * and its adjacency list
133 if (vertexPtr == 0) {
134 opserr << "WARNING Graph::addVertex";
135 opserr << " - attempting to add a NULL vertex*\n";
136 return false;
137 }
138
139 if (checkAdjacency == true) {
140 if (vertexPtr->getDegree() != 0) {
141 const ID &adjacency = vertexPtr->getAdjacency();
142 int size = adjacency.Size();
143 for (int i=0; i<size; i++) {
144 Vertex *other = this->getVertexPtr(adjacency(i));
145 if (other == 0) {
146 opserr << "WARNING Graph::addVertex";
147 opserr << " - vertex with adjacent vertex not in graph\n";
148 return false;
149 }
150 }
151 }
152 }
153
154
155 bool result = myVertices->addComponent(vertexPtr);
156 if (result == false) {
157 opserr << *this;
158 opserr << "BAD VERTEX\n: " << *vertexPtr;
159 opserr << "WARNING Graph::addVertex";
160 opserr << " - vertex could not be stored in TaggedObjectStorage object\n";
161 }
162
163
164 // check nextFreeTag
165 if (vertexPtr->getTag() >= nextFreeTag)
166 nextFreeTag = vertexPtr->getTag() + 1;
167
168 return result;
169}
170
171
172// int addEdge(int vertexTag, int otherVertexTag);

Callers 6

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

Calls 5

getVertexPtrMethod · 0.95
getDegreeMethod · 0.45
SizeMethod · 0.45
addComponentMethod · 0.45
getTagMethod · 0.45

Tested by

no test coverage detected