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.Ellipse
getPlaneSection(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.boolean
isInside(org.hipparchus.geometry.euclidean.threed.Vector3D point)
Check if a point is inside the ellipsoid.org.hipparchus.geometry.euclidean.threed.Vector3D
pointOnLimb(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.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:
org.hipparchus.exception.MathRuntimeException
- if ellipsoid center, observer and outside points are aligned- Since:
- 7.1
-
-