Interface Viewport

All Superinterfaces:
Cloneable
All Known Implementing Classes:
DefaultViewport

public interface Viewport extends Cloneable
A Viewport allows to view a certain part of graphical data representations given in coordinates defined in some model coordinate system. The Viewport assumes that there is an affine similiarity transformation (translation, rotation, scaling) from the view to the model coordiate system. Shearing transformations are not supported, but the coordinate system's Y-axes may point in different directions.

The view coordinate system is a cartesian coordinate system with the X-axis pointing to the right and the Y-axis pointing downwards.

The model coordinate system is assumed to be cartesian coordinate system with the X-axis pointing to the right and the Y-axis pointing either upwards or downwards. See method isModelYAxisDown().

  • Method Details

    • isModelYAxisDown

      boolean isModelYAxisDown()
      Returns:
      If true, the model coordinate's Y-axis points downwards. Returns false by default.
    • setModelYAxisDown

      void setModelYAxisDown(boolean modelYAxisDown)
      Parameters:
      modelYAxisDown - If true, the model coordinate's Y-axis points downwards.
    • getViewBounds

      Rectangle getViewBounds()
      Returns:
      The bounds in view coordinates.
    • setViewBounds

      void setViewBounds(Rectangle bounds)
      Parameters:
      bounds - The bounds in view coordinates.
    • getViewToModelTransform

      AffineTransform getViewToModelTransform()
      Returns:
      The affine transformation from view to model coordinates.
    • getModelToViewTransform

      AffineTransform getModelToViewTransform()
      Returns:
      The affine transformation from model to view coordinates.
    • getOffsetX

      double getOffsetX()
      Returns:
      The viewport's absolute X-offset in model coordinates.
    • getOffsetY

      double getOffsetY()
      Returns:
      The viewport's absolute Y-offset in model coordinates.
    • setOffset

      void setOffset(double offsetX, double offsetY)
      Sets the viewport's absolute offset in model coordinates.
      Parameters:
      offsetX - The X-offset in model coordinates.
      offsetY - The Y-offset in model coordinates.
    • moveViewDelta

      void moveViewDelta(double viewDeltaX, double viewDeltaY)
      Moves the model CS by translating it into the opposite direction of the given vector in view coordinates.
      Parameters:
      viewDeltaX - the X delta in view coordinates
      viewDeltaY - the Y delta in view coordinates
    • getZoomFactor

      double getZoomFactor()
      Gets the zoom factor. The zoom factor is equal to the number of model units per view unit.
      Returns:
      The zoom factor.
    • setZoomFactor

      void setZoomFactor(double zoomFactor)
      Sets the zoom factor relative to the viewport bound's center point.
      Parameters:
      zoomFactor - The new zoom factor, must be greater than zero.
      Throws:
      IllegalArgumentException - if zoomFactor is less than or equal to zero
      See Also:
    • setZoomFactor

      void setZoomFactor(double zoomFactor, double modelCenterX, double modelCenterY)
      Zooms to the given point given in model coordinates.
      Parameters:
      zoomFactor - The new zoom factor, must be greater than zero.
      modelCenterX - New X of the view's center point in model coordinates.
      modelCenterY - New Y of the view's center point in model coordinates.
      Throws:
      IllegalArgumentException - if zoomFactor is less than or equal to zero
    • zoom

      void zoom(Rectangle2D modelArea)
      Zooms to the given area given in model coordinates.
      Parameters:
      modelArea - the area in model coordinates
    • getOrientation

      double getOrientation()
      Returns:
      The rotation angle in radians.
    • setOrientation

      void setOrientation(double orientation)
      Sets the orientation angle relative to the viewport bound's center point.
      Parameters:
      orientation - the new orientation angle in radians
    • setTransform

      void setTransform(Viewport otherViewport)
      Modifies this viewport so that it matches the given one.
      Parameters:
      otherViewport - The view port to synchronize with.
    • addListener

      void addListener(ViewportListener listener)
      Adds a change listener to this viewport.
      Parameters:
      listener - The listener.
    • removeListener

      void removeListener(ViewportListener listener)
      Removes a change listener from this viewport.
      Parameters:
      listener - The listener.
    • getListeners

      ViewportListener[] getListeners()
      Gets all listeners added to this viewport.
      Returns:
      The listeners.
    • clone

      Viewport clone()
      Creates a clone of this viewport. The clone is a deep copy of this viewport but doesn't copy its listeners.
      Returns:
      The clone.