org.orekit.attitudes.kinematics
Class AbstractOrientationFunction

java.lang.Object
  extended by org.orekit.attitudes.kinematics.AbstractOrientationFunction
All Implemented Interfaces:
UnivariateVectorFunction, OrientationFunction

public abstract class AbstractOrientationFunction
extends Object
implements OrientationFunction

This abstract class is a time-dependent function representing an orientation.

Since:
1.3
Version:
$Id: AbstractOrientationFunction.java 12495 2015-03-05 14:43:16Z maggiorani $
Author:
Tiziana Sabatini
Concurrency :
conditionally thread-safe
Concurrency comment :
thread-safe if the attribute differentiator is thread-safe and if the implementation of this abstract class is thread-safe too.

Constructor Summary
AbstractOrientationFunction(AbsoluteDate zeroDate)
          Constructor setting a default finite differences differentiator.
AbstractOrientationFunction(AbsoluteDate zeroDate, UnivariateVectorFunctionDifferentiator inDifferentiator)
           
 
Method Summary
 Vector3D computeSpin(AbsoluteDate date)
          Estimate the spin at a given date from the current OrientationFunction using the quaternions formula: Ω = 2 * Q' dQ, where Q' is the conjugate of the quaternion and dQ is the derivative of the quaternion at the given date.
 Vector3DFunction computeSpinFunction()
          Estimate the Vector3DFunction from the current OrientationFunction using the quaternions formula: Ω = 2 * Q' dQ, where Q' is the conjugate of the quaternion and dQ is the derivative of the quaternion at the given date.
 OrientationFunction derivative()
          Compute the OrientationFunction representing the first derivative of the current orientation function components.
The differentiation is performed using a numerical differentiation method.
 Vector3D estimateRate(AbsoluteDate date, double dt)
          Estimate the spin at a given date from the current OrientationFunction using the AngularCoordinates.estimateRate(Rotation, Rotation, double) method.
 Vector3DFunction estimateRateFunction(double dt)
          Estimate the Vector3DFunction from the current OrientationFunction using the AngularCoordinates.estimateRate(Rotation, Rotation, double) method.
 UnivariateVectorFunctionDifferentiator getDifferentiator()
          Get the differentiator.
abstract  Rotation getOrientation(AbsoluteDate date)
          Get the orientation at a given date.
 AbsoluteDate getZeroDate()
          Get the date at x = 0.
 double[] value(double x)
          Compute the quaternion components of the orientation at the (zero + x) date.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractOrientationFunction

public AbstractOrientationFunction(AbsoluteDate zeroDate)
Constructor setting a default finite differences differentiator.

Parameters:
zeroDate - the date at x = 0.

AbstractOrientationFunction

public AbstractOrientationFunction(AbsoluteDate zeroDate,
                                   UnivariateVectorFunctionDifferentiator inDifferentiator)
Parameters:
zeroDate - the date at x = 0.
inDifferentiator - the differentiation method used to compute the first derivative of the current orientation function components.
Method Detail

getOrientation

public abstract Rotation getOrientation(AbsoluteDate date)
                                 throws OrekitException
Get the orientation at a given date. This method must be implemented in the inherited classes.

Specified by:
getOrientation in interface OrientationFunction
Parameters:
date - the date
Returns:
the orientation at a given date; the orientation is an instance of the Rotation class.
Throws:
OrekitException - if rotation cannot be computed

getZeroDate

public final AbsoluteDate getZeroDate()
Get the date at x = 0.

Returns:
the date at x = 0.

getDifferentiator

public final UnivariateVectorFunctionDifferentiator getDifferentiator()
Get the differentiator.

Returns:
the differentiator.

value

public final double[] value(double x)
Compute the quaternion components of the orientation at the (zero + x) date.

Specified by:
value in interface UnivariateVectorFunction
Parameters:
x - the time from the date zero for which the function value should be computed
Returns:
the quaternion components representing the orientation at the given date.
Throws:
OrekitExceptionWrapper - if problems to compute value (frame transformation, or other)

estimateRateFunction

public final Vector3DFunction estimateRateFunction(double dt)
Estimate the Vector3DFunction from the current OrientationFunction using the AngularCoordinates.estimateRate(Rotation, Rotation, double) method.

Specified by:
estimateRateFunction in interface OrientationFunction
Parameters:
dt - time elapsed between the dates of the two orientations
Returns:
the spin function.

estimateRate

public final Vector3D estimateRate(AbsoluteDate date,
                                   double dt)
                            throws OrekitException
Estimate the spin at a given date from the current OrientationFunction using the AngularCoordinates.estimateRate(Rotation, Rotation, double) method.

Parameters:
date - the current date
dt - time elapsed between the dates of the two orientations
Returns:
the spin at the current date.
Throws:
OrekitException - if the rate cannot be estimated

computeSpinFunction

public final Vector3DFunction computeSpinFunction()
Estimate the Vector3DFunction from the current OrientationFunction using the quaternions formula: Ω = 2 * Q' dQ, where Q' is the conjugate of the quaternion and dQ is the derivative of the quaternion at the given date.

Returns:
the spin function.

computeSpin

public final Vector3D computeSpin(AbsoluteDate date)
                           throws OrekitException
Estimate the spin at a given date from the current OrientationFunction using the quaternions formula: Ω = 2 * Q' dQ, where Q' is the conjugate of the quaternion and dQ is the derivative of the quaternion at the given date.

Parameters:
date - the current date
Returns:
the spin at the current date.
Throws:
OrekitException - if the spin cannot be computed

derivative

public OrientationFunction derivative()
Compute the OrientationFunction representing the first derivative of the current orientation function components.
The differentiation is performed using a numerical differentiation method. This method can be overridden if an analytical differentiation should be performed instead.

Specified by:
derivative in interface OrientationFunction
Returns:
a new OrientationFunction containing the first derivative of the orientation function components.


Copyright © 2016 CNES. All Rights Reserved.