| Earth Observation Mission CFI Software Pointing Software User Manual |

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

- File List

# Z:/work/code/expcfidev/cplusplusWrapper/Pointing/include/PointingData.h

    00001 //--------------------------------------------------------
    00002 // Earth Observation Mission CFI Software. Version 4.4
    00003 //--------------------------------------------------------
    00004
    00005 //--------------------------------------------------------------------
    00006 // CVS Info: $Id: PointingData.h,v 1.23 2012/07/09 11:04:38 expcfi 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
    00025 //--NAMESPACES--------------------------------------------------------
    00026 using namespace std;
    00027
    00028 namespace EECFI
    00029 {
    00030   //------------------------------------------------------
    00031   // CONSTANT DATA
    00032   //------------------------------------------------------
    00033
    00034   //------------------------------------------------------
    00035   // DATA ENUMERATION
    00036   // Enumeration values are defined in an equivalent way to the C library
    00037   // except for the prefix that has been changed from XX_ to XXCFI_
    00038   //------------------------------------------------------
    00039
    00041   typedef enum
    00042   {
    00043     XPCFI_AOCS_GPM = 0,
    00044     XPCFI_AOCS_LNP,
    00045     XPCFI_AOCS_YSM,
    00046     XPCFI_AOCS_ZDOPPLER
    00047   } SatNominalAttAocsModeEnum;
    00048
    00049   typedef enum
    00050   {
    00051     XPCFI_MODEL_GENERIC = 0,
    00052     XPCFI_MODEL_ENVISAT,
    00053     XPCFI_MODEL_CRYOSAT,
    00054     XPCFI_MODEL_ADM,
    00055     XPCFI_MODEL_SENTINEL1,
    00056     XPCFI_MODEL_SENTINEL2,
    00057     XPCFI_MODEL_GEO     // AN-353
    00058   } SatNominalAttModelEnum;
    00059
    00060   typedef enum
    00061   {
    00062     XPCFI_ANGLE_TYPE_TRUE_LAT_TOD = 0,
    00063     XPCFI_ANGLE_TYPE_MEAN_LAT_TOD
    00064   } PointingAngleTypeEnum;
    00065
    00067   typedef enum
    00068   {
    00069     XPCFI_SEL_FILE    = 0,
    00070     XPCFI_SEL_TIME,
    00071     XPCFI_SEL_ORBIT,
    00072     XPCFI_SEL_DEFAULT
    00073   } PointingInitModeEnum;
    00074
    00076   typedef enum
    00077   {
    00078     XPCFI_SAT_NOMINAL_ATT_INIT_MODE = 0,
    00079     XPCFI_SAT_NOMINAL_ATT_INIT_MODEL_MODE,
    00080     XPCFI_SAT_NOMINAL_ATT_INIT_HARMONIC_MODE,
    00081     XPCFI_SAT_NOMINAL_ATT_INIT_FILE_MODE
    00082
    00083   } SatNominalAttModeEnum;
    00084
    00086   typedef enum
    00087   {
    00088     XPCFI_SAT_ATT_ANGLE_INIT_MODE = 0,
    00089     XPCFI_SAT_ATT_MATRIX_INIT_MODE,
    00090     XPCFI_SAT_ATT_INIT_HARMONIC_MODE,
    00091     XPCFI_SAT_ATT_INIT_FILE_MODE
    00092
    00093   } SatAttModeEnum;
    00094
    00096   typedef enum
    00097   {
    00098     XPCFI_INSTR_ATT_ANGLE_INIT_MODE = 0,
    00099     XPCFI_INSTR_ATT_MATRIX_INIT_MODE,
    00100     XPCFI_INSTR_ATT_INIT_HARMONIC_MODE,
    00101     XPCFI_INSTR_ATT_INIT_FILE_MODE
    00102
    00103   } InstrAttModeEnum;
    00104
    00106   typedef enum
    00107   {
    00108     XPCFI_ATTITUDE_INIT_NO_DATA_MODE = 0,
    00109     XPCFI_ATTITUDE_COMPUTE_MODE,
    00110     XPCFI_ATTITUDE_USER_SET_MODE
    00111
    00112   } AttitudeModeEnum;
    00113
    00115   typedef enum
    00116   {
    00117     XPCFI_ATTITUDE_GENERIC_FILE_MODEL = 0,
    00118     XPCFI_ATTITUDE_STAR_TRACKER_FILE_MODEL,
    00119     XPCFI_ATTITUDE_QUATERNION_NO_FILE_MODEL
    00120
    00121   } AttitudeFileModelEnum;
    00122
    00124   typedef enum
    00125   {
    00126     XPCFI_BM2000 = 1,
    00127     XPCFI_HM2000 ,
    00128     XPCFI_GM2000,
    00129     XPCFI_MOD,
    00130     XPCFI_TOD,
    00131     XPCFI_PEF,
    00132     XPCFI_EF,
    00133     XPCFI_BM1950,
    00134     XPCFI_GALACTIC
    00135   } CsRlEnum;
    00136
    00138   typedef enum
    00139   {
    00140     XPCFI_SAT_ORBITAL_REF = 0,
    00141     XPCFI_SAT_NOMINAL_ATT = 1,
    00142     XPCFI_SAT_ATT         = 2,
    00143     XPCFI_INSTR_ATT       = 3
    00144   } AttFrEnum;
    00145
    00147   typedef enum
    00148   {
    00149     XPCFI_FRAME_FLAG_EXT = 0,
    00150     XPCFI_FRAME_FLAG_SAT
    00151   } FrameFlagEnum;
    00152
    00154   typedef enum
    00155   {
    00156     XPCFI_NO_INTER = 0,
    00157     XPCFI_INTER_1ST,
    00158     XPCFI_INTER_2ND
    00159   } InterModeEnum;
    00160
    00162   typedef enum
    00163   {
    00164     XPCFI_SOURCE_STAR,
    00165     XPCFI_SOURCE_SUN,
    00166     XPCFI_SOURCE_MOON,
    00167     XPCFI_SOURCE_GENERIC
    00168   } SourceTypeEnum;
    00169
    00171   typedef enum
    00172   {
    00173     XPCFI_USER_TARGET_TYPE = 0,
    00174     XPCFI_LOS_TARGET_TYPE,
    00175     XPCFI_DEM_TARGET_TYPE
    00176   } TargetTypeEnum;
    00177
    00179    typedef enum
    00180    {
    00181      XPCFI_X_AXIS     = 0,
    00182      XPCFI_NEG_X_AXIS,
    00183      XPCFI_Y_AXIS,
    00184      XPCFI_NEG_Y_AXIS,
    00185      XPCFI_Z_AXIS,
    00186      XPCFI_NEG_Z_AXIS
    00187    } PointingAxisEnum;
    00188
    00190   typedef enum
    00191   {
    00192     XPCFI_SUN_VEC = 0,
    00193     XPCFI_MOON_VEC,
    00194     XPCFI_EARTH_VEC,
    00195     XPCFI_NADIR_VEC,
    00196     XPCFI_INERTIAL_VEL_VEC,
    00197     XPCFI_EF_VEL_VEC,
    00198     XPCFI_INERTIAL_TARGET_VEC,
    00199     XPCFI_EF_TARGET_VEC,
    00200     XPCFI_SC_EF_VEL_VEC,
    00201     XPCFI_ORBIT_POLE,
    00202     XPCFI_INERTIAL_POS_VEC_CORRECTED,
    00203     XPCFI_INERTIAL_VEL_VEC_ROTATED,
    00204     XPCFI_EF_NORTH, // AN-353
    00205     XPCFI_EF_SOUTH  // AN-353
    00206   } AxisTargetEnum;
    00207
    00209   // Changed for AN-407 (Enumeration TargetPointingRayEnum was removed)
    00210   typedef enum
    00211   {
    00212     XPCFI_NO_REF_INIT       =  XDCFI_NO_REF,
    00213     XPCFI_STD_INIT          =  XDCFI_STD_REF,
    00214     XPCFI_USER_INIT         =  XDCFI_USER_REF,
    00215     XPCFI_PRED_INIT         =  XDCFI_PRED_REF,
    00216     XPCFI_STD_INIT_N        =  XDCFI_STD_REF_N,
    00217     XPCFI_USER_INIT_N       =  XDCFI_USER_REF_N,
    00218     XPCFI_PRED_INIT_N       =  XDCFI_PRED_REF_N,
    00219     XPCFI_US76_INIT         =  XDCFI_US76_REF,
    00220     XPCFI_TROPIC_INIT       =  XDCFI_TROPIC_REF,
    00221     XPCFI_MID_SUM_INIT      =  XDCFI_MID_SUM_REF,
    00222     XPCFI_MID_WIN_INIT      =  XDCFI_MID_WIN_REF,
    00223     XPCFI_SUBAR_SUM_INIT    =  XDCFI_SUBAR_SUM_REF,
    00224     XPCFI_SUBAR_WIN_INIT    =  XDCFI_SUBAR_WIN_REF,
    00225     XPCFI_LUT_INIT          =  XDCFI_LUT_REF,
    00226     XPCFI_US76_INIT_N       =  XDCFI_US76_REF_N,
    00227     XPCFI_TROPIC_INIT_N     =  XDCFI_TROPIC_REF_N,
    00228     XPCFI_MID_SUM_INIT_N    =  XDCFI_MID_SUM_REF_N,
    00229     XPCFI_MID_WIN_INIT_N    =  XDCFI_MID_WIN_REF_N,
    00230     XPCFI_SUBAR_SUM_INIT_N  =  XDCFI_SUBAR_SUM_REF_N,
    00231     XPCFI_SUBAR_WIN_INIT_N  =  XDCFI_SUBAR_WIN_REF_N,
    00232     XPCFI_LUT_INIT_N        =  XDCFI_LUT_REF_N
    00233   } AtmosModeEnum;
    00234
    00236   typedef enum
    00237   {
    00238     XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT      = 1,
    00239     XPCFI_TARG_EXTRA_AUX_RAD_CUR               = 2,
    00240     XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT_D    = 4,
    00241     XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT_2D   = 8,
    00242     XPCFI_TARG_EXTRA_AUX_RAD_CUR_D             = 16,
    00243     XPCFI_TARG_EXTRA_AUX_RAD_CUR_2D            = 32,
    00244     XPCFI_TARG_EXTRA_AUX_TARGET_NADIR_VEL      = 64,
    00245     XPCFI_TARG_EXTRA_AUX_MLST                  = 128,
    00246     XPCFI_TARG_EXTRA_AUX_TLST                  = 256,
    00247     XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD = 512,
    00248     XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD_D = 1024,
    00249     XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD_2D = 2048,
    00250     XPCFI_TARG_EXTRA_AUX_LOOK_DIR              = 4096,
    00251     XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT  = 8192,
    00252     XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT_D= 16384,
    00253     XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT_2D  = 32768,
    00254     XPCFI_TARG_EXTRA_AUX_ALL                   = XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT + XPCFI_TARG_EXTRA_AUX_RAD_CUR + \
    00255                                               XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT_D + XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT_2D +\
    00256                                               XPCFI_TARG_EXTRA_AUX_RAD_CUR_D + XPCFI_TARG_EXTRA_AUX_RAD_CUR_2D + XPCFI_TARG_EXTRA_AUX_TARGET_NADIR_VEL + \
    00257                                               XPCFI_TARG_EXTRA_AUX_MLST + XPCFI_TARG_EXTRA_AUX_TLST + \
    00258                                               XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD + XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD_D + \
    00259                                               XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD_2D + XPCFI_TARG_EXTRA_AUX_LOOK_DIR +\
    00260                                               XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT + XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT_D + \
    00261                                               XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT_2D
    00262
    00263   } TargetResAuxNameEnum;
    00264
    00266   typedef enum
    00267   {
    00268     XPCFI_TARG_EXTRA_MAIN_GEO                 = 1,
    00269     XPCFI_TARG_EXTRA_MAIN_GEO_D               = 2,
    00270     XPCFI_TARG_EXTRA_MAIN_GEO_2D              = 4,
    00271     XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP        = 8,
    00272     XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP_D      = 16,
    00273     XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP_2D     = 32,
    00274     XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP        = 64,
    00275     XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP_D      = 128,
    00276     XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP_2D     = 256,
    00277     XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE   = 512,
    00278     XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE_D = 1024,
    00279     XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE_2D= 2048,
    00280     XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE   = 4096,   /* AN-353 */
    00281     XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE_D = 8192,   /* AN-353 */
    00282     XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE_2D=16384,   /* AN-353 */
    00283     XPCFI_TARG_EXTRA_MAIN_ALL                 = XPCFI_TARG_EXTRA_MAIN_GEO + XPCFI_TARG_EXTRA_MAIN_GEO_D + XPCFI_TARG_EXTRA_MAIN_GEO_2D +\
    00284                                              XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP + XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP_D + XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP_2D + \
    00285                                              XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP + XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP_D + XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP_2D + \
    00286                                              XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE + XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE_D + XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE_2D + \
    00287                                              XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE + XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE_D + XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE_2D
    00288
    00289   }TargetResMainNameEnum;        /* CAREFUL: variables holding these values MUST be declared as long !!! */
    00290
    00292   typedef enum
    00293   {
    00294     XPCFI_SAT_DEFAULT     = XLCFI_SAT_DEFAULT,
    00295     XPCFI_SAT_DEFAULT1    = XLCFI_SAT_DEFAULT1,
    00296     XPCFI_SAT_DEFAULT2    = XLCFI_SAT_DEFAULT2,
    00297     XPCFI_SAT_DEFAULT3    = XLCFI_SAT_DEFAULT3,
    00298     XPCFI_SAT_DEFAULT4    = XLCFI_SAT_DEFAULT4,
    00299     XPCFI_SAT_DEFAULT5    = XLCFI_SAT_DEFAULT5,
    00300     XPCFI_SAT_DEFAULT6    = XLCFI_SAT_DEFAULT6,
    00301     XPCFI_SAT_DEFAULT7    = XLCFI_SAT_DEFAULT7,
    00302     XPCFI_SAT_DEFAULT8    = XLCFI_SAT_DEFAULT8,
    00303     XPCFI_SAT_DEFAULT9    = XLCFI_SAT_DEFAULT9,
    00304     XPCFI_SAT_ERS1        = XLCFI_SAT_ERS1,
    00305     XPCFI_SAT_ERS2        = XLCFI_SAT_ERS2,
    00306     XPCFI_SAT_ENVISAT     = XLCFI_SAT_ENVISAT,
    00307     XPCFI_SAT_METOP1      = XLCFI_SAT_METOP1,
    00308     XPCFI_SAT_METOP2      = XLCFI_SAT_METOP2,
    00309     XPCFI_SAT_METOP3      = XLCFI_SAT_METOP3,
    00310     XPCFI_SAT_CRYOSAT     = XLCFI_SAT_CRYOSAT,
    00311     XPCFI_SAT_ADM         = XLCFI_SAT_ADM,
    00312     XPCFI_SAT_GOCE        = XLCFI_SAT_GOCE,
    00313     XPCFI_SAT_SMOS        = XLCFI_SAT_SMOS,
    00314     XPCFI_SAT_TERRASAR    = XLCFI_SAT_TERRASAR,
    00315     XPCFI_SAT_EARTHCARE   = XLCFI_SAT_EARTHCARE,
    00316     XPCFI_SAT_SWARM_A     = XLCFI_SAT_SWARM_A,
    00317     XPCFI_SAT_SWARM_B     = XLCFI_SAT_SWARM_B,
    00318     XPCFI_SAT_SWARM_C     = XLCFI_SAT_SWARM_C,
    00319     XPCFI_SAT_SENTINEL_1A = XLCFI_SAT_SENTINEL_1A,
    00320     XPCFI_SAT_SENTINEL_1B = XLCFI_SAT_SENTINEL_1B,
    00321     XPCFI_SAT_SENTINEL_2  = XLCFI_SAT_SENTINEL_2,
    00322     XPCFI_SAT_SENTINEL_3  = XLCFI_SAT_SENTINEL_3,
    00323     XPCFI_SAT_SEOSAT      = XLCFI_SAT_SEOSAT,
    00324     XPCFI_SAT_SENTINEL_1C = XLCFI_SAT_SENTINEL_1C,
    00325     XPCFI_SAT_SENTINEL_2A = XLCFI_SAT_SENTINEL_2A,
    00326     XPCFI_SAT_SENTINEL_2B = XLCFI_SAT_SENTINEL_2B,
    00327     XPCFI_SAT_SENTINEL_2C = XLCFI_SAT_SENTINEL_2C,
    00328     XPCFI_SAT_SENTINEL_3A = XLCFI_SAT_SENTINEL_3A,
    00329     XPCFI_SAT_SENTINEL_3B = XLCFI_SAT_SENTINEL_3B,
    00330     XPCFI_SAT_SENTINEL_3C = XLCFI_SAT_SENTINEL_3C,
    00331     XPCFI_SAT_GENERIC     = XLCFI_SAT_GENERIC,
    00332     // AN-353
    00333     XPCFI_SAT_GENERIC_GEO = XLCFI_SAT_GENERIC_GEO,
    00334     XPCFI_SAT_MTG         = XLCFI_SAT_MTG
    00335     // END AN-353
    00336   } SatIdPointingEnum;
    00337
    00339   typedef enum  // Flag to indicate the grade of a derivative
    00340   {
    00341     XPCFI_NO_DER  = XLCFI_NO_DER,
    00342     XPCFI_DER_1ST = XLCFI_DER_1ST,
    00343     XPCFI_DER_2ND = XLCFI_DER_2ND
    00344   } DerivPointingEnum;
    00345
    00346
    00348   typedef enum
    00349   {
    00350     XPCFI_TIME_UNDEF = XLCFI_TIME_UNDEF,
    00351     XPCFI_TIME_TAI   = XLCFI_TIME_TAI,
    00352     XPCFI_TIME_UTC   = XLCFI_TIME_UTC,
    00353     XPCFI_TIME_UT1   = XLCFI_TIME_UT1,
    00354     XPCFI_TIME_GPS   = XLCFI_TIME_GPS
    00355   } TimeRefPointingEnum;
    00356
    00358   typedef enum
    00359   {
    00360     XPCFI_MODE_FLAG_LOCATION  = XLCFI_MODE_FLAG_LOCATION,
    00361     XPCFI_MODE_FLAG_DIRECTION = XLCFI_MODE_FLAG_DIRECTION
    00362   } ModeFlagPointingEnum;
    00363
    00365   typedef enum
    00366   {
    00367     XPCFI_DEM_ACE_MODEL = XDCFI_DEM_ACE_MODEL
    00368   } DemModelPointingEnum;
    00369
    00371   typedef enum
    00372   {
    00373     XPCFI_LOAD_TILE_SET,
    00374     XPCFI_CLEAR_CACHE,
    00375     XPCFI_FREE_CACHE,
    00376     XPCFI_SET_MAX_SIZE
    00377   } DemConfigEnum; // AN-487
    00378
    00380   typedef enum
    00381   {
    00382     XPCFI_AZ_EL_LIST,
    00383     XPCFI_AZ_EL_STRIP,
    00384     XPCFI_AZ_EL_GRID
    00385   } AzElTypeEnum; // AN-470
    00386
    00387   //------------------------------------------------------
    00388   // DATA STRUCTURES
    00389   //------------------------------------------------------
    00390
    00392   class AttDataRec
    00393   {
    00394     public:
    00395       long timeRef;
    00396       double time;
    00397       double quaternion[4];
    00398       double angles[3];
    00399
    00401       AttDataRec()
    00402       {
    00403         timeRef = 0;
    00404         time = 0.;
    00405         for ( int i = 0 ; i < 4 ; i++ )
    00406         {
    00407           quaternion[i] = 0.;
    00408           if ( i < 3 )
    00409             angles[i] = 0.;
    00410         }
    00411       }
    00412
    00414       AttDataRec( long timeReference, double timeIn,
    00415                   double *quaternions, double *angle )
    00416       {
    00417         timeRef = timeReference;
    00418         time    = timeIn;
    00419
    00420         quaternion[0] = quaternions[0];
    00421         quaternion[1] = quaternions[1];
    00422         quaternion[2] = quaternions[2];
    00423         quaternion[3] = quaternions[3];
    00424
    00425         angles[0] = angle[0];
    00426         angles[1] = angle[1];
    00427         angles[2] = angle[2];
    00428       }
    00429   };
    00430
    00432   class AttFileModel
    00433   {
    00434     public:
    00435       long fileModel;
    00436       double valTime0;
    00437       double valTime1;
    00438       long dataType;
    00439       long inertialFrame;
    00440       double maxGap;
    00441       vector<AttDataRec> attData;
    00442   };
    00443
    00445   class StarTrackerAux
    00446   {
    00447     public:
    00448       long starTrId;
    00449       long aberrCorrection;
    00450       double strAttRot[3][3];
    00451   };
    00452
    00454   class SatAttFileModel
    00455   {
    00456     public:
    00457       long fileModel;
    00458       double valTime0;
    00459       double valTime1;
    00460       long dataType;
    00461       long inertialFrame;
    00462       double maxGap;
    00463       vector<AttDataRec> attData;
    00464       StarTrackerAux auxData;
    00465       vector<StarTracker> tmData;
    00466   };
    00467
    00469   class QuatPlusMatrixModel
    00470   {
    00471     public:
    00472       long inertialFrame;
    00473       vector<AttRec> quat;
    00474       double rotMatrix[3][3];
    00475   };
    00476
    00478   class QuatPlusAnglesModel
    00479   {
    00480     public:
    00481       long inertialFrame;
    00482       vector<AttRec> quat;
    00483       double angles[3];
    00484   };
    00485
    00487   class AtmosIdData
    00488   {
    00489     public:
    00490       double atmMaxAltStd;
    00491       double atmMaxAltUser;
    00492   };
    00493
    00495   class AzElDefinition
    00496   {
    00497     public:
    00498       long az0Axis;
    00499       long az90Axis;
    00500       long el90Axis;
    00501   };
    00502
    00504   class CsTra
    00505   {
    00506     public:
    00507       bool azelFlag;
    00508       AzElDefinition azelDef;
    00509       CsRlEnum refi;
    00510       AttFrEnum reff;
    00511       bool ambFlag;
    00512       DerivPointingEnum deriv;
    00513       double v[3];
    00514       double vd[3];
    00515       double v2d[3];
    00516       double m[3][3];
    00517       double md[3][3];
    00518       double m2d[3][3];
    00519   };
    00520
    00522   class AttitudeData
    00523   {
    00524     public:
    00525       long model;
    00526       StateVector satVector;
    00527       long sourceFrame;
    00528       long targetFrame;
    00529       CsTra satMat;
    00530       double offset[3];
    00531       CsTra attitudeEF;
    00532   };
    00533
    00535   class ParDer
    00536   {
    00537     public:
    00538       DerivPointingEnum deriv;
    00539       double p;
    00540       double pd;
    00541       double p2d;
    00542   };
    00543
    00545   class GenericTargetData
    00546   {
    00547     public:
    00548       long timeRef;
    00549       double time;
    00550       Coord satVector;
    00551       long iray;
    00552       double freq;
    00553       long deriv;
    00554   };
    00555
    00557   class TargetData
    00558   {
    00559     public:
    00560       long targetNumber;   // AN-470.
    00561       Coord tarVector;
    00562       ParDer zTan;
    00563       ParDer range;
    00564       ParDer time;
    00565       Coord tarSatVector;
    00566       Coord satTarVector;
    00567
    00568       TargetData const &operator=(TargetData const &tarDat)
    00569       {
    00570         return tarDat;
    00571       }
    00572   };
    00573
    00575   class TargetIdData
    00576   {
    00577     public:
    00578       GenericTargetData genericData;
    00579       long earthCrossed;
    00580       long atmCrossed;
    00581       vector<TargetData> user;
    00582       vector<TargetData> los;
    00583       bool earthFlag;
    00584       TargetData earth;
    00585       Coord exitAtmVector;
    00586   };
    00587
    00589   class LatLonArea
    00590   {
    00591     public:
    00592       double lonMin;
    00593       double lonMax;
    00594       double latMin;
    00595       double latMax;
    00596   }; // AN-487
    00597
    00599   class DemIdConfig
    00600   {
    00601     public:
    00602       long command;
    00603       long maxCacheSize;
    00604       LatLonArea area;
    00605
    00606   }; // AN-487
    00607
    00609   class AzimuthElevation
    00610   {
    00611     public:
    00612       double azimuth;
    00613       double elevation;
    00614       double azimuthRate;
    00615       double elevationRate;
    00616   }; // AN-470
    00617
    00619   class AzimuthElevationList
    00620   {
    00621     public:
    00622       vector<AzimuthElevation> azElList;
    00623   }; // AN-470
    00624
    00626   class AzimuthElevationStrip
    00627   {
    00628     public:
    00629       double azimuth;
    00630       double minElevation;
    00631       double maxElevation;
    00632       double stepElevation;
    00633   }; // AN-470
    00634
    00636   class AzimuthElevationGrid
    00637   {
    00638     public:
    00639       double minAzimuth;
    00640       double maxAzimuth;
    00641       double stepAzimuth;
    00642       double minElevation;
    00643       double maxElevation;
    00644       double stepElevation;
    00645   }; // AN-470
    00646
    00648   class InstrumentData
    00649   {
    00650     public:
    00651       long type;
    00652       AzimuthElevationList azimuthElevationList;
    00653       AzimuthElevationStrip azimuthElevationStrip;
    00654       AzimuthElevationGrid  azimuthElevationGrid;
    00655       double signalFrequency;
    00656   }; // AN-470
    00657
    00659   class TargetOutput
    00660   {
    00661     public:
    00662       long numUserTarget;
    00663       vector<long> numLosTarget;
    00664   }; // AN-470
    00665
    00666 } // closing namespace
    00667
    00668 #endif