Class SinProjection

  • All Implemented Interfaces:
    Projection

    public class SinProjection
    extends SkyviewProjection
    Sine (orthographic) projection. This is the one that gives you a rotatable sphere. North always faces directly up (is aligned along the screen Y direction). This is a singleton class, see INSTANCE.
    Since:
    21 Feb 2013
    Author:
    Mark Taylor
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      SkyAspect createAspect​(boolean reflect, double[] r3, double radiusRad, Range[] vxyzRanges)
      Creates a SkyAspect from configuration information.
      double[] cursorRotate​(double[] rot0, java.awt.geom.Point2D.Double pos0, java.awt.geom.Point2D.Double pos1)
      Returns null - rotation not implemented.
      SkyFov getFov​(SkySurface surf)
      Returns the field of view represented by this aspect.
      java.lang.String getProjectionDescription()
      Returns a short description of the projection.
      java.lang.String getProjectionName()
      Returns the projection name.
      boolean project​(double rx, double ry, double rz, java.awt.geom.Point2D.Double pos)
      Overridden for slight efficiency gain.
      double[] projRotate​(double[] rot0, java.awt.geom.Point2D.Double pos0, java.awt.geom.Point2D.Double pos1)
      Returns null - rotation not implemented.
      boolean useRanges​(boolean reflect, double[] r3, double radiusRad)
      Returns false - ranging not used.
      static double[] verticalRotate​(double delta, double alpha, boolean reflect)
      Rotation matrix which results in an orientation with the viewing plane X coordinate of the north pole equal to zero.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • INSTANCE

        public static SinProjection INSTANCE
        Singleton instance.
    • Method Detail

      • project

        public boolean project​(double rx,
                               double ry,
                               double rz,
                               java.awt.geom.Point2D.Double pos)
        Overridden for slight efficiency gain.
        Specified by:
        project in interface Projection
        Overrides:
        project in class SkyviewProjection
        Parameters:
        rx - normalised 3D X coordinate
        ry - normalised 3D Y coordinate
        rz - normalised 3D Z coordinate
        pos - point object into which projected dimensionless X,Y coordinates will be written on success
        Returns:
        true if transformation succeeded
      • cursorRotate

        public double[] cursorRotate​(double[] rot0,
                                     java.awt.geom.Point2D.Double pos0,
                                     java.awt.geom.Point2D.Double pos1)
        Description copied from class: SkyviewProjection
        Returns null - rotation not implemented.
        Specified by:
        cursorRotate in interface Projection
        Overrides:
        cursorRotate in class SkyviewProjection
        Parameters:
        rot0 - initial rotation matrix
        pos0 - initial cursor position
        pos1 - destination cursor position
        Returns:
        destination rotation matrix, or null
      • projRotate

        public double[] projRotate​(double[] rot0,
                                   java.awt.geom.Point2D.Double pos0,
                                   java.awt.geom.Point2D.Double pos1)
        Description copied from class: SkyviewProjection
        Returns null - rotation not implemented.
        Specified by:
        projRotate in interface Projection
        Overrides:
        projRotate in class SkyviewProjection
        Parameters:
        rot0 - initial rotation matrix
        pos0 - initial projected position
        pos1 - destination projected position
        Returns:
        destination rotation matrix, or null
      • getFov

        public SkyFov getFov​(SkySurface surf)
        Description copied from interface: Projection
        Returns the field of view represented by this aspect. This is a best estimate, it may be approximate depending on the projection geometry. If the field of view is the default for this projection, then null should be returned. Null may also be returned if for some reason no field of view can be determined.
        Specified by:
        getFov in interface Projection
        Overrides:
        getFov in class SkyviewProjection
        Parameters:
        surf - sky surface, which must be set up using this projection
        Returns:
        field of view, or null
      • verticalRotate

        public static double[] verticalRotate​(double delta,
                                              double alpha,
                                              boolean reflect)
        Rotation matrix which results in an orientation with the viewing plane X coordinate of the north pole equal to zero. This is a rotation invariant we wish to preserve.
        Parameters:
        delta - rotation of pole from vertical (0..pi)
        alpha - rotation around pole (0..2pi)
        reflect - if true, alpha increases right to left
        Returns:
        rotation matrix