Class AbstractViewport

  • All Implemented Interfaces:
    IViewport
    Direct Known Subclasses:
    ViewportJ2D

    public abstract class AbstractViewport
    extends java.lang.Object
    implements IViewport
    • Field Detail

      • spacecontroller

        protected ISpaceController spacecontroller
        The Space Controller
      • inversionFlag_

        protected IVector2 inversionFlag_
        Axis inversion flag
      • canvas_

        protected java.awt.Canvas canvas_
        Canvas for graphical output.
      • bgColor_

        protected java.awt.Color bgColor_
        The background color.
      • position_

        protected IVector2 position_
        Virtual Viewport position.
      • pixPosition_

        protected IVector2 pixPosition_
        Pixel-corrected viewport position.
      • objShiftX_

        protected float objShiftX_
        Object shift x-coordinate.
      • objShiftY_

        protected float objShiftY_
        Object shift y-coordinate.
      • preserveAR_

        protected boolean preserveAR_
        Flag aspect ratio preservation.
      • size_

        protected Vector2Double size_
        Size of the viewport without padding.
      • areaSize_

        protected Vector2Double areaSize_
        Maximum displayable area
      • paddedSize_

        protected Vector2Double paddedSize_
        Real size of the viewport including padding.
      • drawObjects_

        protected java.util.Set drawObjects_
        Known drawable Objects.
      • objectLayers_

        protected java.util.SortedSet objectLayers_
        Registered object layers.
      • objectList_

        protected java.util.List objectList_
        List of objects that should be drawn.
      • preLayers_

        protected Layer[] preLayers_
        Layers applied before drawable rendering
      • postLayers_

        protected Layer[] postLayers_
        Layers applied after drawable rendering
      • perspective

        protected IPerspective perspective
        IPropertyObject holding properties for layers.
      • rendering

        protected volatile boolean rendering
        Flag to indicate that rendering is in progress.
    • Constructor Detail

      • AbstractViewport

        public AbstractViewport​(IPerspective perspective)
    • Method Detail

      • setBackground

        public void setBackground​(java.awt.Color bgColor)
        Sets the background color.
        Specified by:
        setBackground in interface IViewport
        Parameters:
        bgColor - the background color
      • setObjectList

        public void setObjectList​(java.util.List objectList)
        Sets the current objects to draw.
        Specified by:
        setObjectList in interface IViewport
        Parameters:
        objectList - objects that should be drawn
      • getCanvas

        public java.awt.Canvas getCanvas()
        Returns the canvas that is used for displaying the objects.
        Specified by:
        getCanvas in interface IViewport
      • setPreLayers

        public void setPreLayers​(Layer[] layers)
        Sets the pre-layers for the viewport.
        Specified by:
        setPreLayers in interface IViewport
        Parameters:
        layers - the pre-layers
      • setPostLayers

        public void setPostLayers​(Layer[] layers)
        Sets the post-layers for the viewport.
        Specified by:
        setPostLayers in interface IViewport
        Parameters:
        layers - the post-layers
      • getSize

        public IVector2 getSize()
        Gets the size of the display area.
        Specified by:
        getSize in interface IViewport
        Returns:
        size of the display area, may be padded to preserve aspect ratio
      • setSize

        public void setSize​(IVector2 size)
        Sets the size of the display area.
        Specified by:
        setSize in interface IViewport
        Parameters:
        size - size of the display area, may be padded to preserve aspect ratio
      • getAreaSize

        public IVector2 getAreaSize()
        Gets the maximum displayable size.
        Specified by:
        getAreaSize in interface IViewport
        Returns:
        maximum area size.
      • setAreaSize

        public void setAreaSize​(IVector2 areaSize)
        Sets the maximum displayable size.
        Specified by:
        setAreaSize in interface IViewport
        Parameters:
        areaSize - maximum area size.
      • getPaddedSize

        public IVector2 getPaddedSize()
        Returns the padded size
        Returns:
        padded size
      • getClippingBox

        public java.awt.Rectangle getClippingBox()
        Returns the clipping box.
        Returns:
        clipping box
      • getPixelSize

        public IVector2 getPixelSize()
        Returns the size of a pixel.
      • getCanvasSize

        public IVector2 getCanvasSize()
        Returns the size of the canvas as a vector.
        Returns:
        size of the canvas in pixel
      • refreshCanvasSize

        public void refreshCanvasSize()
        Refreshes the size of the canvas.
        Specified by:
        refreshCanvasSize in interface IViewport
      • setPosition

        public void setPosition​(IVector2 pos)
        Sets the position of the viewport.
        Specified by:
        setPosition in interface IViewport
      • setPreserveAspectRation

        public void setPreserveAspectRation​(boolean preserveAR)
        Description copied from interface: IViewport
        Sets whether the viewport should preserve the aspect ratio of the size by padding.
        Specified by:
        setPreserveAspectRation in interface IViewport
        Parameters:
        preserveAR - true to preserve aspect ratio, false otherwise
      • getInvertX

        public boolean getInvertX()
        Returns true if the x-axis is inverted (right-left instead of left-right).
        Specified by:
        getInvertX in interface IViewport
        Returns:
        true, if the x-axis is inverted
      • getInvertY

        public boolean getInvertY()
        Returns true if the y-axis is inverted (top-down instead of bottom-up).
        Specified by:
        getInvertY in interface IViewport
        Returns:
        true, if the y-axis is inverted
      • setInvertX

        public void setInvertX​(boolean b)
        If set to true, inverts the x-axis (right-left instead of left-right).
        Specified by:
        setInvertX in interface IViewport
        Parameters:
        b - if true, inverts the x-axis
      • setInvertY

        public void setInvertY​(boolean b)
        If set to true, inverts the y-axis (top-down instead of bottom-up).
        Specified by:
        setInvertY in interface IViewport
        Parameters:
        b - if true, inverts the y-axis
      • getObjectShift

        public IVector2 getObjectShift()
        Gets the shift of all objects.
      • setObjectShift

        public void setObjectShift​(IVector2 objectShift)
        Sets the shift of all objects.
        Specified by:
        setObjectShift in interface IViewport
      • setZoomLimit

        public void setZoomLimit​(double zoomlimit)
        Sets the maximum zoom.
        Specified by:
        setZoomLimit in interface IViewport
        Parameters:
        zoomlimit - the zoom limit
      • isShowing

        public boolean isShowing()
        Checks if this IViewport is showing on screen.
        Specified by:
        isShowing in interface IViewport
        Returns:
        true if the IViewport is showing, false otherwise
      • getWorldCoordinates

        public IVector2 getWorldCoordinates​(int pixelX,
                                            int pixelY)
        Converts pixel coordinates into world coordinates
        Specified by:
        getWorldCoordinates in interface IViewport
        Parameters:
        pixelX - pixel x-coordinate
        pixelY - pixel y-coordinate
        Returns:
        world coordinates
      • getSpaceController

        public void getSpaceController​(ISpaceController spacecontroller)