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.EllipsegetPlaneSection(org.hipparchus.geometry.euclidean.threed.Vector3D planePoint, org.hipparchus.geometry.euclidean.threed.Vector3D planeNormal)Compute the 2D ellipse at the intersection of the 3D ellipsoid and a plane.booleanisInside(org.hipparchus.geometry.euclidean.threed.Vector3D point)Check if a point is inside the ellipsoid.org.hipparchus.geometry.euclidean.threed.Vector3DpointOnLimb(org.hipparchus.geometry.euclidean.threed.Vector3D observer, org.hipparchus.geometry.euclidean.threed.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(org.hipparchus.geometry.euclidean.threed.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
-
getPlaneSection
public Ellipse getPlaneSection(org.hipparchus.geometry.euclidean.threed.Vector3D planePoint, org.hipparchus.geometry.euclidean.threed.Vector3D planeNormal) throws org.hipparchus.exception.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:
org.hipparchus.exception.MathRuntimeException- if the norm of planeNormal is null
-
pointOnLimb
public org.hipparchus.geometry.euclidean.threed.Vector3D pointOnLimb(org.hipparchus.geometry.euclidean.threed.Vector3D observer, org.hipparchus.geometry.euclidean.threed.Vector3D outside) throws org.hipparchus.exception.MathRuntimeExceptionFind 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:
org.hipparchus.exception.MathRuntimeException- if ellipsoid center, observer and outside points are aligned- Since:
- 7.1
-
-