| Earth Observation Mission CFI Software Pointing Software User Manual |

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List

# C:/Jenkins/workspace/CPP_create_documentation/slaves/windows8/lib_src/Pointing/include/PointingData.h

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