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

Method AppendMaskForHyperTree

IO/HDF/vtkHDFReaderImplementation.cxx:1358–1385  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

1356
1357//------------------------------------------------------------------------------
1358bool vtkHDFReader::Implementation::AppendMaskForHyperTree(vtkHyperTreeGrid* htg,
1359 vtkIdType inputCellOffset, const vtkIdType maskOffset, const vtkIdType readableTreeSize)
1360{
1361 // Read and append mask
1362 vtkIdType maskByteStartOffset = maskOffset + (inputCellOffset / BYTE_SIZE);
1363 vtkIdType offsetInStartingByte =
1364 inputCellOffset % BYTE_SIZE; // Mask for the tree may not start at the start of a byte
1365 vtkIdType maskByteSize = ::bitSizeToBytes(readableTreeSize + offsetInStartingByte);
1366 std::vector<hsize_t> maskExtent = { static_cast<hsize_t>(maskByteStartOffset),
1367 static_cast<hsize_t>(maskByteStartOffset + maskByteSize) };
1368
1369 // Read only the relevant part of the mask, taking depth limiter into account
1370 vtkSmartPointer<vtkUnsignedCharArray> addedMaskByteArray =
1371 vtk::TakeSmartPointer(vtkArrayDownCast<vtkUnsignedCharArray>(
1372 vtkHDFUtilities::NewArrayForGroup(this->VTKGroup, "Mask", maskExtent)));
1373
1374 vtkNew<vtkBitArray> addedMask;
1375 addedMask->SetArray(vtkArrayDownCast<vtkUnsignedCharArray>(addedMaskByteArray)->GetPointer(0),
1376 maskByteSize * BYTE_SIZE, 0);
1377 addedMaskByteArray->SetArrayFreeFunction(nullptr);
1378 if (htg->GetMask())
1379 {
1380 htg->GetMask()->InsertTuples(
1381 htg->GetMask()->GetNumberOfTuples(), readableTreeSize, offsetInStartingByte, addedMask);
1382 }
1383
1384 return true;
1385}
1386
1387//------------------------------------------------------------------------------
1388vtkDataArray* vtkHDFReader::Implementation::GetStepValues()

Callers 1

ReadHyperTreeGridDataMethod · 0.95

Calls 6

SetArrayMethod · 0.45
GetPointerMethod · 0.45
SetArrayFreeFunctionMethod · 0.45
GetMaskMethod · 0.45
InsertTuplesMethod · 0.45
GetNumberOfTuplesMethod · 0.45

Tested by

no test coverage detected