|
Earth Observation Mission CFI Software Lib Software User Manual |
|
Base class for StateVector objects. More...
Public Member Functions | |
| StateVector () | |
| Class constructor (empty constructor). | |
| StateVector (Time &time, Coord &coord) | |
| Class constructor with parameters. | |
| ~StateVector () | |
| Class destructor. | |
| StateVector | change (const ModelId &modelId, long deriv, long newCS) throw (CfiError) |
| Change coordinate system. | |
| void | setSun (const ModelId &modelId, Time &time) throw (CfiError) |
| Set Sun state vector. | |
| void | setMoon (const ModelId &modelId, Time &time) throw (CfiError) |
| Set Moon state vector. | |
| void | setPlanet (const ModelId &modelId, Time &time, long planet) throw (CfiError) |
| Set state vector for the requested planet. | |
| void | getPositionOnOrbit (const ModelId &modelId, long angleType, long deriv, double &angle, double &angleRate, double &angleRateRate) throw (CfiError) |
| Get the true latitude corresponding to the state vector. | |
Public Attributes | |
| Time | time |
| Time object. | |
| Coord | coord |
| Coordinates. | |
Base class for StateVector objects.
| EECFI::StateVector::StateVector | ( | ) | [inline] |
Class constructor (empty constructor).
Class constructor with parameters.
Class constructor (Empty constructor).
| time | Time of the state vector. | |
| coord | Coordinates. |
| EECFI::StateVector::~StateVector | ( | ) | [inline] |
Class destructor.
| StateVector EECFI::StateVector::change | ( | const ModelId & | modelId, | |
| long | deriv, | |||
| long | newCS | |||
| ) | throw (CfiError) |
Change coordinate system.
This method transforms a cartesian state vector between different reference frames. The transformation are done sequentially following the schema in next figure:
The attribute Time must have initialized time correlations. . Note that the transformations between BM2000, HM2000 and GM2000 involve a translation of the input vectors (TR3 and TR3’). In case that the input vector is a direction and not a location, the transformation should only apply the rotations between frames, so the transformation should be done in several steps with StateVector::change, skipping the translations.
Permitted CS = XLCFI_CS_GALACTIC, XLCFI_CS_BM1950, XLCFI_CS_BM2000, XLCFI_CS_HM2000, XLCFI_CS_GM2000, XLCFI_CS_MOD, XLCFI_CS_TOD or XLCFI_CS_EF.
Class destructor.
| modelId | Model Id. | |
| deriv | derivative to be computed (XLCFI_NO_DER or XLCFI_1ST_DER). | |
| newCS | New coordinate frame (CoordinateSystemEnum). |
| void EECFI::StateVector::getPositionOnOrbit | ( | const ModelId & | modelId, | |
| long | angleType, | |||
| long | deriv, | |||
| double & | angle, | |||
| double & | angleRate, | |||
| double & | angleRateRate | |||
| ) | throw (CfiError) |
Get the true latitude corresponding to the state vector.
Get the true/mean latitude describing the position on the orbit. Asumption: the state vector is given in EF.
| modelId | Model Id. | |
| angleType | Type of angle(AngleTypeEnum). It defines the reference plane. (Note: XLCFI_ANGLE_TYPE_MEAN_LAT_TOD is not supported) | |
| deriv | Derivative (DerivEnum). | |
| angle | [OUTPUT] Angle describing the position in the orbit [deg]. | |
| angleRate | [OUTPUT] Angle describing the position in the orbit-rate [deg/s]. | |
| angleRateRate | [OUTPUT] Angle describing the position in the orbit-rate-rate [deg/s^2]. |
Set Moon state vector.
It is computed the position and velocity in EF CS.
| modelId | Model id. | |
| time | Requested time |
| void EECFI::StateVector::setPlanet | ( | const ModelId & | modelId, | |
| Time & | time, | |||
| long | planet | |||
| ) | throw (CfiError) |
Set state vector for the requested planet.
It is computed the position and velocity in EF CS.
| modelId | Model id. | |
| time | requested time. | |
| planet | (PlanetEnum). |
Set Sun state vector.
It is computed the position and velocity in EF CS.
| modelId | Model id. | |
| time | Requested time. |
Coordinates.
Time object.
1.7.1