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
22 ----------------------------------------------------------------------
24 AUTHOR(S): Robert Deters <rdeters@uiuc.edu>
25 Michael Selig <m-selig@uiuc.edu>
27 ----------------------------------------------------------------------
31 ----------------------------------------------------------------------
35 ----------------------------------------------------------------------
39 ----------------------------------------------------------------------
41 CALLED BY: uiuc_menu()
43 ----------------------------------------------------------------------
45 CALLS TO: check_float() if needed
51 ----------------------------------------------------------------------
53 COPYRIGHT: (C) 2003 by Michael Selig
55 This program is free software; you can redistribute it and/or
56 modify it under the terms of the GNU General Public License
57 as published by the Free Software Foundation.
59 This program is distributed in the hope that it will be useful,
60 but WITHOUT ANY WARRANTY; without even the implied warranty of
61 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
62 GNU General Public License for more details.
64 You should have received a copy of the GNU General Public License
65 along with this program; if not, write to the Free Software
66 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
67 USA or view http://www.gnu.org/copyleft/gpl.html.
69 **********************************************************************/
71 #include <simgear/compiler.h>
73 #if defined( __MWERKS__ )
74 // -dw- optimizer chokes (big-time) trying to optimize humongous
75 // loop/switch statements
76 #pragma optimization_level 0
83 #include "uiuc_menu_geometry.h"
93 void parse_geometry( const string& linetoken2, const string& linetoken3,
94 const string& linetoken4, const string& linetoken5,
95 const string& linetoken6, const string& linetoken7,
96 const string& linetoken8, const string& linetoken9,
97 const string& linetoken10,
98 const string& aircraft_directory, LIST command_line ) {
100 istrstream token3(linetoken3.c_str());
101 istrstream token4(linetoken4.c_str());
102 istrstream token5(linetoken5.c_str());
103 istrstream token6(linetoken6.c_str());
104 istrstream token7(linetoken7.c_str());
105 istrstream token8(linetoken8.c_str());
106 istrstream token9(linetoken9.c_str());
107 istrstream token10(linetoken10.c_str());
109 switch(geometry_map[linetoken2])
113 if (check_float(linetoken3))
114 token3 >> token_value;
116 uiuc_warnings_errors(1, *command_line);
119 geometryParts -> storeCommands (*command_line);
124 if (check_float(linetoken3))
125 token3 >> token_value;
127 uiuc_warnings_errors(1, *command_line);
130 geometryParts -> storeCommands (*command_line);
135 if (check_float(linetoken3))
136 token3 >> token_value;
138 uiuc_warnings_errors(1, *command_line);
141 geometryParts -> storeCommands (*command_line);
146 if (check_float(linetoken3))
147 token3 >> token_value;
149 uiuc_warnings_errors(1, *command_line);
152 geometryParts -> storeCommands (*command_line);
157 if (check_float(linetoken3))
158 token3 >> token_value;
160 uiuc_warnings_errors(1, *command_line);
163 geometryParts -> storeCommands (*command_line);
168 if (check_float(linetoken3))
169 token3 >> token_value;
171 uiuc_warnings_errors(1, *command_line);
174 geometryParts -> storeCommands (*command_line);
179 if (check_float(linetoken3))
180 token3 >> token_value;
182 uiuc_warnings_errors(1, *command_line);
185 geometryParts -> storeCommands (*command_line);
190 if (ignore_unknown_keywords) {
193 // print error message
194 uiuc_warnings_errors(2, *command_line);