MCPcopy Create free account
hub / github.com/KDE/labplot / readCurveElement

Method readCurveElement

src/3rdparty/liborigin/OriginAnyParser.cpp:671–715  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

669}
670
671bool OriginAnyParser::readCurveElement()
672{
673 LOG_PRINT(logfile, "readCurveElement()\n")
674 /* get general info and details of a Curve
675 * return true if a Curve is found, otherwise return false */
676 unsigned int cve_header_size = 0, cve_data_size = 0;
677 std::streamoff cvh_start = 0, cvd_start = 0;
678
679 // get curve header size
680 cve_header_size = readObjectSize();
681 if (cve_header_size == 0)
682 return false;
683
684 curpos = file.tellg();
685 cvh_start = curpos;
686 LOG_PRINT(logfile, " Curve: header size %d [0x%X], starts at %" PRId64 " [0x%" PRIx64 "], ",
687 cve_header_size, cve_header_size, curpos, curpos)
688 string cve_header = readObjectAsString(cve_header_size);
689
690 // TODO: get known info from curve header
691 string name = cve_header.substr(0x12, 12);
692
693 // go to end of header, get curve data size
694 file.seekg(cvh_start + cve_header_size + 1, ios_base::beg);
695 cve_data_size = readObjectSize();
696 cvd_start = file.tellg();
697 LOG_PRINT(logfile, "data size %d [0x%X], from %" PRId64 " [0x%" PRIx64 "]", cve_data_size,
698 cve_data_size, cvd_start, cvd_start)
699 string cve_data = readObjectAsString(cve_data_size);
700
701 // TODO: get known info from curve data
702
703 // go to end of data
704 file.seekg(cvd_start + cve_data_size, ios_base::beg);
705 if (cve_data_size > 0)
706 file.seekg(1, ios_base::cur);
707
708 curpos = file.tellg();
709 LOG_PRINT(logfile, "to %" PRId64 " [0x%" PRIx64 "]: %s\n", curpos, curpos, name.c_str())
710
711 // get curve (or column) info
712 getCurveProperties(cve_header, cve_header_size, cve_data, cve_data_size);
713
714 return true;
715}
716
717bool OriginAnyParser::readAxisBreakElement()
718{

Callers

nothing calls this directly

Calls 2

tellgMethod · 0.45
seekgMethod · 0.45

Tested by

no test coverage detected