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

Method AddArrayToDataset

IO/HDF/vtkHDFWriterImplementation.cxx:728–856  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

726
727//------------------------------------------------------------------------------
728bool vtkHDFWriter::Implementation::AddArrayToDataset(
729 hid_t dataset, vtkAbstractArray* dataArray, int trim)
730{
731 if (dataArray == nullptr)
732 {
733 return true;
734 }
735
736 if (dataset == -1)
737 {
738 return false;
739 }
740
741 if (dataArray->GetNumberOfValues() == 0)
742 {
743 return true;
744 }
745
746 hid_t source_type =
747 dataArray ? vtkHDFUtilities::getH5TypeFromVtkType(dataArray->GetDataType()) : H5T_STD_I64LE;
748 if (source_type == H5I_INVALID_HID)
749 {
750 return H5I_INVALID_HID;
751 }
752
753 // Create dataspace from array
754 vtkHDF::ScopedH5SHandle dataspace = this->CreateDataspaceFromArray(dataArray);
755 if (dataspace == H5I_INVALID_HID)
756 {
757 return H5I_INVALID_HID;
758 }
759
760 // Recover dataspace
761 vtkHDF::ScopedH5SHandle currentDataspace = H5Dget_space(dataset);
762 if (currentDataspace == H5I_INVALID_HID)
763 {
764 return false;
765 }
766
767 // Retrieve current dataspace dimensions
768 const int nComp = dataArray ? dataArray->GetNumberOfComponents() : 0;
769 const vtkIdType nTuples = dataArray ? dataArray->GetNumberOfTuples() : 0;
770 const int numDim = nComp == 1 ? 1 : 2;
771
772 std::vector<hsize_t> addedDims{ (hsize_t)nTuples };
773 std::vector<hsize_t> currentdims(numDim, 0);
774 if (numDim == 2)
775 {
776 addedDims.emplace_back(nComp);
777 }
778
779 H5Sget_simple_extent_dims(currentDataspace, currentdims.data(), nullptr);
780 std::vector<hsize_t> newdims = { currentdims[0] + addedDims[0] };
781 if (numDim == 2)
782 {
783 newdims.emplace_back(currentdims[1]);
784
785 if (currentdims[1] != addedDims[1])

Callers 4

AddOrCreateDatasetMethod · 0.95
WriteSumStepsPolyDataMethod · 0.95
UpdateStepsGroupMethod · 0.80

Calls 15

H5Sselect_hyperslabFunction · 0.85
ToAOSDataArrayMethod · 0.80
GetNumberOfValuesMethod · 0.45
GetDataTypeMethod · 0.45
GetNumberOfComponentsMethod · 0.45
GetNumberOfTuplesMethod · 0.45
emplace_backMethod · 0.45
dataMethod · 0.45
resizeMethod · 0.45
c_strMethod · 0.45

Tested by

no test coverage detected