DEIMOS
Earth Observation Mission CFI Software
Lib Software User Manual
ESA

EECFI::StateVector Class Reference

Base class for StateVector objects. More...

Inheritance diagram for EECFI::StateVector:
EECFI::CfiClass

List of all members.

Public Member Functions

 StateVector ()
 Default constructor.
 StateVector (const Time &time, const Coord &coord)
 Class constructor with parameters.
 StateVector (const StateVector &other)
 ~StateVector () NOEXCEPT
 Class destructor.
StateVectoroperator= (const StateVector &other)
StateVector change (const ModelId &modelId, long deriv, long newCS) const
 Change coordinate system.
void setSun (const ModelId &modelId, Time &time)
 Set Sun state vector.
void setMoon (const ModelId &modelId, Time &time)
 Set Moon state vector.
void setPlanet (const ModelId &modelId, Time &time, long planet)
 Set state vector for the requested planet.
void getPositionOnOrbit (const ModelId &modelId, long angleType, long deriv, double &angle, double &angleRate, double &angleRateRate) const
 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]

Default constructor.

Referenced by change().

EECFI::StateVector::StateVector ( const Time time,
const Coord coord 
)

Class constructor with parameters.

Parameters:
time Time of the state vector.
coord Coordinates.
EECFI::StateVector::StateVector ( const StateVector other  ) 

Copy constructor.

Parameters:
other The StateVector to copy from
EECFI::StateVector::~StateVector (  )  [inline]

Class destructor.


Member Function Documentation

StateVector EECFI::StateVector::change ( const ModelId modelId,
long  deriv,
long  newCS 
) const

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:

change_coord.jpg

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.

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.

References EECFI::Coord::acc, coord, EECFI::Coord::cs, EECFI::Coord::pos, EECFI::Time::ref, StateVector(), EECFI::CfiClass::throwWarn, EECFI::Time::time, time, and EECFI::Coord::vel.

void EECFI::StateVector::getPositionOnOrbit ( const ModelId modelId,
long  angleType,
long  deriv,
double &  angle,
double &  angleRate,
double &  angleRateRate 
) const

Get the true latitude corresponding to the state vector.

Get the true/mean latitude describing the position on the orbit. The latitude angle is the angle between the satellite position and the intersection of the orbital plane with a given reference plane. Asumption: the state vector is given in EF.
COMPATIBILITY NOTE: The output of this function is consistent with the calculation of orbit number and time from ANX within the EO CFI only when the required angle type is compliant with [EO_OPS] and [MCD] i.e. either ToD or EF.

Parameters:
modelId Model Id.
angleType Type of angle(AngleTypeEnum). It defines the reference plane.
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].

References EECFI::Coord::acc, coord, EECFI::Coord::pos, EECFI::Time::ref, EECFI::CfiClass::throwWarn, EECFI::Time::time, time, and EECFI::Coord::vel.

StateVector & EECFI::StateVector::operator= ( const StateVector other  ) 

Copy assigment operator.

Parameters:
other The SdfFile to copy/assign from

References coord, and time.

void EECFI::StateVector::setMoon ( const ModelId modelId,
Time time 
)

Set Moon state vector.

It is computed the position and velocity in EF CS.

Parameters:
modelId Model id.
time Requested time

References coord, EECFI::Time::ref, EECFI::CfiClass::throwWarn, and EECFI::Time::time.

void EECFI::StateVector::setPlanet ( const ModelId modelId,
Time time,
long  planet 
)

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

References coord, EECFI::Time::ref, EECFI::CfiClass::throwWarn, and EECFI::Time::time.

void EECFI::StateVector::setSun ( const ModelId modelId,
Time time 
)

Set Sun state vector.

It is computed the position and velocity in EF CS.

Parameters:
modelId Model id.
time Requested time.

References coord, EECFI::Time::ref, EECFI::CfiClass::throwWarn, and EECFI::Time::time.


Member Data Documentation


Generated on Mon Dec 11 2023 13:28:22 for by doxygen 1.7.1