inline void ObjIO::parseF( istringstream & line , ObjObject & object) { ObjGroup & group = object.groups.empty() ? object : *object.groups.back(); const e_FaceFormat format(parseFaceFormat(line)); group.foffs.push_back(static_cast<GLuint>(group.vis.size())); GLuint i; while(line >> i) { group.vis.push_back(--i); switch(format) { case FF_V: // v0 v1 ... break; case FF_VT: // v0/vt0 v1/vt1 ... line.ignore(1); // ignore slash line >> i; group.vtis.push_back(--i); break; case FF_VN: // v0//vn0 v1//vn1 ... line.ignore(2); // ignore slashes line >> i; group.vnis.push_back(--i); break; case FF_VTN: // v0/vt0/vn0 v1/vt1/vn1 ... line.ignore(1); // ignore slash line >> i; group.vtis.push_back(--i); line.ignore(1); // ignore slash line >> i; group.vnis.push_back(--i); default: break; } } }
static void parseQuotes(istringstream& result, forward_list<pair<string,quote_>>& quotes) { string row; string date; float price[4]; result.ignore(256, '\n'); while(result.peek() != EOF) { getline(result, date, ','); result>> row; result.ignore(); sscanf(row.c_str(), "%f,%f,%f,%f", &price[0], &price[1], &price[2], &price[3]); quotes.push_front(pair<string,quote_>(date, {price[0], price[1], price[2], price[3]})); } }