3 #include "sg_binobj.hxx"
6 int main( int argc, char **argv ) {
11 cout << "Usage: " << argv[0] << " binary_obj_file" << endl;
15 bool result = obj.read_bin( argv[1] );
17 cout << "error loading: " << argv[1] << endl;
21 cout << "# FGFS Scenery" << endl;
22 cout << "# Version " << obj.get_version() << endl;
25 printf("# gbs %.5f %.5f %.5f %.2f\n", obj.get_gbs_center().x(),
26 obj.get_gbs_center().y(), obj.get_gbs_center().z(),
27 obj.get_gbs_radius());
30 point_list nodes = obj.get_wgs84_nodes();
31 cout << "# vertex list" << endl;
32 for ( i = 0; i < (int)nodes.size(); ++i ) {
33 printf("v %.5f %.5f %.5f\n", nodes[i].x(), nodes[i].y(), nodes[i].z() );
37 point_list normals = obj.get_normals();
38 cout << "# vertex normal list" << endl;
39 for ( i = 0; i < (int)normals.size(); ++i ) {
40 printf("vn %.5f %.5f %.5f\n",
41 normals[i].x(), normals[i].y(), normals[i].z() );
45 point_list texcoords = obj.get_texcoords();
46 cout << "# texture coordinate list" << endl;
47 for ( i = 0; i < (int)texcoords.size(); ++i ) {
48 printf("vt %.5f %.5f\n",
49 texcoords[i].x(), texcoords[i].y() );
53 cout << "# triangle groups" << endl;
57 int_list vertex_index;
61 string_list tri_materials = obj.get_tri_materials();
62 group_list tris_v = obj.get_tris_v();
63 group_list tris_tc = obj.get_tris_tc();
64 for ( i = 0; i < (int)tris_v.size(); ++i ) {
65 material = tri_materials[i];
66 vertex_index = tris_v[i];
67 tex_index = tris_tc[i];
68 cout << "# usemtl " << material << endl;
70 for ( j = 0; j < (int)vertex_index.size(); ++j ) {
71 cout << vertex_index[j] << "/" << tex_index[j] << " ";
77 string_list strip_materials = obj.get_strip_materials();
78 group_list strips_v = obj.get_strips_v();
79 group_list strips_tc = obj.get_strips_tc();
80 for ( i = 0; i < (int)strips_v.size(); ++i ) {
81 material = strip_materials[i];
82 vertex_index = strips_v[i];
83 tex_index = strips_tc[i];
84 cout << "# usemtl " << material << endl;
86 for ( j = 0; j < (int)vertex_index.size(); ++j ) {
87 cout << vertex_index[j] << "/" << tex_index[j] << " ";
93 string_list fan_materials = obj.get_fan_materials();
94 group_list fans_v = obj.get_fans_v();
95 group_list fans_tc = obj.get_fans_tc();
96 for ( i = 0; i < (int)fans_v.size(); ++i ) {
97 material = fan_materials[i];
98 vertex_index = fans_v[i];
99 tex_index = fans_tc[i];
100 cout << "# usemtl " << material << endl;
102 for ( j = 0; j < (int)vertex_index.size(); ++j ) {
103 cout << vertex_index[j] << "/" << tex_index[j] << " ";