feature: parse coordinates, create the number list
This commit is contained in:
28
src/main.cpp
28
src/main.cpp
@@ -124,13 +124,29 @@ int main(int argc, char** argv) {
|
||||
settings.selected_groups())
|
||||
);
|
||||
|
||||
CATCH_AND_RETURN(triangle_data, wavefront::parse_error, 1, wavefront::parse_face_data(scan_data));
|
||||
std::cerr << "Scanned " << scan_data.total_lines << " lines" << std::endl;
|
||||
std::cerr << "Found " << scan_data.category_map["v"].size() << " vertices" << std::endl;
|
||||
std::cerr << "Found " << scan_data.category_map["vn"].size() << " normals" << std::endl;
|
||||
std::cerr << "Found " << scan_data.category_map["vt"].size() << " texture coordinates" << std::endl;
|
||||
std::cerr << "Found " << scan_data.category_map["f"].size() << " faces" << std::endl;
|
||||
|
||||
std::cerr << "Scanned " << scan_data.total_lines << " lines\n";
|
||||
std::cerr << "Found " << scan_data.category_map["v"].size() << " vertices\n";
|
||||
std::cerr << "Found " << scan_data.category_map["vn"].size() << " normals\n";
|
||||
std::cerr << "Found " << scan_data.category_map["vt"].size() << " texture coordinates\n";
|
||||
std::cerr << "Found " << scan_data.category_map["f"].size() << " faces\n";
|
||||
CATCH_AND_RETURN(face_data, wavefront::parse_error, 1, wavefront::parse_face_data(scan_data));
|
||||
|
||||
std::cerr << "Selected " << face_data.triangle_list.size() << " triangles" << std::endl;
|
||||
std::cerr << "Selected " << face_data.index_position_set.size() << " vertex positions" << std::endl;
|
||||
std::cerr << "Selected " << face_data.index_normal_set.size() << " vertex normals" << std::endl;
|
||||
std::cerr << "Selected " << face_data.index_texcoord_set.size() << " vertex texture coordinates" << std::endl;
|
||||
|
||||
CATCH_AND_RETURN(coordinate_data, wavefront::parse_error, 1, wavefront::parse_coordinate_data<float>(scan_data, face_data));
|
||||
|
||||
auto number_list = create_number_list<float>(coordinate_data);
|
||||
|
||||
std::cerr << "Generated number list with " << number_list.size() << " values" << std::endl;
|
||||
|
||||
auto coordinate_index_data = create_coordinate_index<float, std::size_t>(coordinate_data, number_list);
|
||||
|
||||
// Form coordinate_list_data : std::vector variant of coordinate_index_data. Internally, it creates std::set initially, stores everything in the set and then convert to vector.
|
||||
// Then we can form coordinate_line_mapping : std::map<file_line_t, std::size_t> pointing for each entry to entry in coordinate_list_data.
|
||||
// Then using face_data.triangle_list and scan_data.category_map[v/vn/vt], coordinate_line_mapping, we can form vertex_list_data. The vertex here is 1-3 IndexType numbers pointing to coordinate_list_data.
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user