00001 /* 00002 ORSA - Orbit Reconstruction, Simulation and Analysis 00003 Copyright (C) 2002-2004 Pasquale Tricarico 00004 00005 This program is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU General Public License 00007 as published by the Free Software Foundation; either version 2 00008 of the License, or (at your option) any later version. 00009 00010 As a special exception, Pasquale Tricarico gives permission to 00011 link this program with Qt commercial edition, and distribute the 00012 resulting executable, without including the source code for the Qt 00013 commercial edition in the source distribution. 00014 00015 This program is distributed in the hope that it will be useful, 00016 but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 GNU General Public License for more details. 00019 00020 You should have received a copy of the GNU General Public License 00021 along with this program; if not, write to the Free Software 00022 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00023 */ 00024 00025 #include "orsa_config.h" 00026 #include "orsa_file.h" 00027 00028 using namespace std; 00029 00030 namespace orsa { 00031 00032 string Label(const ConfigEnum e) { 00033 string label; 00034 switch(e) { 00035 case JPL_EPHEM_FILE: label="JPL ephemeris"; break; 00036 case JPL_DASTCOM_NUM: label="JPL asteroids database (NUM)"; break; 00037 case JPL_DASTCOM_UNNUM: label="JPL asteroids database (UNNUM)"; break; 00038 case JPL_DASTCOM_COMET: label="JPL comets database"; break; 00039 case LOWELL_ASTORB: label="Lowell asteroids database"; break; 00040 case MPC_MPCORB: label="MPC asteroids database"; break; 00041 case MPC_COMET: label="MPC comets database"; break; 00042 case MPC_NEA: label="MPC asteroids database (NEA)"; break; 00043 case MPC_DAILY: label="MPC asteroids database (DAILY)"; break; 00044 case MPC_DISTANT: label="MPC asteroids database (DISTANT)"; break; 00045 case MPC_PHA: label="MPC asteroids database (PHA)"; break; 00046 case MPC_UNUSUALS: label="MPC asteroids database (UNUSUALS)"; break; 00047 case ASTDYS_ALLNUM_CAT: label="AstDyS asteroids database (CAT)"; break; 00048 case ASTDYS_ALLNUM_CTC: label="AstDyS asteroids database (CTC)"; break; 00049 case ASTDYS_ALLNUM_CTM: label="AstDyS asteroids database (CTM)"; break; 00050 case ASTDYS_UFITOBS_CAT: label="AstDyS unnumbered asteroids database (CAT)"; break; 00051 case ASTDYS_UFITOBS_CTC: label="AstDyS unnumbered asteroids database (CTC)"; break; 00052 case ASTDYS_UFITOBS_CTM: label="AstDyS unnumbered asteroids database (CTM)"; break; 00053 case NEODYS_CAT: label="NEODyS asteroids database (CAT)"; break; 00054 case NEODYS_CTC: label="NEODyS asteroids database (CTC)"; break; 00055 case OBSCODE: label="Observatory codes"; break; 00056 // TLE 00057 case TLE_NASA: label="TLE (NASA)"; break; 00058 case TLE_GEO: label="TLE (GEO)"; break; 00059 case TLE_GPS: label="TLE (GPS)"; break; 00060 case TLE_ISS: label="TLE (ISS)"; break; 00061 case TLE_KEPELE: label="TLE (KEPELE)"; break; 00062 case TLE_VISUAL: label="TLE (VISUAL)"; break; 00063 case TLE_WEATHER: label="TLE (WEATHER)"; break; 00064 // textures 00065 case TEXTURE_SUN : label="Sun's texture"; break; 00066 case TEXTURE_MERCURY: label="Mercury's texture"; break; 00067 case TEXTURE_VENUS: label="Venus's texture"; break; 00068 case TEXTURE_EARTH: label="Earth's texture"; break; 00069 case TEXTURE_MOON: label="Moon's texture"; break; 00070 case TEXTURE_MARS: label="Mars's texture"; break; 00071 case TEXTURE_JUPITER: label="Jupiter's texture"; break; 00072 case TEXTURE_SATURN: label="Saturn's texture"; break; 00073 case TEXTURE_URANUS: label="Uranus's texture"; break; 00074 case TEXTURE_NEPTUNE: label="Neptune's texture"; break; 00075 case TEXTURE_PLUTO: label="Pluto's texture"; break; 00076 // 00077 case NO_CONFIG_ENUM: label="This shuld not be used!"; break; 00078 } 00079 return label; 00080 } 00081 00082 Config::Config() { 00083 paths[JPL_EPHEM_FILE] = new ConfigItem<string>("JPL_EPHEM_FILE"); 00084 paths[JPL_DASTCOM_NUM] = new ConfigItem<string>("JPL_DASTCOM_NUM"); 00085 paths[JPL_DASTCOM_UNNUM] = new ConfigItem<string>("JPL_DASTCOM_UNNUM"); 00086 paths[JPL_DASTCOM_COMET] = new ConfigItem<string>("JPL_DASTCOM_COMET"); 00087 paths[LOWELL_ASTORB] = new ConfigItem<string>("LOWELL_ASTORB"); 00088 paths[MPC_MPCORB] = new ConfigItem<string>("MPC_MPCORB"); 00089 paths[MPC_COMET] = new ConfigItem<string>("MPC_COMET"); 00090 paths[MPC_NEA] = new ConfigItem<string>("MPC_NEA"); 00091 paths[MPC_DAILY] = new ConfigItem<string>("MPC_DAILY"); 00092 paths[MPC_DISTANT] = new ConfigItem<string>("MPC_DISTANT"); 00093 paths[MPC_PHA] = new ConfigItem<string>("MPC_PHA"); 00094 paths[MPC_UNUSUALS] = new ConfigItem<string>("MPC_UNUSUALS"); 00095 paths[ASTDYS_ALLNUM_CAT] = new ConfigItem<string>("ASTDYS_ALLNUM_CAT"); 00096 paths[ASTDYS_ALLNUM_CTC] = new ConfigItem<string>("ASTDYS_ALLNUM_CTC"); 00097 paths[ASTDYS_ALLNUM_CTM] = new ConfigItem<string>("ASTDYS_ALLNUM_CTM"); 00098 paths[ASTDYS_UFITOBS_CAT] = new ConfigItem<string>("ASTDYS_UFITOBS_CAT"); 00099 paths[ASTDYS_UFITOBS_CTC] = new ConfigItem<string>("ASTDYS_UFITOBS_CTC"); 00100 paths[ASTDYS_UFITOBS_CTM] = new ConfigItem<string>("ASTDYS_UFITOBS_CTM"); 00101 paths[NEODYS_CAT] = new ConfigItem<string>("NEODYS_CAT"); 00102 paths[NEODYS_CTC] = new ConfigItem<string>("NEODYS_CTC"); 00103 paths[OBSCODE] = new ConfigItem<string>("OBSCODE"); 00104 // TLE 00105 paths[TLE_NASA] = new ConfigItem<string>("TLE_NASA"); 00106 paths[TLE_GEO] = new ConfigItem<string>("TLE_GEO"); 00107 paths[TLE_GPS] = new ConfigItem<string>("TLE_GPS"); 00108 paths[TLE_ISS] = new ConfigItem<string>("TLE_ISS"); 00109 paths[TLE_KEPELE] = new ConfigItem<string>("TLE_KEPELE"); 00110 paths[TLE_VISUAL] = new ConfigItem<string>("TLE_VISUAL"); 00111 paths[TLE_WEATHER] = new ConfigItem<string>("TLE_WEATHER"); 00112 // textures 00113 paths[TEXTURE_SUN] = new ConfigItem<string>("TEXTURE_SUN"); 00114 paths[TEXTURE_MERCURY] = new ConfigItem<string>("TEXTURE_MERCURY"); 00115 paths[TEXTURE_VENUS] = new ConfigItem<string>("TEXTURE_VENUS"); 00116 paths[TEXTURE_EARTH] = new ConfigItem<string>("TEXTURE_EARTH"); 00117 paths[TEXTURE_MOON] = new ConfigItem<string>("TEXTURE_MOON"); 00118 paths[TEXTURE_MARS] = new ConfigItem<string>("TEXTURE_MARS"); 00119 paths[TEXTURE_JUPITER] = new ConfigItem<string>("TEXTURE_JUPITER"); 00120 paths[TEXTURE_SATURN] = new ConfigItem<string>("TEXTURE_SATURN"); 00121 paths[TEXTURE_URANUS] = new ConfigItem<string>("TEXTURE_URANUS"); 00122 paths[TEXTURE_NEPTUNE] = new ConfigItem<string>("TEXTURE_NEPTUNE"); 00123 paths[TEXTURE_PLUTO] = new ConfigItem<string>("TEXTURE_PLUTO"); 00124 00125 // DON'T READ HERE!!! 00126 // read_from_file(); 00127 } 00128 00129 void Config::read_from_file() { 00130 OrsaConfigFile ocf; 00131 ocf.Read(); 00132 ocf.Close(); 00133 } 00134 00135 void Config::write_to_file() { 00136 OrsaConfigFile ocf; 00137 ocf.Write(); 00138 ocf.Close(); 00139 } 00140 00141 } // namespace orsa