MCPcopy Create free account
hub / github.com/Kitware/VTK / OrderEdges

Function OrderEdges

IO/Geometry/vtkTecplotReader.cxx:1208–1254  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1206}
1207
1208void OrderEdges(const std::vector<vtkIdType>& faceEdges,
1209 const std::vector<std::pair<vtkIdType, vtkIdType>>& allEdges, vtkIdList* face)
1210{
1211 face->Reset();
1212 if (faceEdges.empty())
1213 return;
1214
1215 const auto& firstEdge = allEdges[faceEdges[0]];
1216 const vtkIdType from = firstEdge.first;
1217 face->InsertNextId(from);
1218 vtkIdType to = firstEdge.second;
1219 face->InsertNextId(to);
1220
1221 size_t i = 0;
1222 while (to != from)
1223 {
1224 for (size_t j = 0; j < faceEdges.size(); ++j)
1225 {
1226 if (i == j)
1227 continue;
1228
1229 const auto& edge = allEdges[faceEdges[j]];
1230 if (edge.first == to)
1231 {
1232 to = edge.second;
1233 i = j;
1234 face->InsertNextId(to);
1235 break;
1236 }
1237 else if (edge.second == to)
1238 {
1239 to = edge.first;
1240 i = j;
1241 face->InsertNextId(to);
1242 break;
1243 }
1244 }
1245
1246 if (face->GetNumberOfIds() > static_cast<vtkIdType>(faceEdges.size() + 1))
1247 {
1248 // should not happen, but better exit than ending up in a continuous loop
1249 break;
1250 }
1251 }
1252
1253 face->Resize(face->GetNumberOfIds() - 1);
1254}
1255
1256void vtkTecplotReader::GetPolygonalGridCells(
1257 int numFaces, int numEdges, vtkUnstructuredGrid* unstruct) const

Callers 1

GetPolygonalGridCellsMethod · 0.85

Calls 6

InsertNextIdMethod · 0.80
ResetMethod · 0.45
emptyMethod · 0.45
sizeMethod · 0.45
GetNumberOfIdsMethod · 0.45
ResizeMethod · 0.45

Tested by

no test coverage detected