public class ExtendedOneAxisEllipsoid extends Object implements GeometricBodyShape
implementation of the PatriusBodyShape interface : this an extended spheroid model to represent celestial bodies shapes.
GeometricBodyShape
,
Serialized FormConstructor and Description |
---|
ExtendedOneAxisEllipsoid(double ae,
double f,
Frame bodyFrame,
String name)
Constructor for the body spheroid.
|
Modifier and Type | Method and Description |
---|---|
double |
distanceTo(Line line,
Frame frame,
AbsoluteDate date)
Computes the distance to a line.
|
Frame |
getBodyFrame()
Get body frame related to body shape.
|
double |
getConjugateRadius()
Return conjugate radius (minor semi axis)
|
double |
getEquatorialRadius()
Get the equatorial radius of the body.
|
double |
getFlattening()
Return the flattening
|
GeodeticPoint |
getIntersectionPoint(Line line,
Vector3D close,
Frame frame,
AbsoluteDate date)
Get the intersection point of a line with the surface of the body.
|
Vector3D[] |
getIntersectionPoints(Line line,
Frame frame,
AbsoluteDate date)
Compute the intersection points with a line.
|
double |
getLocalRadius(Vector3D position,
Frame frame,
AbsoluteDate date,
PVCoordinatesProvider occultedBody)
Calculate the apparent radius.
|
String |
getName() |
Vector3D |
getNormal(Vector3D point)
Return the normal vector to the surface from the ellipsoid
|
PVCoordinates |
getPVCoordinates(AbsoluteDate date,
Frame frame)
Get the
PVCoordinates of the body in the selected frame. |
double |
getTransverseRadius()
Return transverse radius (major semi axis)
|
void |
setConvergenceThreshold(double newThreshold)
Setter for Newton algorithm threshold used to compute distance to the ellipsoid using method
distanceTo(Line, Frame, AbsoluteDate) . |
Vector3D |
transform(GeodeticPoint point)
Transform a surface-relative point to a cartesian point.
|
GeodeticPoint |
transform(Vector3D point,
Frame frame,
AbsoluteDate date)
Transform a cartesian point to a surface-relative point.
|
public Frame getBodyFrame()
BodyShape
getBodyFrame
in interface BodyShape
public GeodeticPoint getIntersectionPoint(Line line, Vector3D close, Frame frame, AbsoluteDate date) throws PatriusException
BodyShape
A line may have several intersection points with a closed surface (we consider the one point case as a degenerated two points case). The close parameter is used to select which of these points should be returned. The selected point is the one that is closest to the close point.
getIntersectionPoint
in interface BodyShape
line
- test line (may intersect the body or not)close
- point used for intersections selectionframe
- frame in which line is expresseddate
- date of the line in given framePatriusException
- if line cannot be converted to body framepublic GeodeticPoint transform(Vector3D point, Frame frame, AbsoluteDate date) throws PatriusException
BodyShape
transform
in interface BodyShape
point
- cartesian pointframe
- frame in which cartesian point is expresseddate
- date of the computation (used for frames conversions)PatriusException
- if point cannot be converted to body framepublic Vector3D transform(GeodeticPoint point)
BodyShape
public Vector3D[] getIntersectionPoints(Line line, Frame frame, AbsoluteDate date) throws PatriusException
GeometricBodyShape
getIntersectionPoints
in interface GeometricBodyShape
line
- the lineframe
- in which line is expresseddate
- date of the line in given framePatriusException
- if line cannot be converted to body framepublic double distanceTo(Line line, Frame frame, AbsoluteDate date) throws PatriusException
GeometricBodyShape
distanceTo
in interface GeometricBodyShape
line
- the lineframe
- in which line is expresseddate
- date of the line in given framePatriusException
- if line cannot be converted to body framepublic String getName()
getName
in interface GeometricBodyShape
public PVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame) throws PatriusException
PVCoordinatesProvider
PVCoordinates
of the body in the selected frame.getPVCoordinates
in interface PVCoordinatesProvider
date
- current dateframe
- the frame where to define the positionPatriusException
- if position cannot be computed in given framepublic double getTransverseRadius()
public double getConjugateRadius()
public double getLocalRadius(Vector3D position, Frame frame, AbsoluteDate date, PVCoordinatesProvider occultedBody) throws PatriusException
getLocalRadius
in interface GeometricBodyShape
position
- spacecraft positionframe
- frame in which position is expresseddate
- date of positionoccultedBody
- body occulted by thisPatriusException
- if PVCoordinatesProvider
computation failspublic double getEquatorialRadius()
public double getFlattening()
public Vector3D getNormal(Vector3D point)
point
- Point as a Vector3D in local basispublic void setConvergenceThreshold(double newThreshold)
distanceTo(Line, Frame, AbsoluteDate)
.
Method distanceTo(Line, Frame, AbsoluteDate)
is used in particular in SensorModel.
Default value for this threshold is 1E-11.newThreshold
- new threshold to setCopyright © 2019 CNES. All Rights Reserved.