| Earth Observation Mission CFI Software Lib Software User Manual |

Public Member Functions | Public Attributes

# EECFI::StateVector Class Reference

Base class for StateVector objects. More...

Inheritance diagram for EECFI::StateVector:

List of all members.

## 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.

## Detailed Description

Base class for StateVector objects.

## Constructor & Destructor Documentation

EECFI::StateVector::StateVector | ( |  | ) | `[inline]`

Class constructor (empty constructor).

EECFI::StateVector::StateVector | ( | Time & | time,
|  | Coord & | coord |
| ) |  |  |

Class constructor with parameters.

Class constructor (Empty constructor).

Parameters:

  | time | Time of the state vector.
  | coord | Coordinates.

EECFI::StateVector::~StateVector | ( |  | ) | `[inline]`

Class destructor.

## Member Function Documentation

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.

Parameters:

  | modelId | Model Id.
  | deriv | derivative to be computed (XLCFI_NO_DER or XLCFI_1ST_DER).
  | newCS | New coordinate frame (CoordinateSystemEnum).

Returns:
  State vector in new reference system.

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.

Parameters:

  | 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].

void EECFI::StateVector::setMoon | ( | const ModelId & | modelId,
|  | Time & | time |
| ) |  |  | throw (CfiError)

Set Moon state vector.

It is computed the position and velocity in EF CS.

Parameters:

  | 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.

Parameters:

  | modelId | Model id.
  | time | requested time.
  | planet | (PlanetEnum).

void EECFI::StateVector::setSun | ( | const ModelId & | modelId,
|  | Time & | time |
| ) |  |  | throw (CfiError)

Set Sun state vector.

It is computed the position and velocity in EF CS.

Parameters:

  | modelId | Model id.
  | time | Requested time.

## Member Data Documentation

Coord EECFI::StateVector::coord

Coordinates.

Time EECFI::StateVector::time

Time object.