Я просто открываю filename.file, сохраняю каждое плавающее число в векторных "вершинах", но они сохраняются как целые числа. Нужно правильно преобразовать все числа в плавающее. Например: от «1» до «1,00000f» или по меньшей мере от «1» до «1,0f».
/////filename.file
...
v 1.000000 1.000000 -1.000000
v 1.000000 -1.000000 -1.000000
v 1.000000 1.000000 1.000000
v 1.000000 -1.000000 1.000000
v -1.000000 1.000000 -1.000000
v -1.000000 -1.000000 -1.000000
v -1.000000 1.000000 1.000000
...
//////
std::vector<float> vertices;
std::ifstream file(filename);
std::string line;
while (std::getline(file, line))
{
std::istringstream iss(line);
std::string result;
if (std::getline(iss, result, ' '))
{
if (result == "v")
{
while (std::getline(iss, token, ' '))
{
std::istringstream iss1(token);
if (std::getline(iss1, word))
{
float word_float = std::stof(word);
//std::cout << word_float << std::endl;
vertices.push_back(word_float);
}
}
}
}
}
//Look what I got
for(std::size_t i = 0 ; i < vertices.size(); i++) {
std::cout << vertices[i] << " ";
}
/ * Каждый элемент 1 -1 1 ...
// Но эти числа должны быть сохранены именно так
1.000000f -1.000000f 1.000000f ... * /