1 /**********************************************************************
3 FILENAME: uiuc_menu_geometry.cpp
5 ----------------------------------------------------------------------
7 DESCRIPTION: reads input data for specified aircraft and creates
8 approporiate data storage space
10 ----------------------------------------------------------------------
14 ----------------------------------------------------------------------
16 REFERENCES: based on "menu reader" format of Michael Selig
18 ----------------------------------------------------------------------
20 HISTORY: 04/04/2003 initial release
21 06/30/2003 (RD) replaced istrstream with istringstream
22 to get rid of the annoying warning about
23 using the strstream header
25 ----------------------------------------------------------------------
27 AUTHOR(S): Robert Deters <rdeters@uiuc.edu>
28 Michael Selig <m-selig@uiuc.edu>
30 ----------------------------------------------------------------------
34 ----------------------------------------------------------------------
38 ----------------------------------------------------------------------
42 ----------------------------------------------------------------------
44 CALLED BY: uiuc_menu()
46 ----------------------------------------------------------------------
48 CALLS TO: check_float() if needed
54 ----------------------------------------------------------------------
56 COPYRIGHT: (C) 2003 by Michael Selig
58 This program is free software; you can redistribute it and/or
59 modify it under the terms of the GNU General Public License
60 as published by the Free Software Foundation.
62 This program is distributed in the hope that it will be useful,
63 but WITHOUT ANY WARRANTY; without even the implied warranty of
64 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
65 GNU General Public License for more details.
67 You should have received a copy of the GNU General Public License
68 along with this program; if not, write to the Free Software
69 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
71 **********************************************************************/
73 #include <simgear/compiler.h>
80 #include "uiuc_menu_geometry.h"
90 void parse_geometry( const string& linetoken2, const string& linetoken3,
91 const string& linetoken4, const string& linetoken5,
92 const string& linetoken6, const string& linetoken7,
93 const string& linetoken8, const string& linetoken9,
94 const string& linetoken10,
95 const string& aircraft_directory, LIST command_line ) {
97 istringstream token3(linetoken3.c_str());
98 istringstream token4(linetoken4.c_str());
99 istringstream token5(linetoken5.c_str());
100 istringstream token6(linetoken6.c_str());
101 istringstream token7(linetoken7.c_str());
102 istringstream token8(linetoken8.c_str());
103 istringstream token9(linetoken9.c_str());
104 istringstream token10(linetoken10.c_str());
106 switch(geometry_map[linetoken2])
110 if (check_float(linetoken3))
111 token3 >> token_value;
113 uiuc_warnings_errors(1, *command_line);
116 geometryParts -> storeCommands (*command_line);
121 if (check_float(linetoken3))
122 token3 >> token_value;
124 uiuc_warnings_errors(1, *command_line);
127 geometryParts -> storeCommands (*command_line);
132 if (check_float(linetoken3))
133 token3 >> token_value;
135 uiuc_warnings_errors(1, *command_line);
138 geometryParts -> storeCommands (*command_line);
143 if (check_float(linetoken3))
144 token3 >> token_value;
146 uiuc_warnings_errors(1, *command_line);
149 geometryParts -> storeCommands (*command_line);
154 if (check_float(linetoken3))
155 token3 >> token_value;
157 uiuc_warnings_errors(1, *command_line);
160 geometryParts -> storeCommands (*command_line);
165 if (check_float(linetoken3))
166 token3 >> token_value;
168 uiuc_warnings_errors(1, *command_line);
170 chord_h = token_value;
171 geometryParts -> storeCommands (*command_line);
176 if (check_float(linetoken3))
177 token3 >> token_value;
179 uiuc_warnings_errors(1, *command_line);
182 geometryParts -> storeCommands (*command_line);
187 if (ignore_unknown_keywords) {
190 // print error message
191 uiuc_warnings_errors(2, *command_line);