Class CelestialBodyPointed
- java.lang.Object
-
- org.orekit.attitudes.CelestialBodyPointed
-
- All Implemented Interfaces:
AttitudeProvider
,EventDetectorsProvider
public class CelestialBodyPointed extends Object implements AttitudeProvider
This class handles a celestial body pointed attitude provider.The celestial body pointed law is defined by two main elements:
- a celestial body towards which some satellite axis is exactly aimed
- a phasing reference defining the rotation around the pointing axis
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
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Constructor Summary
Constructors Constructor Description CelestialBodyPointed(Frame celestialFrame, ExtendedPositionProvider pointedBody, Vector3D phasingCel, Vector3D pointingSat, Vector3D phasingSat)
Creates new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends CalculusFieldElement<T>>
FieldAttitude<T>getAttitude(FieldPVCoordinatesProvider<T> pvProv, FieldAbsoluteDate<T> date, Frame frame)
Compute the attitude corresponding to an orbital state.Attitude
getAttitude(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame)
Compute the attitude corresponding to an orbital state.<T extends CalculusFieldElement<T>>
FieldRotation<T>getAttitudeRotation(FieldPVCoordinatesProvider<T> pvProv, FieldAbsoluteDate<T> date, Frame frame)
Compute the attitude-related rotation corresponding to an orbital state.Rotation
getAttitudeRotation(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame)
Compute the attitude-related rotation corresponding to an orbital state.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.attitudes.AttitudeProvider
getEventDetectors, getFieldEventDetectors
-
Methods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getEventDetectors, getFieldEventDetectors
-
-
-
-
Constructor Detail
-
CelestialBodyPointed
public CelestialBodyPointed(Frame celestialFrame, ExtendedPositionProvider pointedBody, Vector3D phasingCel, Vector3D pointingSat, Vector3D phasingSat)
Creates new instance.- Parameters:
celestialFrame
- frame in whichphasingCel
is definedpointedBody
- celestial body to point atphasingCel
- phasing reference, in celestial framepointingSat
- satellite vector defining the pointing directionphasingSat
- phasing reference, in satellite frame
-
-
Method Detail
-
getAttitude
public Attitude getAttitude(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame)
Compute the attitude corresponding to an orbital state.- Specified by:
getAttitude
in interfaceAttitudeProvider
- Parameters:
pvProv
- local position-velocity provider around current datedate
- current dateframe
- reference frame from which attitude is computed- Returns:
- attitude on the specified date and position-velocity state
-
getAttitudeRotation
public Rotation getAttitudeRotation(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame)
Compute the attitude-related rotation corresponding to an orbital state.- Specified by:
getAttitudeRotation
in interfaceAttitudeProvider
- Parameters:
pvProv
- local position-velocity provider around current datedate
- current dateframe
- reference frame from which attitude is computed- Returns:
- attitude-related rotation on the specified date and position-velocity state
-
getAttitude
public <T extends CalculusFieldElement<T>> FieldAttitude<T> getAttitude(FieldPVCoordinatesProvider<T> pvProv, FieldAbsoluteDate<T> date, Frame frame)
Compute the attitude corresponding to an orbital state.- Specified by:
getAttitude
in interfaceAttitudeProvider
- Type Parameters:
T
- type of the field elements- Parameters:
pvProv
- local position-velocity provider around current datedate
- current dateframe
- reference frame from which attitude is computed- Returns:
- attitude on the specified date and position-velocity state
-
getAttitudeRotation
public <T extends CalculusFieldElement<T>> FieldRotation<T> getAttitudeRotation(FieldPVCoordinatesProvider<T> pvProv, FieldAbsoluteDate<T> date, Frame frame)
Compute the attitude-related rotation corresponding to an orbital state.- Specified by:
getAttitudeRotation
in interfaceAttitudeProvider
- Type Parameters:
T
- type of the field elements- Parameters:
pvProv
- local position-velocity provider around current datedate
- current dateframe
- reference frame from which attitude is computed- Returns:
- rotation on the specified date and position-velocity state
-
-