]> git.mxchange.org Git - flightgear.git/blob - src/FDM/UIUCModel/uiuc_menu_misc.cpp
Make yasim accept the launchbar and hook properties. They are not tied to anything...
[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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
70  USA or view http://www.gnu.org/copyleft/gpl.html.
71
72 **********************************************************************/
73
74 #include <simgear/compiler.h>
75
76 #if defined( __MWERKS__ )
77 // -dw- optimizer chokes (big-time) trying to optimize humongous
78 // loop/switch statements
79 #pragma optimization_level 0
80 #endif
81
82 #include <cstdlib>
83 #include <string>
84 #include STL_IOSTREAM
85
86 #include "uiuc_menu_misc.h"
87
88 SG_USING_STD(cerr);
89 SG_USING_STD(cout);
90 SG_USING_STD(endl);
91
92 #ifndef _MSC_VER
93 SG_USING_STD(exit);
94 #endif
95
96 void parse_misc( const string& linetoken2, const string& linetoken3,
97                  const string& linetoken4, const string& linetoken5, 
98                  const string& linetoken6, const string& linetoken7, 
99                  const string& linetoken8, const string& linetoken9,
100                  const string& linetoken10, const string& aircraft_directory, 
101                  LIST command_line ) {
102   double token_value;
103   istringstream token3(linetoken3.c_str());
104   istringstream token4(linetoken4.c_str());
105   istringstream token5(linetoken5.c_str());
106   istringstream token6(linetoken6.c_str());
107   istringstream token7(linetoken7.c_str());
108   istringstream token8(linetoken8.c_str());
109   istringstream token9(linetoken9.c_str());
110   istringstream token10(linetoken10.c_str());
111
112   switch(misc_map[linetoken2])
113     {
114     case simpleHingeMomentCoef_flag:
115       {
116         if (check_float(linetoken3))
117           token3 >> token_value;
118         else
119           uiuc_warnings_errors(1, *command_line);
120         
121         simpleHingeMomentCoef = token_value;
122         break;
123       }
124       //case dfTimefdf_flag:
125       //{
126       //dfTimefdf = linetoken3;
127         /* call 1D File Reader with file name (dfTimefdf);
128            function returns array of dfs (dfArray) and 
129            corresponding time values (TimeArray) and max 
130            number of terms in arrays (ndf) */
131         //uiuc_1DdataFileReader(dfTimefdf,
132         //                    dfTimefdf_dfArray,
133         //                    dfTimefdf_TimeArray,
134         //                    dfTimefdf_ndf);
135         //break;
136       //}
137     case flapper_flag:
138       {
139         string flap_file;
140         
141         flap_file = aircraft_directory + "flap.dat";
142         flapper_model = true;
143         flapper_data = new FlapData(flap_file.c_str());
144         break;
145       }
146     case flapper_phi_init_flag:
147       {
148         if (check_float(linetoken3))
149           token3 >> token_value;
150         else
151           uiuc_warnings_errors(1, *command_line);
152         
153         flapper_phi_init = token_value*DEG_TO_RAD;
154         break;
155       }
156     default:
157       {
158         if (ignore_unknown_keywords) {
159           // do nothing
160         } else {
161           // print error message
162           uiuc_warnings_errors(2, *command_line);
163         }
164         break;
165       }
166     };
167 }