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

Method ReadPointDataArray

IO/NetCDF/vtkSLACReader.cxx:1305–1352  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

1303
1304//------------------------------------------------------------------------------
1305vtkSmartPointer<vtkDataArray> vtkSLACReader::ReadPointDataArray(int ncFD, int varId)
1306{
1307 // Get the dimension info. We should only need to worry about 1 or 2D arrays.
1308 int numDims;
1309 CALL_NETCDF_PTR(nc_inq_varndims(ncFD, varId, &numDims));
1310 if (numDims > 2) // don't support 3d or higher arrays
1311 {
1312 vtkErrorMacro(<< "Sanity check failed. "
1313 << "Encountered array with too many dimensions.");
1314 return nullptr;
1315 }
1316 if (numDims < 1) // don't support 0d arrays
1317 {
1318 vtkErrorMacro(<< "Sanity check failed. "
1319 << "Encountered array no dimensions.");
1320 return nullptr;
1321 }
1322 int dimIds[2];
1323 CALL_NETCDF_PTR(nc_inq_vardimid(ncFD, varId, dimIds));
1324 size_t numCoords;
1325 CALL_NETCDF_PTR(nc_inq_dimlen(ncFD, dimIds[0], &numCoords));
1326 size_t numComponents = 1;
1327 if (numDims > 1)
1328 {
1329 CALL_NETCDF_PTR(nc_inq_dimlen(ncFD, dimIds[1], &numComponents));
1330 }
1331
1332 // Allocate an array of the right type.
1333 nc_type ncType;
1334 CALL_NETCDF_PTR(nc_inq_vartype(ncFD, varId, &ncType));
1335 int vtkType = NetCDFTypeToVTKType(ncType);
1336 if (vtkType < 1)
1337 return nullptr;
1338 vtkSmartPointer<vtkDataArray> dataArray;
1339 dataArray.TakeReference(vtkDataArray::CreateDataArray(vtkType));
1340 assert(dataArray->HasStandardMemoryLayout() && "Array must have standard memory layout");
1341 dataArray->SetNumberOfComponents(static_cast<int>(numComponents));
1342 dataArray->SetNumberOfTuples(static_cast<vtkIdType>(numCoords));
1343
1344 // Read the data from the file.
1345 size_t start[2], count[2];
1346 start[0] = start[1] = 0;
1347 count[0] = numCoords;
1348 count[1] = numComponents; // NOLINTNEXTLINE(bugprone-unsafe-functions)
1349 CALL_NETCDF_PTR(nc_get_vars(ncFD, varId, start, count, nullptr, dataArray->GetVoidPointer(0)));
1350
1351 return dataArray;
1352}
1353
1354//------------------------------------------------------------------------------
1355int vtkSLACReader::ReadCoordinates(int meshFD, vtkMultiBlockDataSet* output)

Callers 2

ReadCoordinatesMethod · 0.95
ReadFieldDataMethod · 0.95

Calls 13

nc_inq_varndimsFunction · 0.85
nc_inq_vardimidFunction · 0.85
nc_inq_dimlenFunction · 0.85
nc_inq_vartypeFunction · 0.85
nc_get_varsFunction · 0.85
NetCDFTypeToVTKTypeFunction · 0.70
CreateDataArrayFunction · 0.50
assertFunction · 0.50
TakeReferenceMethod · 0.45
SetNumberOfComponentsMethod · 0.45
SetNumberOfTuplesMethod · 0.45

Tested by

no test coverage detected