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

Function ReadHeader

IO/Core/vtkArrayReader.cxx:44–92  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42}
43
44void ReadHeader(
45 istream& stream, vtkArrayExtents& extents, vtkArrayExtents::SizeT& non_null_size, vtkArray* array)
46{
47 if (!array)
48 throw std::runtime_error("Missing array.");
49
50 // Load the array name ...
51 std::string name;
52 std::getline(stream, name);
53 array->SetName(name);
54
55 // Load array extents ...
56 std::string extents_string;
57 std::getline(stream, extents_string);
58 std::istringstream extents_buffer(extents_string);
59
60 vtkArrayExtents::CoordinateT extent;
61 std::vector<vtkArrayExtents::CoordinateT> temp_extents;
62 for (extents_buffer >> extent; extents_buffer; extents_buffer >> extent)
63 temp_extents.push_back(extent);
64
65 extents.SetDimensions(0);
66 while (temp_extents.size() > 1)
67 {
68 const vtkArrayExtents::CoordinateT begin = temp_extents.front();
69 temp_extents.erase(temp_extents.begin());
70 const vtkArrayExtents::CoordinateT end = temp_extents.front();
71 temp_extents.erase(temp_extents.begin());
72 extents.Append(vtkArrayRange(begin, end));
73 }
74
75 if (extents.GetDimensions() < 1)
76 throw std::runtime_error("Array cannot have fewer than one dimension.");
77
78 if (temp_extents.empty())
79 throw std::runtime_error("Missing non null size.");
80
81 non_null_size = temp_extents.back();
82
83 array->Resize(extents);
84
85 // Load dimension-labels ...
86 for (vtkArrayExtents::DimensionT i = 0; i != extents.GetDimensions(); ++i)
87 {
88 std::string label;
89 std::getline(stream, label);
90 array->SetDimensionLabel(i, label);
91 }
92}
93
94void ReadEndianOrderMark(istream& stream, bool& swap_endian)
95{

Callers 6

ReadSparseArrayBinaryFunction · 0.85
ReadDenseArrayBinaryFunction · 0.85
ReadSparseArrayAsciiFunction · 0.85
ReadDenseArrayAsciiFunction · 0.85

Calls 13

backMethod · 0.80
SetDimensionLabelMethod · 0.80
SetNameMethod · 0.45
push_backMethod · 0.45
SetDimensionsMethod · 0.45
sizeMethod · 0.45
frontMethod · 0.45
eraseMethod · 0.45
beginMethod · 0.45
AppendMethod · 0.45
GetDimensionsMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected