org.orekit.attitudes
Class CelestialBodyPointed

java.lang.Object
  extended by org.orekit.attitudes.AbstractAttitudeLaw
      extended by org.orekit.attitudes.CelestialBodyPointed
All Implemented Interfaces:
Serializable, AttitudeLaw, AttitudeProvider

public class CelestialBodyPointed
extends AbstractAttitudeLaw

This class handles a celestial body pointed attitude provider.

The celestial body pointed law is defined by two main elements:

The celestial body implicitly defines two of the three degrees of freedom and the phasing reference defines the remaining degree of freedom. This definition can be represented as first aligning exactly the satellite pointing axis to the current direction of the celestial body, and then to find the rotation around this axis such that the satellite phasing axis is in the half-plane defined by a cut line on the pointing axis and containing the celestial phasing reference.

In order for this definition to work, the user must ensure that the phasing reference is never aligned with the pointing reference. Since the pointed body moves as the date changes, this should be ensured regardless of the date. A simple way to do this for Sun, Moon or any planet pointing is to choose a phasing reference far from the ecliptic plane. Using Vector3D.PLUS_K, the equatorial pole, is perfect in these cases.

Instances of this class are guaranteed to be immutable.

Author:
Luc Maisonobe
See Also:
Serialized Form

Constructor Summary
CelestialBodyPointed(Frame pCelestialFrame, PVCoordinatesProvider pPointedBody, Vector3D pPhasingCel, Vector3D pPointingSat, Vector3D pPhasingSat)
          Creates new instance.
 
Method Summary
 Attitude getAttitude(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame)
          Compute the attitude corresponding to an orbital state.
 
Methods inherited from class org.orekit.attitudes.AbstractAttitudeLaw
getAttitude, getSpinDerivativesComputation, setSpinDerivativesComputation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CelestialBodyPointed

public CelestialBodyPointed(Frame pCelestialFrame,
                            PVCoordinatesProvider pPointedBody,
                            Vector3D pPhasingCel,
                            Vector3D pPointingSat,
                            Vector3D pPhasingSat)
Creates new instance.

Parameters:
pCelestialFrame - frame in which phasingCel is defined
pPointedBody - celestial body to point at
pPhasingCel - phasing reference, in celestial frame
pPointingSat - satellite vector defining the pointing direction
pPhasingSat - phasing reference, in satellite frame
Method Detail

getAttitude

public final Attitude getAttitude(PVCoordinatesProvider pvProv,
                                  AbsoluteDate date,
                                  Frame frame)
                           throws OrekitException
Compute the attitude corresponding to an orbital state.

Parameters:
pvProv - local position-velocity provider around current date
date - current date
frame - reference frame from which attitude is computed
Returns:
attitude attitude on the specified date and position-velocity state
Throws:
OrekitException - if attitude cannot be computed


Copyright © 2017 CNES. All Rights Reserved.