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

Function ParseTimeStepsInSliceFile

IO/FDS/vtkFDSReader.cxx:329–369  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

327
328//------------------------------------------------------------------------------
329std::vector<float> ParseTimeStepsInSliceFile(const std::string& fileName)
330{
331 vtkNew<vtkFileResourceStream> fileStream;
332 if (fileName.empty() || !fileStream->Open(fileName.c_str()))
333 {
334 vtkErrorWithObjectMacro(nullptr,
335 << "Failed to open file: " << (fileName.empty() ? "no file name for slice given" : fileName));
336 return std::vector<float>();
337 }
338
339 vtkNew<vtkResourceParser> parser;
340 parser->Reset();
341 parser->SetStream(fileStream);
342 parser->StopOnNewLineOff();
343
344 unsigned int size = 0;
345 // skip header lines
346 for (vtkIdType iL = 0; iL < 4; ++iL)
347 {
348 parser->Read(reinterpret_cast<char*>(&size), 4);
349 parser->ReadUntil(vtkResourceParser::DiscardNone, ReadNothing, size + 4);
350 }
351
352 std::vector<float> timeValues;
353 vtkParseResult result = vtkParseResult::Ok;
354 do
355 {
356 parser->Read(reinterpret_cast<char*>(&size), 4);
357 if (size != sizeof(float))
358 {
359 break;
360 }
361 float time = 0.0;
362 parser->Read(reinterpret_cast<char*>(&time), 4);
363 timeValues.emplace_back(time);
364 parser->Read(reinterpret_cast<char*>(&size), 4);
365 parser->Read(reinterpret_cast<char*>(&size), 4);
366 result = parser->ReadUntil(vtkResourceParser::DiscardNone, ReadNothing, size + 4);
367 } while (result != vtkParseResult::EndOfStream);
368 return timeValues;
369}
370
371//------------------------------------------------------------------------------
372// Since the file format does not describe the endianness, we won't be dealing with that

Callers 1

ParseSLCFSLCCMethod · 0.85

Calls 8

ReadUntilMethod · 0.80
emptyMethod · 0.45
OpenMethod · 0.45
c_strMethod · 0.45
ResetMethod · 0.45
SetStreamMethod · 0.45
ReadMethod · 0.45
emplace_backMethod · 0.45

Tested by

no test coverage detected