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 double
getA()
Get the length of the first semi-axis.double
getB()
Get the length of the second semi-axis.double
getC()
Get the length of the third semi-axis.Frame
getFrame()
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.Ellipse
getPlaneSection(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.boolean
isInside(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.Vector3D
pointOnLimb(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
-
-