Class Cylinder

    • Field Detail

      • faceCount

        protected int faceCount
      • subdivisions

        protected int subdivisions
    • Constructor Detail

      • Cylinder

        public Cylinder()
        Construct a cylinder with default parameters
      • Cylinder

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

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

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

        protected void makeUnitCylinder​(int subdivisions,
                                        java.util.List<Geometry> meshes)
        Generates a unit cylinder 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 cylinder 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 cylinder, 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
      • 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.