Class Ellipsoid

    • Constructor Detail

      • 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 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 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