public interface CelestialBody extends PVCoordinatesProvider
CelestialBodyFactory
,
IAUPole
Modifier and Type | Method and Description |
---|---|
CelestialBodyFrame |
getEME2000()
Get an EME2000, body centered frame.
|
CelestialBodyEphemeris |
getEphemeris()
Get the ephemeris of the body.
|
double |
getGM()
Get the central attraction coefficient of the body.
|
GravityModel |
getGravityModel()
Get the gravitational attraction model of the body.
|
IAUPole |
getIAUPole()
Get the IAU pole and primer meridians orientation.
|
CelestialBodyFrame |
getICRF()
Get an ICRF, body centered frame.
|
CelestialBodyFrame |
getInertialFrame(IAUPoleModelType iauPole)
Get an inertially oriented, body centered frame.
|
String |
getName()
Get the name of the body.
|
CelestialBodyFrame |
getRotatingFrame(IAUPoleModelType iauPole)
Get a body oriented, body centered frame.
|
BodyShape |
getShape()
Get the geometric shape of the body.
|
void |
setEphemeris(CelestialBodyEphemeris ephemerisIn)
Set an ephemeris to the body.
|
void |
setGM(double gmIn)
Set a central attraction coefficient to the body.
|
void |
setGravityModel(GravityModel gravityModelIn)
Set a gravitational attraction model to the body.
|
void |
setIAUPole(IAUPole iauPoleIn)
Set a IAU Pole to define the body frames.
|
void |
setShape(BodyShape shapeIn)
Set a geometric shape to the body.
|
String |
toString()
Returns a string representation of the body and its attributes.
|
getNativeFrame, getPVCoordinates
CelestialBodyFrame getICRF() throws PatriusException
The frame is always bound to the body center, and its axes have a fixed orientation with respect to other inertial frames.
PatriusException
- if frame cannot be retrieved#getRotatingFrame(IAUPoleModelType.TRUE)
CelestialBodyFrame getEME2000() throws PatriusException
The frame is always bound to the body center, and its axes are colinear to Earth EME2000 frame.
PatriusException
- if frame cannot be retrievedCelestialBodyFrame getInertialFrame(IAUPoleModelType iauPole) throws PatriusException
Warning: Inertiality of such frame depends on its definition and on its use: if related IAUPole
includes strong precession/nutation effect and temporal horizon of use is long, frame may not be considered
inertial. As a rule of thumb, precession/nutation effects of Earth frames such as CIRF/MOD are considered small
enough on a horizon of a day to consider them pseudo-inertial. Also frames based on
IAUPoleModelType.CONSTANT
will be more inertial than IAUPoleModelType.MEAN
and than
IAUPoleModelType.TRUE
. Similarly, models including IAUPoleFunction.IAUTimeDependency.DAYS
with high values will
tend to be less inertial than models including IAUPoleFunction.IAUTimeDependency.CENTURIES
with high values. Definition
of sufficiently inertial precession/nutation effects remains on the user responsibility depending on the frame
usage.
iauPole
- the type of IAUPole used for the framePatriusException
- if frame cannot be retrievedCelestialBodyFrame getRotatingFrame(IAUPoleModelType iauPole) throws PatriusException
iauPole
- the type of IAUPole used for the framePatriusException
- if frame cannot be retrievedBodyShape getShape()
void setShape(BodyShape shapeIn)
shapeIn
- the shape of the bodyString getName()
double getGM()
Warning: attraction model should not be null (it is not null by default)/
void setGM(double gmIn)
gmIn
- the central attraction coefficient
(m3/s2)IAUPole getIAUPole()
void setIAUPole(IAUPole iauPoleIn)
iauPoleIn
- the IAU poleGravityModel getGravityModel()
void setGravityModel(GravityModel gravityModelIn)
gravityModelIn
- the gravitational attraction modelCelestialBodyEphemeris getEphemeris()
void setEphemeris(CelestialBodyEphemeris ephemerisIn)
ephemerisIn
- the ephemerisCopyright © 2023 CNES. All rights reserved.