Class Cone

    • Field Detail

      • faceCount

        protected int faceCount
      • subdivisions

        protected int subdivisions
    • Constructor Detail

      • Cone

        public Cone()
        Construct a cone with default parameters
      • Cone

        public Cone​(Position centerPosition,
                    double height,
                    double radius)
        Constructs a Cone from a specified center position, height and radius.
        Parameters:
        centerPosition - the Cone's center position.
        height - the Cone's height, in meters.
        radius - the radius of the Cone's base, in meters.
        Throws:
        java.lang.IllegalArgumentException - if the center position is null or any of the radii are not greater than 0.
      • Cone

        public Cone​(Position centerPosition,
                    double northSouthRadius,
                    double verticalRadius,
                    double eastWestRadius)
        Constructs a cone from a specified center position and axes lengths.
        Parameters:
        centerPosition - the cone's center position.
        northSouthRadius - the cone's north-south radius, in meters.
        verticalRadius - the cone's vertical radius, in meters.
        eastWestRadius - the cone'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.
      • Cone

        public Cone​(Position centerPosition,
                    double northSouthRadius,
                    double verticalRadius,
                    double eastWestRadius,
                    Angle heading,
                    Angle tilt,
                    Angle roll)
        Constructs a cone 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 cone's center position.
        northSouthRadius - the cone's north-south radius, in meters.
        verticalRadius - the cone's vertical radius, in meters.
        eastWestRadius - the cone's east-west radius, in meters.
        heading - the cone's azimuth, its rotation about its vertical axis.
        tilt - the cone pitch, its rotation about its east-west axis.
        roll - the cone's roll, its rotation about its north-south axis.
    • Method Detail

      • getFaceCount

        public int getFaceCount()
        Description copied from class: RigidShape
        Returns the number of separate faces that comprise this shape.
        Overrides:
        getFaceCount in class RigidShape
        Returns:
        number of faces
      • 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 cone, 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 - this shape's current shape data.
      • makeUnitCone

        protected void makeUnitCone​(int subdivisions,
                                    java.util.List<Geometry> meshes)
        Generates a unit cone 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 cone geometry
        meshes - the Geometry list to hold the computed points, etc. for all Geometries
      • drawGeometry

        protected void drawGeometry​(DrawContext dc,
                                    int mode,
                                    int count,
                                    int type,
                                    java.nio.Buffer elementBuffer,
                                    RigidShape.ShapeData shapeData,
                                    int face)
        Renders the cone, 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 index of the shape face to render
      • 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.