public class ExtendedOneAxisEllipsoid extends Object implements EllipsoidBodyShape
Implementation of the EllipsoidBodyShape interface : this an extended spheroid model to represent celestial bodies shapes.
EllipsoidBodyShape
,
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.
|
double |
getApparentRadius(Vector3D position,
Frame frame,
AbsoluteDate date,
PVCoordinatesProvider occultedBody)
Calculate the apparent radius.
|
Frame |
getBodyFrame()
Get body frame related to body shape.
|
double |
getConjugateRadius()
Return conjugate radius (minor semi axis)
|
IEllipsoid |
getEllipsoid()
Return the
spheroid object |
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()
getBodyFrame
in interface BodyShape
public GeodeticPoint getIntersectionPoint(Line line, Vector3D close, Frame frame, AbsoluteDate date) throws PatriusException
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
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)
public Vector3D[] getIntersectionPoints(Line line, Frame frame, AbsoluteDate date) throws PatriusException
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
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
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()
getTransverseRadius
in interface EllipsoidBodyShape
public double getConjugateRadius()
getConjugateRadius
in interface EllipsoidBodyShape
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()
getEquatorialRadius
in interface EllipsoidBodyShape
public double getFlattening()
getFlattening
in interface EllipsoidBodyShape
public Vector3D getNormal(Vector3D point)
getNormal
in interface EllipsoidBodyShape
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 setpublic double getApparentRadius(Vector3D position, Frame frame, AbsoluteDate date, PVCoordinatesProvider occultedBody) throws PatriusException
getApparentRadius
in interface EllipsoidBodyShape
position
- spacecraft positionframe
- frame in which position is expresseddate
- date of positionoccultedBody
- body occulted by thisPatriusException
- if PVCoordinatesProvider
computation failspublic IEllipsoid getEllipsoid()
spheroid
objectgetEllipsoid
in interface EllipsoidBodyShape
Copyright © 2019 CNES. All rights reserved.