Package org.orekit.bodies
Class Ellipsoid
- java.lang.Object
-
- org.orekit.bodies.Ellipsoid
-
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
OneAxisEllipsoid
public class Ellipsoid extends Object implements Serializable
Modeling of a general three-axes ellipsoid.- Since:
- 7.0
- Author:
- Luc Maisonobe
- See Also:
- Serialized Form
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doublegetA()Get the length of the first semi-axis.doublegetB()Get the length of the second semi-axis.doublegetC()Get the length of the third semi-axis.FramegetFrame()Get the ellipsoid central frame.<T extends CalculusFieldElement<T>>
FieldEllipse<T>getPlaneSection(FieldVector3D<T> planePoint, FieldVector3D<T> planeNormal)Compute the 2D ellipse at the intersection of the 3D ellipsoid and a plane.EllipsegetPlaneSection(Vector3D planePoint, Vector3D planeNormal)Compute the 2D ellipse at the intersection of the 3D ellipsoid and a plane.<T extends CalculusFieldElement<T>>
booleanisInside(FieldVector3D<T> point)Check if a point is inside the ellipsoid.booleanisInside(Vector3D point)Check if a point is inside the ellipsoid.<T extends CalculusFieldElement<T>>
FieldVector3D<T>pointOnLimb(FieldVector3D<T> observer, FieldVector3D<T> outside)Find a point on ellipsoid limb, as seen by an external observer.Vector3DpointOnLimb(Vector3D observer, Vector3D outside)Find a point on ellipsoid limb, as seen by an external observer.
-
-
-
Constructor Detail
-
Ellipsoid
public Ellipsoid(Frame frame, double a, double b, double c)
Simple constructor.- Parameters:
frame- at the ellipsoid center, aligned with principal axesa- first semi-axis lengthb- second semi-axis lengthc- third semi-axis length
-
-
Method Detail
-
getA
public double getA()
Get the length of the first semi-axis.- Returns:
- length of the first semi-axis (m)
-
getB
public double getB()
Get the length of the second semi-axis.- Returns:
- length of the second semi-axis (m)
-
getC
public double getC()
Get the length of the third semi-axis.- Returns:
- length of the third semi-axis (m)
-
getFrame
public Frame getFrame()
Get the ellipsoid central frame.- Returns:
- ellipsoid central frame
-
isInside
public boolean isInside(Vector3D point)
Check if a point is inside the ellipsoid.- Parameters:
point- point to check, in the ellipsoid frame- Returns:
- true if the point is inside the ellipsoid (or exactly on ellipsoid surface)
- Since:
- 7.1
-
isInside
public <T extends CalculusFieldElement<T>> boolean isInside(FieldVector3D<T> point)
Check if a point is inside the ellipsoid.- Type Parameters:
T- the type of the field elements- Parameters:
point- point to check, in the ellipsoid frame- Returns:
- true if the point is inside the ellipsoid (or exactly on ellipsoid surface)
- Since:
- 12.0
-
getPlaneSection
public Ellipse getPlaneSection(Vector3D planePoint, Vector3D planeNormal) throws MathRuntimeException
Compute the 2D ellipse at the intersection of the 3D ellipsoid and a plane.- Parameters:
planePoint- point belonging to the plane, in the ellipsoid frameplaneNormal- normal of the plane, in the ellipsoid frame- Returns:
- plane section or null if there are no intersections
- Throws:
MathRuntimeException- if the norm of planeNormal is null
-
getPlaneSection
public <T extends CalculusFieldElement<T>> FieldEllipse<T> getPlaneSection(FieldVector3D<T> planePoint, FieldVector3D<T> planeNormal) throws MathRuntimeException
Compute the 2D ellipse at the intersection of the 3D ellipsoid and a plane.- Type Parameters:
T- the type of the field elements- Parameters:
planePoint- point belonging to the plane, in the ellipsoid frameplaneNormal- normal of the plane, in the ellipsoid frame- Returns:
- plane section or null if there are no intersections
- Throws:
MathRuntimeException- if the norm of planeNormal is null- Since:
- 12.0
-
pointOnLimb
public Vector3D pointOnLimb(Vector3D observer, Vector3D outside) throws MathRuntimeException
Find a point on ellipsoid limb, as seen by an external observer.- Parameters:
observer- observer position in ellipsoid frameoutside- point outside ellipsoid in ellipsoid frame, defining the phase around limb- Returns:
- point on ellipsoid limb
- Throws:
MathRuntimeException- if ellipsoid center, observer and outside points are aligned- Since:
- 7.1
-
pointOnLimb
public <T extends CalculusFieldElement<T>> FieldVector3D<T> pointOnLimb(FieldVector3D<T> observer, FieldVector3D<T> outside) throws MathRuntimeException
Find a point on ellipsoid limb, as seen by an external observer.- Type Parameters:
T- the type of the field elements- Parameters:
observer- observer position in ellipsoid frameoutside- point outside ellipsoid in ellipsoid frame, defining the phase around limb- Returns:
- point on ellipsoid limb
- Throws:
MathRuntimeException- if ellipsoid center, observer and outside points are aligned- Since:
- 12.0
-
-