public abstract class AbstractCelestialBody extends Object implements CelestialBody
CelestialBody interface.
This abstract implementation provides basic services that can be shared by most implementations of the
CelestialBody interface. It holds the attraction coefficient and build the body-centered frames automatically
using the definitions of pole and prime meridianspecified by the IAU/IAG Working Group on Cartographic Coordinates
and Rotational Elements of the Planets and Satellites (WGCCRE).
IAUPole,
Serialized Form| Modifier and Type | Field and Description |
|---|---|
static String |
CONSTANT_ROTATING_FRAME_NAME
Constant rotating, body-centered frame name.
|
static String |
ICRF_FRAME_NAME
ICRF frame name.
|
static String |
INERTIAL_EQUATOR_FRAME_NAME
Inertially oriented, body-centered frame name.
|
static String |
MEAN_EQUATOR_FRAME_NAME
Mean equator, body-centered frame name.
|
static String |
MEAN_ROTATING_FRAME_NAME
Mean rotating, body-centered frame name.
|
static String |
TRUE_EQUATOR_FRAME_NAME
True equator, body-centered frame name.
|
static String |
TRUE_ROTATING_FRAME_NAME
True rotating, body-centered frame name.
|
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractCelestialBody(Frame icrf,
String nameIn,
double gmIn,
IAUPole iauPoleIn)
Build an instance and the underlying frame.
|
protected |
AbstractCelestialBody(String nameIn,
double gmIn,
IAUPole iauPoleIn,
Frame definingFrameIn)
Build an instance and the underlying frame.
|
| Modifier and Type | Method and Description |
|---|---|
AttractionModel |
getAttractionModel()
Get the attraction model of the body.
|
Frame |
getConstantRotatingFrame()
Get a body oriented, body centered frame taking into account only constant part of IAU
pole data with respect to inertially-oriented frame.
|
double |
getGM()
Get the central attraction coefficient of the body.
|
IAUPole |
getIAUPole()
Get the IAU pole and primer meridians orientation.
|
Frame |
getICRF()
Get an ICRF, body centered frame.
|
Frame |
getInertialEquatorFrame()
Get an inertially oriented, body centered frame taking into account only constant part of IAU pole data with
respect to ICRF frame.
|
Frame |
getMeanEquatorFrame()
Get an inertially oriented, body centered frame taking into account only constant and secular part of IAU pole
data with respect to ICRF frame.
|
Frame |
getMeanRotatingFrame()
Get a body oriented, body centered frame taking into account constant and secular part of IAU
pole data with respect to mean equator frame.
|
String |
getName()
Get the name of the body.
|
abstract PVCoordinates |
getPVCoordinates(AbsoluteDate date,
Frame frame)
Get the
PVCoordinates of the body in the selected frame. |
GeometricBodyShape |
getShape()
Get the geometric shape of the body.
|
Frame |
getTrueEquatorFrame()
Get an inertially oriented, body centered frame taking into account constant, secular and harmonics part of IAU
pole data with respect to ICRF frame.
|
Frame |
getTrueRotatingFrame()
Get a body oriented, body centered frame taking into account constant, secular and harmonics part of IAU
pole data with respect to true equator frame.
|
void |
setAttractionModel(AttractionModel modelIn)
Set an attraction model to the body.
|
void |
setGM(double gmIn)
Set a central attraction coefficient to the body.
|
void |
setIAUPole(IAUPole iauPoleIn)
Set a IAU Pole to define the body frames.
|
void |
setShape(GeometricBodyShape shapeIn)
Set a geometric shape to the body.
|
String |
toString()
Returns a string representation of the body and its attributes.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetNativeFramepublic static final String ICRF_FRAME_NAME
public static final String INERTIAL_EQUATOR_FRAME_NAME
public static final String MEAN_EQUATOR_FRAME_NAME
public static final String TRUE_EQUATOR_FRAME_NAME
public static final String CONSTANT_ROTATING_FRAME_NAME
public static final String MEAN_ROTATING_FRAME_NAME
public static final String TRUE_ROTATING_FRAME_NAME
protected AbstractCelestialBody(String nameIn, double gmIn, IAUPole iauPoleIn, Frame definingFrameIn)
nameIn - name of the bodygmIn - attraction coefficient (in m3/s2)iauPoleIn - IAU pole implementationdefiningFrameIn - frame in which celestial body coordinates are definedpublic String getName()
getName in interface CelestialBodypublic Frame getICRF()
The frame is always bound to the body center, and its axes have a fixed orientation with respect to other inertial frames.
getICRF in interface CelestialBodyCelestialBody.getTrueRotatingFrame()public Frame getInertialEquatorFrame()
The frame is always bound to the body center, and its axes have a fixed orientation with respect to other inertial frames.
getInertialEquatorFrame in interface CelestialBodypublic Frame getMeanEquatorFrame()
getMeanEquatorFrame in interface CelestialBodypublic Frame getTrueEquatorFrame()
getTrueEquatorFrame in interface CelestialBodypublic Frame getConstantRotatingFrame()
The frame is always bound to the body center, and its axes have a fixed orientation with respect to the celestial body.
getConstantRotatingFrame in interface CelestialBodyCelestialBody.getInertialEquatorFrame()public Frame getMeanRotatingFrame()
The frame is always bound to the body center, and its axes have a fixed orientation with respect to the celestial body.
getMeanRotatingFrame in interface CelestialBodyCelestialBody.getMeanEquatorFrame()public Frame getTrueRotatingFrame()
The frame is always bound to the body center, and its axes have a fixed orientation with respect to the celestial body.
getTrueRotatingFrame in interface CelestialBodyCelestialBody.getInertialEquatorFrame()public double getGM()
Warning: attraction model should not be null (it is not null by default)/
getGM in interface CelestialBodypublic void setGM(double gmIn)
setGM in interface CelestialBodygmIn - the central attraction coefficient
(m3/s2)public IAUPole getIAUPole()
getIAUPole in interface CelestialBodypublic void setIAUPole(IAUPole iauPoleIn)
setIAUPole in interface CelestialBodyiauPoleIn - the IAU polepublic abstract PVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame) throws PatriusException
PVCoordinates of the body in the selected frame.getPVCoordinates in interface PVCoordinatesProviderdate - current dateframe - the frame where to define the positionPatriusException - if position cannot be computed in given framepublic AttractionModel getAttractionModel()
getAttractionModel in interface CelestialBodypublic void setAttractionModel(AttractionModel modelIn)
setAttractionModel in interface CelestialBodymodelIn - the attraction modelpublic GeometricBodyShape getShape()
getShape in interface CelestialBodypublic void setShape(GeometricBodyShape shapeIn)
setShape in interface CelestialBodyshapeIn - the shape of the bodypublic String toString()
toString in interface CelestialBodytoString in class ObjectCopyright © 2022 CNES. All rights reserved.