Class Ellipsoid

    • Field Detail

      • subdivisions

        protected int subdivisions
    • Constructor Detail

      • Ellipsoid

        public Ellipsoid()
        Construct a default ellipsoid with centerPosition ZERO and radii all equal to one.
      • Ellipsoid

        public Ellipsoid​(Position centerPosition,
                         double northSouthRadius,
                         double verticalRadius,
                         double eastWestRadius)
        Construct an ellipsoid from a specified center position and axes lengths.
        Parameters:
        centerPosition - the ellipsoid's center position.
        northSouthRadius - the ellipsoid's north-south radius, in meters.
        verticalRadius - the ellipsoid's vertical radius, in meters.
        eastWestRadius - the ellipsoid's east-west radius, in meters.
        Throws:
        java.lang.IllegalArgumentException - if the center position is null or any of the radii are not greater than 0.
      • Ellipsoid

        public Ellipsoid​(Position centerPosition,
                         double northSouthRadius,
                         double verticalRadius,
                         double eastWestRadius,
                         Angle heading,
                         Angle tilt,
                         Angle roll)
        Construct an ellipsoid from a specified center position, axes lengths and rotation angles. All angles are specified in degrees and positive angles are counter-clockwise.
        Parameters:
        centerPosition - the ellipsoid's center position.
        northSouthRadius - the ellipsoid's north-south radius, in meters.
        verticalRadius - the ellipsoid's vertical radius, in meters.
        eastWestRadius - the ellipsoid's east-west radius, in meters.
        heading - the ellipsoid's azimuth, its rotation about its vertical axis.
        tilt - the ellipsoids pitch, its rotation about its east-west axis.
        roll - the ellipsoid's roll, its rotation about its north-south axis.
    • Method Detail

      • computeDetailThreshold

        protected double computeDetailThreshold()
        Computes a threshold value, based on the current detailHint, for use in the sufficientDetail() calculation.
        Returns:
        the detailThreshold
      • computeSubdivisions

        protected void computeSubdivisions​(DrawContext dc,
                                           RigidShape.ShapeData shapeData)
        Computes the number of subdivisions necessary to achieve the expected Level of Detail given the shape's relationship to the viewer.
        Specified by:
        computeSubdivisions in class RigidShape
        Parameters:
        dc - the current drawContext.
        shapeData - the current globe-specific shape data
      • mustRegenerateGeometry

        protected boolean mustRegenerateGeometry​(DrawContext dc)
        Description copied from class: AbstractShape
        Indicates whether this shape's renderable geometry must be recomputed, either as a result of an attribute or property change or the expiration of the geometry regeneration interval.

        A AbstractShape.AbstractShapeData must be current when this method is called.

        Overrides:
        mustRegenerateGeometry in class RigidShape
        Parameters:
        dc - the current draw context.
        Returns:
        true if this shape's geometry must be regenerated, otherwise false.
      • makeGeometry

        protected void makeGeometry​(RigidShape.ShapeData shapeData)
        Sets the Geometry mesh for this Ellipsoid, either by pulling it from the geometryCache, or by creating it anew if the appropriate geometry does not yet exist in the cache.
        Specified by:
        makeGeometry in class RigidShape
        Parameters:
        shapeData - the current shape data.
      • makeUnitSphere

        protected void makeUnitSphere​(int subdivisions,
                                      Geometry dest)
        Generates a unit sphere geometry, including the vertices, indices, normals and texture coordinates, tessellated with the specified number of divisions.
        Parameters:
        subdivisions - the number of times to subdivide the unit sphere geometry
        dest - the Geometry container to hold the computed points, etc.
      • drawGeometry

        protected void drawGeometry​(DrawContext dc,
                                    int mode,
                                    int count,
                                    int type,
                                    java.nio.Buffer elementBuffer,
                                    RigidShape.ShapeData shapeData,
                                    int face)
        Renders the Ellipsoid, using data from the provided buffer and the given parameters.
        Specified by:
        drawGeometry in class RigidShape
        Parameters:
        dc - the current draw context
        mode - the render mode
        count - the number of elements to be drawn
        type - the data type of the elements to be drawn
        elementBuffer - the buffer containing the list of elements to be drawn
        shapeData - this shape's current globe-specific shape data
        face - the shape face currently being drawn
      • makeEllipsoid

        protected void makeEllipsoid​(double a,
                                     double b,
                                     double c,
                                     int subdivisions,
                                     Geometry dest)
        Generates ellipsoidal geometry, including the vertices, indices, normals and texture coordinates, tessellated with the specified number of divisions.
        Parameters:
        a - the Ellipsoid radius along the east-west axis
        b - the Ellipsoid radius along the vertical axis
        c - the Ellipsoid radius along the north-south axis
        subdivisions - the number of times to subdivide the unit sphere geometry
        dest - the Geometry container to hold the computed points, etc.
      • doExportAsKML

        protected void doExportAsKML​(javax.xml.stream.XMLStreamWriter xmlWriter)
                              throws java.io.IOException,
                                     javax.xml.stream.XMLStreamException
        Description copied from class: AbstractShape
        Exports shape-specific fields.
        Specified by:
        doExportAsKML in class AbstractShape
        Parameters:
        xmlWriter - the export writer to write to.
        Throws:
        java.io.IOException - if an IO error occurs while writing to the output destination.
        javax.xml.stream.XMLStreamException - if an exception occurs converting this shape's fields to XML.