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

Method LoadDataArray

IO/NetCDF/vtkMPASReader.cxx:477–555  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

475//------------------------------------------------------------------------------
476template <typename TArray>
477bool vtkMPASReader::Internal::LoadDataArray(int nc_var, TArray* array, bool resize)
478{
479 nc_type var_type;
480 if (nc_err(nc_inq_vartype(ncFile, nc_var, &var_type)))
481 {
482 return false;
483 }
484 if (array->GetDataType() != NcTypeToVtkType(var_type))
485 {
486 vtkWarningWithObjectMacro(reader, "Invalid array type.");
487 return false;
488 }
489
490 int numDims;
491 if (nc_err(nc_inq_varndims(ncFile, nc_var, &numDims)))
492 {
493 return false;
494 }
495 int dims[NC_MAX_VAR_DIMS];
496 if (nc_err(nc_inq_vardimid(ncFile, nc_var, dims)))
497 {
498 return false;
499 }
500 std::vector<size_t> cursor;
501 std::vector<size_t> counts;
502 vtkIdType size = 0;
503
504 for (int dim = 0; dim < numDims; ++dim)
505 {
506 cursor.push_back(GetCursorForDimension(dims[dim]));
507 counts.push_back(GetCountForDimension(dims[dim]));
508 if (size == 0)
509 {
510 size = counts.back();
511 }
512 else
513 {
514 size *= counts.back();
515 }
516 }
517
518 if (resize)
519 {
520 array->SetNumberOfComponents(1);
521 array->SetNumberOfTuples(size);
522 }
523 else
524 {
525 if (array->GetNumberOfComponents() != 1)
526 {
527 vtkWarningWithObjectMacro(
528 reader, "Invalid number of components: " << array->GetNumberOfComponents() << ".");
529 return false;
530 }
531 else if (array->GetNumberOfTuples() < size)
532 {
533 vtkWarningWithObjectMacro(reader,
534 "Array only has " << array->GetNumberOfTuples() << " allocated, but we need " << size

Callers

nothing calls this directly

Calls 13

nc_inq_vartypeFunction · 0.85
NcTypeToVtkTypeFunction · 0.85
nc_inq_varndimsFunction · 0.85
nc_inq_vardimidFunction · 0.85
backMethod · 0.80
GetDataTypeMethod · 0.45
push_backMethod · 0.45
SetNumberOfComponentsMethod · 0.45
SetNumberOfTuplesMethod · 0.45
GetNumberOfComponentsMethod · 0.45
GetNumberOfTuplesMethod · 0.45
GetPointerMethod · 0.45

Tested by

no test coverage detected