]> git.mxchange.org Git - flightgear.git/blob - src/FDM/UIUCModel/uiuc_menu_misc.cpp
- rename fgcommand "set-mouse" to "set-cursor"
[flightgear.git] / src / FDM / UIUCModel / uiuc_menu_misc.cpp
1 /**********************************************************************
2                                                                        
3  FILENAME:     uiuc_menu_misc.cpp
4
5 ----------------------------------------------------------------------
6
7  DESCRIPTION:  reads input data for specified aircraft and creates 
8                approporiate data storage space
9
10 ----------------------------------------------------------------------
11
12  STATUS:       alpha version
13
14 ----------------------------------------------------------------------
15
16  REFERENCES:   based on "menu reader" format of Michael Selig
17
18 ----------------------------------------------------------------------
19
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
24
25 ----------------------------------------------------------------------
26
27  AUTHOR(S):    Robert Deters      <rdeters@uiuc.edu>
28                Michael Selig      <m-selig@uiuc.edu>
29
30 ----------------------------------------------------------------------
31
32  VARIABLES:
33
34 ----------------------------------------------------------------------
35
36  INPUTS:       n/a
37
38 ----------------------------------------------------------------------
39
40  OUTPUTS:      n/a
41
42 ----------------------------------------------------------------------
43
44  CALLED BY:    uiuc_menu()
45
46 ----------------------------------------------------------------------
47
48  CALLS TO:     check_float() if needed
49                d_2_to_3() if needed
50                d_1_to_2() if needed
51                i_1_to_2() if needed
52                d_1_to_1() if needed
53
54  ----------------------------------------------------------------------
55
56  COPYRIGHT:    (C) 2003 by Michael Selig
57
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.
61
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.
66
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.
70
71 **********************************************************************/
72
73 #include <simgear/compiler.h>
74
75 #if defined( __MWERKS__ )
76 // -dw- optimizer chokes (big-time) trying to optimize humongous
77 // loop/switch statements
78 #pragma optimization_level 0
79 #endif
80
81 #include <cstdlib>
82 #include <string>
83 #include STL_IOSTREAM
84
85 #include "uiuc_menu_misc.h"
86
87 SG_USING_STD(cerr);
88 SG_USING_STD(cout);
89 SG_USING_STD(endl);
90
91 #ifndef _MSC_VER
92 SG_USING_STD(exit);
93 #endif
94
95 void parse_misc( const string& linetoken2, const string& linetoken3,
96                  const string& linetoken4, const string& linetoken5, 
97                  const string& linetoken6, const string& linetoken7, 
98                  const string& linetoken8, const string& linetoken9,
99                  const string& linetoken10, const string& aircraft_directory, 
100                  LIST command_line ) {
101   double token_value;
102   istringstream token3(linetoken3.c_str());
103   istringstream token4(linetoken4.c_str());
104   istringstream token5(linetoken5.c_str());
105   istringstream token6(linetoken6.c_str());
106   istringstream token7(linetoken7.c_str());
107   istringstream token8(linetoken8.c_str());
108   istringstream token9(linetoken9.c_str());
109   istringstream token10(linetoken10.c_str());
110
111   switch(misc_map[linetoken2])
112     {
113     case simpleHingeMomentCoef_flag:
114       {
115         if (check_float(linetoken3))
116           token3 >> token_value;
117         else
118           uiuc_warnings_errors(1, *command_line);
119         
120         simpleHingeMomentCoef = token_value;
121         break;
122       }
123       //case dfTimefdf_flag:
124       //{
125       //dfTimefdf = linetoken3;
126         /* call 1D File Reader with file name (dfTimefdf);
127            function returns array of dfs (dfArray) and 
128            corresponding time values (TimeArray) and max 
129            number of terms in arrays (ndf) */
130         //uiuc_1DdataFileReader(dfTimefdf,
131         //                    dfTimefdf_dfArray,
132         //                    dfTimefdf_TimeArray,
133         //                    dfTimefdf_ndf);
134         //break;
135       //}
136     case flapper_flag:
137       {
138         string flap_file;
139         
140         flap_file = aircraft_directory + "flap.dat";
141         flapper_model = true;
142         flapper_data = new FlapData(flap_file.c_str());
143         break;
144       }
145     case flapper_phi_init_flag:
146       {
147         if (check_float(linetoken3))
148           token3 >> token_value;
149         else
150           uiuc_warnings_errors(1, *command_line);
151         
152         flapper_phi_init = token_value*DEG_TO_RAD;
153         break;
154       }
155     default:
156       {
157         if (ignore_unknown_keywords) {
158           // do nothing
159         } else {
160           // print error message
161           uiuc_warnings_errors(2, *command_line);
162         }
163         break;
164       }
165     };
166 }