![]() |
Earth Observation Mission CFI Software Pointing Software User Manual |
![]() |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.15 00003 //-------------------------------------------------------- 00004 00005 //-------------------------------------------------------------------- 00006 // CVS Info: $Id: PointingData.h,v 1.32 2014-02-26 13:00:48 paat Exp $ 00007 //-------------------------------------------------------------------- 00008 00013 00014 #ifndef __EECFI_POINTINGDATA__ 00015 #define __EECFI_POINTINGDATA__ 00016 00017 //--INCLUDE----------------------------------------------------------- 00018 #include "DataHandlingData.h" 00019 #include "LibData.h" 00020 #include "StarTracker.h" 00021 #include "AttRec.h" 00022 #include "Coord.h" 00023 #include "StateVector.h" 00024 #include "PointingDllExport.h" 00025 00026 //--NAMESPACES-------------------------------------------------------- 00027 using namespace std; 00028 00029 namespace EECFI 00030 { 00031 //------------------------------------------------------ 00032 // CONSTANT DATA 00033 //------------------------------------------------------ 00034 00035 //------------------------------------------------------ 00036 // DATA ENUMERATION 00037 // Enumeration values are defined in an equivalent way to the C library 00038 // except for the prefix that has been changed from XX_ to XXCFI_ 00039 //------------------------------------------------------ 00040 00042 typedef enum 00043 { 00044 XPCFI_AOCS_GPM = XDCFI_AOCS_GPM, 00045 XPCFI_AOCS_LNP = XDCFI_AOCS_LNP, 00046 XPCFI_AOCS_YSM = XDCFI_AOCS_YSM, 00047 XPCFI_AOCS_ZDOPPLER = XDCFI_AOCS_ZDOPPLER 00048 00049 } SatNominalAttAocsModeEnum; // AN-469 00050 00052 typedef enum 00053 { 00054 XPCFI_MODEL_GENERIC = XDCFI_MODEL_GENERIC, 00055 XPCFI_MODEL_ENVISAT = XDCFI_MODEL_ENVISAT, 00056 XPCFI_MODEL_CRYOSAT = XDCFI_MODEL_CRYOSAT, 00057 XPCFI_MODEL_ADM = XDCFI_MODEL_ADM, 00058 XPCFI_MODEL_SENTINEL1 = XDCFI_MODEL_SENTINEL1, 00059 XPCFI_MODEL_SENTINEL2 = XDCFI_MODEL_SENTINEL2, 00060 XPCFI_MODEL_GEO = XDCFI_MODEL_GEO, 00061 XPCFI_MODEL_METOPSG = XDCFI_MODEL_METOPSG /* AN-666 */ 00062 } SatNominalAttModelEnum; // AN-469 00063 00065 typedef enum 00066 { 00067 XPCFI_ANGLE_TYPE_TRUE_LAT_TOD = XDCFI_ANGLE_TYPE_TRUE_LAT_TOD, 00068 XPCFI_ANGLE_TYPE_MEAN_LAT_TOD = XDCFI_ANGLE_TYPE_MEAN_LAT_TOD, 00069 XPCFI_ANGLE_TYPE_TRUE_LAT_EF = XDCFI_ANGLE_TYPE_TRUE_LAT_EF /* AN-508 */ 00070 } XPAngleTypeEnum; // AN-469 00071 00073 typedef enum 00074 { 00075 XPCFI_SEL_FILE = 0, 00076 XPCFI_SEL_TIME, 00077 XPCFI_SEL_ORBIT, 00078 XPCFI_SEL_DEFAULT 00079 } PointingInitModeEnum; 00080 00082 typedef enum 00083 { 00084 XPCFI_SAT_NOMINAL_ATT_INIT_MODE = 0, 00085 XPCFI_SAT_NOMINAL_ATT_INIT_MODEL_MODE, 00086 XPCFI_SAT_NOMINAL_ATT_INIT_HARMONIC_MODE, 00087 XPCFI_SAT_NOMINAL_ATT_INIT_FILE_MODE 00088 00089 } SatNominalAttModeEnum; 00090 00092 typedef enum 00093 { 00094 XPCFI_SAT_ATT_ANGLE_INIT_MODE = 0, 00095 XPCFI_SAT_ATT_MATRIX_INIT_MODE, 00096 XPCFI_SAT_ATT_INIT_HARMONIC_MODE, 00097 XPCFI_SAT_ATT_INIT_FILE_MODE 00098 00099 } SatAttModeEnum; 00100 00102 typedef enum 00103 { 00104 XPCFI_INSTR_ATT_ANGLE_INIT_MODE = 0, 00105 XPCFI_INSTR_ATT_MATRIX_INIT_MODE, 00106 XPCFI_INSTR_ATT_INIT_HARMONIC_MODE, 00107 XPCFI_INSTR_ATT_INIT_FILE_MODE 00108 00109 } InstrAttModeEnum; 00110 00112 typedef enum 00113 { 00114 XPCFI_ATTITUDE_INIT_NO_DATA_MODE = 0, 00115 XPCFI_ATTITUDE_COMPUTE_MODE, 00116 XPCFI_ATTITUDE_USER_SET_MODE 00117 00118 } AttitudeModeEnum; 00119 00121 typedef enum 00122 { 00123 XPCFI_ATTITUDE_GENERIC_FILE_MODEL = 0, 00124 XPCFI_ATTITUDE_STAR_TRACKER_FILE_MODEL, 00125 XPCFI_ATTITUDE_QUATERNION_NO_FILE_MODEL 00126 00127 } AttitudeFileModelEnum; 00128 00130 typedef enum 00131 { 00132 XPCFI_BM2000 = 1, 00133 XPCFI_HM2000 , 00134 XPCFI_GM2000, 00135 XPCFI_MOD, 00136 XPCFI_TOD, 00137 XPCFI_PEF, 00138 XPCFI_EF, 00139 XPCFI_BM1950, 00140 XPCFI_GALACTIC 00141 } CsRlEnum; 00142 00144 typedef enum 00145 { 00146 XPCFI_NONE_ATTITUDE = -1, /* AN-468 */ 00147 XPCFI_SAT_ORBITAL_REF = 0, 00148 XPCFI_SAT_NOMINAL_ATT = 1, 00149 XPCFI_SAT_ATT = 2, 00150 XPCFI_INSTR_ATT = 3 00151 } AttFrEnum; 00152 00154 typedef enum 00155 { 00156 XPCFI_FRAME_FLAG_EXT = 0, 00157 XPCFI_FRAME_FLAG_SAT 00158 } FrameFlagEnum; 00159 00161 typedef enum 00162 { 00163 XPCFI_NO_INTER = 0, 00164 XPCFI_INTER_1ST, 00165 XPCFI_INTER_2ND 00166 } InterModeEnum; 00167 00169 typedef enum 00170 { 00171 XPCFI_SOURCE_STAR, 00172 XPCFI_SOURCE_SUN, 00173 XPCFI_SOURCE_MOON, 00174 XPCFI_SOURCE_GENERIC 00175 } SourceTypeEnum; 00176 00178 typedef enum 00179 { 00180 XPCFI_USER_TARGET_TYPE = 0, 00181 XPCFI_LOS_TARGET_TYPE, 00182 XPCFI_DEM_TARGET_TYPE 00183 } TargetTypeEnum; 00184 00186 typedef enum 00187 { 00188 XPCFI_X_AXIS = 0, 00189 XPCFI_NEG_X_AXIS, 00190 XPCFI_Y_AXIS, 00191 XPCFI_NEG_Y_AXIS, 00192 XPCFI_Z_AXIS, 00193 XPCFI_NEG_Z_AXIS 00194 } PointingAxisEnum; 00195 00197 typedef enum 00198 { 00199 XPCFI_SUN_VEC = 0, 00200 XPCFI_MOON_VEC, 00201 XPCFI_EARTH_VEC, 00202 XPCFI_NADIR_VEC, 00203 XPCFI_INERTIAL_VEL_VEC, 00204 XPCFI_EF_VEL_VEC, 00205 XPCFI_INERTIAL_TARGET_VEC, 00206 XPCFI_EF_TARGET_VEC, 00207 XPCFI_SC_EF_VEL_VEC, 00208 XPCFI_ORBIT_POLE, 00209 XPCFI_INERTIAL_POS_VEC_CORRECTED, 00210 XPCFI_INERTIAL_VEL_VEC_ROTATED, 00211 XPCFI_EF_NORTH, // AN-353 00212 XPCFI_EF_SOUTH // AN-353 00213 } AxisTargetEnum; 00214 00216 // Changed for AN-407 (Enumeration TargetPointingRayEnum was removed) 00217 typedef enum 00218 { 00219 XPCFI_NO_REF_INIT = XDCFI_NO_REF, 00220 XPCFI_STD_INIT = XDCFI_STD_REF, 00221 XPCFI_USER_INIT = XDCFI_USER_REF, 00222 XPCFI_PRED_INIT = XDCFI_PRED_REF, 00223 XPCFI_STD_INIT_N = XDCFI_STD_REF_N, 00224 XPCFI_USER_INIT_N = XDCFI_USER_REF_N, 00225 XPCFI_PRED_INIT_N = XDCFI_PRED_REF_N, 00226 XPCFI_US76_INIT = XDCFI_US76_REF, 00227 XPCFI_TROPIC_INIT = XDCFI_TROPIC_REF, 00228 XPCFI_MID_SUM_INIT = XDCFI_MID_SUM_REF, 00229 XPCFI_MID_WIN_INIT = XDCFI_MID_WIN_REF, 00230 XPCFI_SUBAR_SUM_INIT = XDCFI_SUBAR_SUM_REF, 00231 XPCFI_SUBAR_WIN_INIT = XDCFI_SUBAR_WIN_REF, 00232 XPCFI_LUT_INIT = XDCFI_LUT_REF, 00233 XPCFI_US76_INIT_N = XDCFI_US76_REF_N, 00234 XPCFI_TROPIC_INIT_N = XDCFI_TROPIC_REF_N, 00235 XPCFI_MID_SUM_INIT_N = XDCFI_MID_SUM_REF_N, 00236 XPCFI_MID_WIN_INIT_N = XDCFI_MID_WIN_REF_N, 00237 XPCFI_SUBAR_SUM_INIT_N = XDCFI_SUBAR_SUM_REF_N, 00238 XPCFI_SUBAR_WIN_INIT_N = XDCFI_SUBAR_WIN_REF_N, 00239 XPCFI_LUT_INIT_N = XDCFI_LUT_REF_N 00240 } AtmosModeEnum; 00241 00243 typedef enum 00244 { 00245 XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT = 1, 00246 XPCFI_TARG_EXTRA_AUX_RAD_CUR = 2, 00247 XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT_D = 4, 00248 XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT_2D = 8, 00249 XPCFI_TARG_EXTRA_AUX_RAD_CUR_D = 16, 00250 XPCFI_TARG_EXTRA_AUX_RAD_CUR_2D = 32, 00251 XPCFI_TARG_EXTRA_AUX_TARGET_NADIR_VEL = 64, 00252 XPCFI_TARG_EXTRA_AUX_MLST = 128, 00253 XPCFI_TARG_EXTRA_AUX_TLST = 256, 00254 XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD = 512, 00255 XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD_D = 1024, 00256 XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD_2D = 2048, 00257 XPCFI_TARG_EXTRA_AUX_LOOK_DIR = 4096, 00258 XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT = 8192, 00259 XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT_D= 16384, 00260 XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT_2D = 32768, 00261 XPCFI_TARG_EXTRA_AUX_ALL = XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT + XPCFI_TARG_EXTRA_AUX_RAD_CUR + \ 00262 XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT_D + XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT_2D +\ 00263 XPCFI_TARG_EXTRA_AUX_RAD_CUR_D + XPCFI_TARG_EXTRA_AUX_RAD_CUR_2D + XPCFI_TARG_EXTRA_AUX_TARGET_NADIR_VEL + \ 00264 XPCFI_TARG_EXTRA_AUX_MLST + XPCFI_TARG_EXTRA_AUX_TLST + \ 00265 XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD + XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD_D + \ 00266 XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD_2D + XPCFI_TARG_EXTRA_AUX_LOOK_DIR +\ 00267 XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT + XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT_D + \ 00268 XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT_2D 00269 00270 } TargetResAuxNameEnum; 00271 00273 typedef enum 00274 { 00275 XPCFI_TARG_EXTRA_MAIN_GEO = 1, 00276 XPCFI_TARG_EXTRA_MAIN_GEO_D = 2, 00277 XPCFI_TARG_EXTRA_MAIN_GEO_2D = 4, 00278 XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP = 8, 00279 XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP_D = 16, 00280 XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP_2D = 32, 00281 XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP = 64, 00282 XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP_D = 128, 00283 XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP_2D = 256, 00284 XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE = 512, 00285 XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE_D = 1024, 00286 XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE_2D= 2048, 00287 XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE = 4096, /* AN-353 */ 00288 XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE_D = 8192, /* AN-353 */ 00289 XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE_2D=16384, /* AN-353 */ 00290 XPCFI_TARG_EXTRA_MAIN_ALL = XPCFI_TARG_EXTRA_MAIN_GEO + XPCFI_TARG_EXTRA_MAIN_GEO_D + XPCFI_TARG_EXTRA_MAIN_GEO_2D +\ 00291 XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP + XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP_D + XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP_2D + \ 00292 XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP + XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP_D + XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP_2D + \ 00293 XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE + XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE_D + XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE_2D + \ 00294 XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE + XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE_D + XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE_2D 00295 00296 }TargetResMainNameEnum; /* CAREFUL: variables holding these values MUST be declared as long !!! */ 00297 00299 typedef enum 00300 { 00301 XPCFI_SAT_DEFAULT = XLCFI_SAT_DEFAULT, 00302 XPCFI_SAT_DEFAULT1 = XLCFI_SAT_DEFAULT1, 00303 XPCFI_SAT_DEFAULT2 = XLCFI_SAT_DEFAULT2, 00304 XPCFI_SAT_DEFAULT3 = XLCFI_SAT_DEFAULT3, 00305 XPCFI_SAT_DEFAULT4 = XLCFI_SAT_DEFAULT4, 00306 XPCFI_SAT_DEFAULT5 = XLCFI_SAT_DEFAULT5, 00307 XPCFI_SAT_DEFAULT6 = XLCFI_SAT_DEFAULT6, 00308 XPCFI_SAT_DEFAULT7 = XLCFI_SAT_DEFAULT7, 00309 XPCFI_SAT_DEFAULT8 = XLCFI_SAT_DEFAULT8, 00310 XPCFI_SAT_DEFAULT9 = XLCFI_SAT_DEFAULT9, 00311 XPCFI_SAT_ERS1 = XLCFI_SAT_ERS1, 00312 XPCFI_SAT_ERS2 = XLCFI_SAT_ERS2, 00313 XPCFI_SAT_ENVISAT = XLCFI_SAT_ENVISAT, 00314 XPCFI_SAT_METOP1 = XLCFI_SAT_METOP1, 00315 XPCFI_SAT_METOP2 = XLCFI_SAT_METOP2, 00316 XPCFI_SAT_METOP3 = XLCFI_SAT_METOP3, 00317 XPCFI_SAT_CRYOSAT = XLCFI_SAT_CRYOSAT, 00318 XPCFI_SAT_ADM = XLCFI_SAT_ADM, 00319 XPCFI_SAT_GOCE = XLCFI_SAT_GOCE, 00320 XPCFI_SAT_SMOS = XLCFI_SAT_SMOS, 00321 XPCFI_SAT_TERRASAR = XLCFI_SAT_TERRASAR, 00322 XPCFI_SAT_EARTHCARE = XLCFI_SAT_EARTHCARE, 00323 XPCFI_SAT_SWARM_A = XLCFI_SAT_SWARM_A, 00324 XPCFI_SAT_SWARM_B = XLCFI_SAT_SWARM_B, 00325 XPCFI_SAT_SWARM_C = XLCFI_SAT_SWARM_C, 00326 XPCFI_SAT_SENTINEL_1A = XLCFI_SAT_SENTINEL_1A, 00327 XPCFI_SAT_SENTINEL_1B = XLCFI_SAT_SENTINEL_1B, 00328 XPCFI_SAT_SENTINEL_2 = XLCFI_SAT_SENTINEL_2, 00329 XPCFI_SAT_SENTINEL_3 = XLCFI_SAT_SENTINEL_3, 00330 XPCFI_SAT_SEOSAT = XLCFI_SAT_SEOSAT, 00331 XPCFI_SAT_SENTINEL_1C = XLCFI_SAT_SENTINEL_1C, 00332 XPCFI_SAT_SENTINEL_2A = XLCFI_SAT_SENTINEL_2A, 00333 XPCFI_SAT_SENTINEL_2B = XLCFI_SAT_SENTINEL_2B, 00334 XPCFI_SAT_SENTINEL_2C = XLCFI_SAT_SENTINEL_2C, 00335 XPCFI_SAT_SENTINEL_3A = XLCFI_SAT_SENTINEL_3A, 00336 XPCFI_SAT_SENTINEL_3B = XLCFI_SAT_SENTINEL_3B, 00337 XPCFI_SAT_SENTINEL_3C = XLCFI_SAT_SENTINEL_3C, 00338 XPCFI_SAT_JASON_CSA = XLCFI_SAT_JASON_CSA, // AN-531 00339 XPCFI_SAT_JASON_CSB = XLCFI_SAT_JASON_CSB, // AN-531 00340 XPCFI_SAT_METOP_SG_A1 = XLCFI_SAT_METOP_SG_A1, // AN-530 00341 XPCFI_SAT_METOP_SG_A2 = XLCFI_SAT_METOP_SG_A2, // AN-530 00342 XPCFI_SAT_METOP_SG_A3 = XLCFI_SAT_METOP_SG_A3, // AN-530 00343 XPCFI_SAT_METOP_SG_B1 = XLCFI_SAT_METOP_SG_B1, // AN-530 00344 XPCFI_SAT_METOP_SG_B2 = XLCFI_SAT_METOP_SG_B2, // AN-530 00345 XPCFI_SAT_METOP_SG_B3 = XLCFI_SAT_METOP_SG_B3, // AN-530 00346 XPCFI_SAT_SENTINEL_5P = XLCFI_SAT_SENTINEL_5P, // AN-502 00347 XPCFI_SAT_BIOMASS = XLCFI_SAT_BIOMASS, // AN-601 00348 XPCFI_SAT_SENTINEL_5 = XLCFI_SAT_SENTINEL_5, // AN-639 00349 XPCFI_SAT_SAOCOM_CS = XLCFI_SAT_SAOCOM_CS, // AN-640 00350 XPCFI_SAT_FLEX = XLCFI_SAT_FLEX, /* AN-683 */ 00351 XPCFI_SAT_GENERIC = XLCFI_SAT_GENERIC, 00352 // AN-353 00353 XPCFI_SAT_GENERIC_GEO = XLCFI_SAT_GENERIC_GEO, 00354 XPCFI_SAT_MTG = XLCFI_SAT_MTG, 00355 // END AN-353 00356 XPCFI_SAT_GENERIC_MEO = XLCFI_SAT_GENERIC_MEO // AN-550 00357 } SatIdPointingEnum; 00358 00360 typedef enum // Flag to indicate the grade of a derivative 00361 { 00362 XPCFI_NO_DER = XLCFI_NO_DER, 00363 XPCFI_DER_1ST = XLCFI_DER_1ST, 00364 XPCFI_DER_2ND = XLCFI_DER_2ND 00365 } DerivPointingEnum; 00366 00367 00369 typedef enum 00370 { 00371 XPCFI_TIME_UNDEF = XLCFI_TIME_UNDEF, 00372 XPCFI_TIME_TAI = XLCFI_TIME_TAI, 00373 XPCFI_TIME_UTC = XLCFI_TIME_UTC, 00374 XPCFI_TIME_UT1 = XLCFI_TIME_UT1, 00375 XPCFI_TIME_GPS = XLCFI_TIME_GPS 00376 } TimeRefPointingEnum; 00377 00379 typedef enum 00380 { 00381 XPCFI_MODE_FLAG_LOCATION = XLCFI_MODE_FLAG_LOCATION, 00382 XPCFI_MODE_FLAG_DIRECTION = XLCFI_MODE_FLAG_DIRECTION 00383 } ModeFlagPointingEnum; 00384 00386 typedef enum 00387 { 00388 XPCFI_DEM_ACE_MODEL = XDCFI_DEM_ACE_MODEL 00389 } DemModelPointingEnum; 00390 00392 typedef enum 00393 { 00394 XPCFI_LOAD_TILE_SET, 00395 XPCFI_CLEAR_CACHE, 00396 XPCFI_FREE_CACHE, 00397 XPCFI_SET_MAX_SIZE 00398 } DemConfigEnum; // AN-487 00399 00401 typedef enum 00402 { 00403 XPCFI_AZ_EL_LIST, 00404 XPCFI_AZ_EL_STRIP, 00405 XPCFI_AZ_EL_GRID 00406 } AzElTypeEnum; // AN-470 00407 00409 typedef enum 00410 { 00411 XPCFI_TARGET_LIST_INTER_ID 00412 } TargetListMethodEnum; // AN-471 00413 00415 typedef enum 00416 { 00417 XPCFI_ALL_DEM, 00418 XPCFI_DEM_SET 00419 } DemSetEnum; 00420 00422 typedef enum 00423 { 00424 XPCFI_AUTOMATIC_FLIP_MODE = 0, 00425 XPCFI_WINTER_MODE = 1, 00426 XPCFI_SUMMER_MODE = 2 00427 } YawFlipEnum; // AN-353 00428 00429 //------------------------------------------------------ 00430 // DATA STRUCTURES 00431 //------------------------------------------------------ 00432 00434 class XP_DECL AttDataRec 00435 { 00436 public: 00437 long timeRef; 00438 double time; 00439 double quaternion[4]; 00440 double angles[3]; 00441 00443 AttDataRec() 00444 { 00445 timeRef = 0; 00446 time = 0.; 00447 for ( int i = 0 ; i < 4 ; i++ ) 00448 { 00449 quaternion[i] = 0.; 00450 if ( i < 3 ) 00451 angles[i] = 0.; 00452 } 00453 } 00454 00456 AttDataRec( long timeReference, double timeIn, 00457 double *quaternions, double *angle ) 00458 { 00459 timeRef = timeReference; 00460 time = timeIn; 00461 00462 quaternion[0] = quaternions[0]; 00463 quaternion[1] = quaternions[1]; 00464 quaternion[2] = quaternions[2]; 00465 quaternion[3] = quaternions[3]; 00466 00467 angles[0] = angle[0]; 00468 angles[1] = angle[1]; 00469 angles[2] = angle[2]; 00470 } 00471 }; 00472 00474 class XP_DECL AttFileModel 00475 { 00476 public: 00477 long fileModel; 00478 double valTime0; 00479 double valTime1; 00480 long dataType; 00481 long inertialFrame; 00482 double maxGap; 00483 vector<AttDataRec> attData; 00484 }; 00485 00487 class XP_DECL StarTrackerAux 00488 { 00489 public: 00490 long starTrId; 00491 long aberrCorrection; 00492 double strAttRot[3][3]; 00493 }; 00494 00496 class XP_DECL SatAttFileModel 00497 { 00498 public: 00499 long fileModel; 00500 double valTime0; 00501 double valTime1; 00502 long dataType; 00503 long inertialFrame; 00504 double maxGap; 00505 vector<AttDataRec> attData; 00506 StarTrackerAux auxData; 00507 vector<StarTracker> tmData; 00508 }; 00509 00511 class XP_DECL QuatPlusMatrixModel 00512 { 00513 public: 00514 long inertialFrame; 00515 vector<AttRec> quat; 00516 double rotMatrix[3][3]; 00517 }; 00518 00520 class XP_DECL QuatPlusAnglesModel 00521 { 00522 public: 00523 long inertialFrame; 00524 vector<AttRec> quat; 00525 double angles[3]; 00526 }; 00527 00529 class XP_DECL AtmosIdData 00530 { 00531 public: 00532 double atmMaxAltStd; 00533 double atmMaxAltUser; 00534 }; 00535 00537 class XP_DECL AzElDefinition 00538 { 00539 public: 00540 long az0Axis; 00541 long az90Axis; 00542 long el90Axis; 00543 }; 00544 00546 class XP_DECL CsTra 00547 { 00548 public: 00549 bool azelFlag; 00550 AzElDefinition azelDef; 00551 CsRlEnum refi; 00552 AttFrEnum reff; 00553 bool ambFlag; 00554 DerivPointingEnum deriv; 00555 double v[3]; 00556 double vd[3]; 00557 double v2d[3]; 00558 double m[3][3]; 00559 double md[3][3]; 00560 double m2d[3][3]; 00561 }; 00562 00564 class XP_DECL AttitudeData 00565 { 00566 public: 00567 long model; 00568 StateVector satVector; 00569 long sourceFrame; 00570 long targetFrame; 00571 CsTra satMat; 00572 double offset[3]; 00573 CsTra attitudeEF; 00574 }; 00575 00577 class XP_DECL ParDer 00578 { 00579 public: 00580 DerivPointingEnum deriv; 00581 double p; 00582 double pd; 00583 double p2d; 00584 }; 00585 00587 class XP_DECL GenericTargetData 00588 { 00589 public: 00590 long timeRef; 00591 double time; 00592 Coord satVector; 00593 long iray; 00594 double freq; 00595 long deriv; 00596 }; 00597 00599 class XP_DECL TargetData 00600 { 00601 public: 00602 long targetNumber; // AN-470. 00603 Coord tarVector; 00604 ParDer zTan; 00605 ParDer range; 00606 ParDer time; 00607 Coord tarSatVector; 00608 Coord satTarVector; 00609 00610 TargetData const &operator=(TargetData const &tarDat) 00611 { 00612 return tarDat; 00613 } 00614 }; 00615 00617 class XP_DECL TargetIdData 00618 { 00619 public: 00620 GenericTargetData genericData; 00621 long earthCrossed; 00622 long atmCrossed; 00623 vector<TargetData> user; 00624 vector<TargetData> los; 00625 bool earthFlag; 00626 TargetData earth; 00627 Coord exitAtmVector; 00628 }; 00629 00631 class XP_DECL LatLonArea 00632 { 00633 public: 00634 double lonMin; 00635 double lonMax; 00636 double latMin; 00637 double latMax; 00638 }; // AN-487 00639 00641 class XP_DECL DemIdConfig 00642 { 00643 public: 00644 long command; 00645 long maxCacheSize; 00646 LatLonArea area; 00647 00648 }; // AN-487 00649 00651 class XP_DECL AzimuthElevation 00652 { 00653 public: 00654 double azimuth; 00655 double elevation; 00656 double azimuthRate; 00657 double elevationRate; 00658 }; // AN-470 00659 00661 class XP_DECL AzimuthElevationList 00662 { 00663 public: 00664 vector<AzimuthElevation> azElList; 00665 }; // AN-470 00666 00668 class XP_DECL AzimuthElevationStrip 00669 { 00670 public: 00671 double azimuth; 00672 double minElevation; 00673 double maxElevation; 00674 double stepElevation; 00675 }; // AN-470 00676 00678 class XP_DECL AzimuthElevationGrid 00679 { 00680 public: 00681 double minAzimuth; 00682 double maxAzimuth; 00683 double stepAzimuth; 00684 double minElevation; 00685 double maxElevation; 00686 double stepElevation; 00687 }; // AN-470 00688 00690 class XP_DECL InstrumentData 00691 { 00692 public: 00693 long type; 00694 AzimuthElevationList azimuthElevationList; 00695 AzimuthElevationStrip azimuthElevationStrip; 00696 AzimuthElevationGrid azimuthElevationGrid; 00697 double signalFrequency; 00698 }; // AN-470 00699 00701 class XP_DECL TargetOutput 00702 { 00703 public: 00704 long numUserTarget; 00705 vector<long> numLosTarget; 00706 }; // AN-470 00707 00709 class XP_DECL TargetListInputInfo 00710 { 00711 public: 00712 long inputType; 00713 double azimuth; 00714 double elevation; 00715 long azimuthIdx; 00716 long elevationIdx; 00717 }; // AN-471 00718 00720 class XP_DECL TargetInputInfo 00721 { 00722 public: 00723 long targetFunction; 00724 TargetListInputInfo targetListInputInfo; 00725 }; // AN-471 00726 00728 class XP_DECL TargetExtraResults 00729 { 00730 public: 00731 long status; 00732 TargetInputInfo targetInputInfo; 00733 vector<double> results; 00734 vector<double> resultsRate; 00735 vector<double> resultsRateRate; 00736 }; // AN-471 00737 00739 class XP_DECL TargetExtraResultsList 00740 { 00741 public: 00742 vector<TargetExtraResults> extraResults; 00743 }; // AN-471 00744 00746 class XP_DECL GenDemAltFromEllipsoidInputs 00747 { 00748 public: 00749 long setType; 00750 double lonMin; 00751 double lonMax; 00752 double latMin; 00753 double latMax; 00754 long verbose; 00755 }; // AN-466 00756 00758 class XP_DECL TransformCfg 00759 { 00760 public: 00761 TimeCorrelation timeId; 00762 ModelId modelId; 00763 CsRlEnum refFrame; 00764 }; // AN-526 00765 00766 } // closing namespace 00767 00768 #endif