------------------------------------------------------------------------------
| 1356 | |
| 1357 | //------------------------------------------------------------------------------ |
| 1358 | bool 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 | //------------------------------------------------------------------------------ |
| 1388 | vtkDataArray* vtkHDFReader::Implementation::GetStepValues() |
no test coverage detected