| Earth Observation Mission CFI Software Lib Software User Manual for JAVA |

Public Member Functions | Static Public Member Functions

# EECFI.LibFunc Class Reference

Base class for LibFunc objects. More...

Inheritance diagram for EECFI.LibFunc:

List of all members.

## Public Member Functions
| LibFunc ()
| Class constructor (using satellite enumeration value).
## Static Public Member Functions
static native double[][] | eulerToMatrix (double eulerAngles[]) throws CfiError
| Get rotation matrix from Euler angles.
static native double[] | matrixToEuler (double matrix[][]) throws CfiError
| Get Euler angles from rotation matrix.
static native double[] | getRotationAngles (double xsInit[], double ysInit[], double zsInit[], double xsFin[], double ysFin[], double zsFin[]) throws CfiError
| Get rotation angles between two sets of orthonormal right-handed unit vectors.
static native double[][] | getRotatedVectors (double xsInit[], double ysInit[], double zsInit[], double angle[]) throws CfiError
| Rotate a set of unit angle vectors.
static native double[][] | quaternionsToVectors (double quaternions[]) throws CfiError
| Change from quaternions to vectors.
static native double[] | vectorsToQuaternions (double uxVec[], double uyVec[], double uzVec[]) throws CfiError
| Change form vectors to quaternions.
static native double[] | quaternionsInterpol (final QuaternionsInterpolationCfg cfg, double time_1, double q1[], double time_2, double q2[], double time_out) throws CfiError
| The method performs, given 2 input quaternions q1 and q2, an interpolation for the requested time, obtaining the interpolated quaternion as output.

## Detailed Description

Base class for LibFunc objects.

## Constructor & Destructor Documentation

EECFI.LibFunc.LibFunc | ( |  | ) |

Class constructor (using satellite enumeration value).

## Member Function Documentation

EECFI.LibFunc::eulerToMatrix | ( | double | eulerAngles[] | ) | throws CfiError`[static]`

Get rotation matrix from Euler angles.

Parameters:

  | eulerAngles | Euler angles.

Returns:
  Rotation matrix.

EECFI.LibFunc::getRotatedVectors | ( | double | xsInit[],
|  | double | ysInit[],
|  | double | zsInit[],
|  | double | angle[] |
| ) |  |  | throws CfiError`[static]`

Rotate a set of unit angle vectors.

Parameters:

  | xsInit | Unitary direction vector along the X-axes of the initial attitude frame.
  | ysInit | Unitary direction vector along the Y-axes of the initial attitude frame.
  | zsInit | Unitary direction vector along the Z-axes of the initial attitude frame.
  | angle | Angles (pitch, roll and yaw) between initial and final Attitude Frames (deg [-180,180)).

Returns:
  Unitary direction vector along the X, Y, Z axis of the final attitude frame.

EECFI.LibFunc::getRotationAngles | ( | double | xsInit[],
|  | double | ysInit[],
|  | double | zsInit[],
|  | double | xsFin[],
|  | double | ysFin[],
|  | double | zsFin[] |
| ) |  |  | throws CfiError`[static]`

Get rotation angles between two sets of orthonormal right-handed unit vectors.

Parameters:

  | xsInit | Unitary direction vector along the X-axes of the initial attitude frame.
  | ysInit | Unitary direction vector along the Y-axes of the initial attitude frame.
  | zsInit | Unitary direction vector along the Z-axes of the initial attitude frame.
  | xsFin | Unitary direction vector along the X-axes of the final attitude frame.
  | ysFin | Unitary direction vector along the Y-axes of the final attitude frame.
  | zsFin | Unitary direction vector along the Z-axes of the final attitude frame.

Returns:
  Angles (pitch, roll and yaw) between initial and final Attitude Frames (deg [-180,180)).

EECFI.LibFunc::matrixToEuler | ( | double | matrix[][] | ) | throws CfiError`[static]`

Get Euler angles from rotation matrix.

Parameters:

  | matrix | Rotation matrix.

Returns:
  Euler angles.

EECFI.LibFunc::quaternionsInterpol | ( | final QuaternionsInterpolationCfg | cfg,
|  | double | time_1,
|  | double | q1[],
|  | double | time_2,
|  | double | q2[],
|  | double | time_out |
| ) |  |  | throws CfiError`[static]`

The method performs, given 2 input quaternions q1 and q2, an interpolation for the requested time, obtaining the interpolated quaternion as output.

Notes:

- The algorithm to be used for interpolation is given as input in QuaternionsInterpolationCfg structure.
- Currently the supported algorithms are:
  - Slerp (see details: Slerp)
- If the requested time is out of the interval defined by the input quaternions, then extrapolation is used and a warning is raised. The extrapolation degrades with the distance to the interval defined by input quaternions. In the following table the degradation for some time distances are shown:

  Time out of interval [seconds] | Error in rotation angles [deg] (Quaternions time step 1 second) | Error in rotation angles [deg] (Quaternions time step 10 seconds)
  --- | --- | ---
  1 | 0.000005 | 0.00005
  10 | 0.0003 | 0.0005
  100 | 0.06 | 0.07
  500 | 0.96 | 0.95
  1000 | 2.3 | 2.3

Parameters:

  | cfg | Configuration parameters used by interpolation.
  | time_1 | Time for quaternion q1.
  | q1 | First quaternion (for time t1).
  | time_2 | Time for quaternion q2.
  | q2 | Second quaternion (for time t2).
  | time_out | Time interpolation parameter.

Returns:
  Result of quaternion interpolation.

EECFI.LibFunc::quaternionsToVectors | ( | double | quaternions[] | ) | throws CfiError`[static]`

Change from quaternions to vectors.

Parameters:

  | quaternions | Input quaternion vector.

Returns:
  Unitary direction vector along the X, Y, Z axis.

EECFI.LibFunc::vectorsToQuaternions | ( | double | uxVec[],
|  | double | uyVec[],
|  | double | uzVec[] |
| ) |  |  | throws CfiError`[static]`

Change form vectors to quaternions.

Parameters:

  | uxVec | Unitary direction vector along the X-axes.
  | uyVec | Unitary direction vector along the Y-axes.
  | uzVec | Unitary direction vector along the Z-axes.

Returns:
  Equivalent quaternion.