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

Method WriteDataSet

IO/ParallelXML/vtkXMLCompositeDataSetWriterHelper.cxx:27–67  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

25
26//----------------------------------------------------------------------------
27std::string vtkXMLCompositeDataSetWriterHelper::WriteDataSet(
28 const std::string& path, const std::string& prefix, vtkDataObject* data)
29{
30 if (!data)
31 {
32 return {};
33 }
34
35 bool isEmpty = true;
36 for (int attrType = vtkDataObject::POINT;
37 attrType < vtkDataObject::NUMBER_OF_ATTRIBUTE_TYPES && isEmpty; ++attrType)
38 {
39 isEmpty = (data->GetNumberOfElements(attrType) == 0);
40 }
41
42 if (auto* statModel = vtkStatisticalModel::SafeDownCast(data))
43 {
44 isEmpty &= statModel->IsEmpty();
45 }
46
47 if (isEmpty)
48 {
49 return {};
50 }
51
52 auto writer = this->GetWriter(data->GetDataObjectType());
53 if (!writer)
54 {
55 vtkLogF(WARNING, "skipping dataset of unsupported type '%s'.", data->GetClassName());
56 return {};
57 }
58
59 std::string fname = prefix + "." + writer->GetDefaultFileExtension();
60 writer->SetInputDataObject(data);
61 writer->SetFileName(path.empty() ? fname.c_str() : (path + "/" + fname).c_str());
62 writer->Write();
63 writer->SetInputDataObject(nullptr);
64
65 vtkLogF(TRACE, "wrote leaf %s", fname.c_str());
66 return fname;
67}
68
69//----------------------------------------------------------------------------
70vtkXMLWriterBase* vtkXMLCompositeDataSetWriterHelper::GetWriter(int dataType)

Callers 2

RequestDataMethod · 0.45
RequestDataMethod · 0.45

Calls 11

GetWriterMethod · 0.95
GetDataObjectTypeMethod · 0.80
GetNumberOfElementsMethod · 0.45
IsEmptyMethod · 0.45
GetClassNameMethod · 0.45
SetInputDataObjectMethod · 0.45
SetFileNameMethod · 0.45
emptyMethod · 0.45
c_strMethod · 0.45
WriteMethod · 0.45

Tested by

no test coverage detected