Class Ellipsoid

java.lang.Object
org.orekit.bodies.Ellipsoid
Direct Known Subclasses:
OneAxisEllipsoid

public class Ellipsoid extends Object
Modeling of a general three-axes ellipsoid.
Since:
7.0
Author:
Luc Maisonobe
  • Constructor Details

    • Ellipsoid

      public Ellipsoid(Frame frame, double a, double b, double c)
      Simple constructor.
      Parameters:
      frame - at the ellipsoid center, aligned with principal axes
      a - first semi-axis length
      b - second semi-axis length
      c - third semi-axis length
  • Method Details

    • 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 frame
      planeNormal - 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 frame
      planeNormal - 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 frame
      outside - 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 frame
      outside - 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