Class MinimumSafeDistanceZones

  • All Implemented Interfaces:
    AVList, Draggable, Movable, Highlightable, PreRenderable, Renderable, MilStd2525TacticalGraphic, TacticalGraphic

    public class MinimumSafeDistanceZones
    extends AbstractMilStd2525TacticalGraphic
    implements PreRenderable
    Implementation of the Minimum Safe Distance Zone graphic (2.X.3.4.1). This graphic requires four control points. The first point defines the center of the circle, and the other three define the radius of the rings. See the graphic template in MIL-STD-2525C, pg. 613. Note that MIL-STD-2525C numbers the radius points as points one, two, and three, but does not assign a number to the center point. This implementation requires the center point to be the first point in the list.
    • Field Detail

      • DEFAULT_LABEL_ANGLE

        public static final Angle DEFAULT_LABEL_ANGLE
        Default angle used to position the graphic's labels. This default angle (60 degrees) is chosen to match the graphic template defined by MIL-STD-2525C, pg. 613.
      • positions

        protected java.lang.Iterable<? extends Position> positions
        Position of the center of the range fan.
      • rings

        protected java.util.List<SurfaceCircle> rings
        Rings that make up the range fan.
      • labelAngle

        protected Angle labelAngle
        Position the labels along a line radiating out from the center of the circle at this angle from North.
    • Constructor Detail

      • MinimumSafeDistanceZones

        public MinimumSafeDistanceZones​(java.lang.String sidc)
        Create the graphic.
        Parameters:
        sidc - Symbol code the identifies the graphic.
    • Method Detail

      • getSupportedGraphics

        public static java.util.List<java.lang.String> getSupportedGraphics()
        Indicates the graphics supported by this class.
        Returns:
        List of masked SIDC strings that identify graphics that this class supports.
      • getLabelAngle

        public Angle getLabelAngle()
        Indicates the angle used to position this graphic's labels. The labels are positioned along a line radiating out from the center of the circle, and at this bearing from North.
        Returns:
        The angle used to position this graphic's labels.
      • setLabelAngle

        public void setLabelAngle​(Angle angle)
        Specifies the angle used to position this graphic's labels. The labels are positioned along a line radiating out from the center of the circle, and at this bearing from North.
        Parameters:
        angle - The angle used to position this graphic's labels.
      • getPosition

        public Position getPosition()
        Indicates the center position of the range ran.
        Returns:
        The range fan center position.
      • setPosition

        public void setPosition​(Position position)
        Specifies the center position of the range ran.
        Parameters:
        position - The new center position.
      • setPositions

        public void setPositions​(java.lang.Iterable<? extends Position> positions)
        Specifies the positions of the control points that place and orient the graphic.
        Specified by:
        setPositions in interface TacticalGraphic
        Parameters:
        positions - Control points. This graphic uses only one control point, which determines the center of the circle.
      • getPositions

        public java.lang.Iterable<? extends Position> getPositions()
        Indicates the positions of the control points that place and orient the graphic.
        Specified by:
        getPositions in interface TacticalGraphic
        Returns:
        positions that orient the graphic. How many positions are returned depends on the type of graphic. Some graphics require only a single position, others require many.
      • getReferencePosition

        public Position getReferencePosition()
        A position associated with the object that indicates its aggregate geographic position. The chosen position varies among implementers of this interface. For objects defined by a list of positions, the reference position is typically the first position in the list. For symmetric objects the reference position is often the center of the object. In many cases the object's reference position may be explicitly specified by the application.
        Specified by:
        getReferencePosition in interface Movable
        Returns:
        the object's reference position, or null if no reference position is available.
      • applyDelegateOwner

        protected void applyDelegateOwner​(java.lang.Object owner)
        Invoked each frame to apply to the current delegate owner to all renderable objects used to draw the graphic. This base class will apply the delegate owner to Label objects. Subclasses must implement this method to apply the delegate owner to any Renderables that they will draw in order to render the graphic.
        Specified by:
        applyDelegateOwner in class AbstractTacticalGraphic
        Parameters:
        owner - Current delegate owner.
      • createShapes

        protected void createShapes​(DrawContext dc)
        Create the circles used to draw this graphic.
        Parameters:
        dc - Current draw context.
      • createCircle

        protected SurfaceCircle createCircle()
        Create a circle for a range ring.
        Returns:
        New circle.