uk.ac.starlink.ttools.plot2.geom
Class SinProjection

java.lang.Object
  extended by uk.ac.starlink.ttools.plot2.geom.SkyviewProjection
      extended by uk.ac.starlink.ttools.plot2.geom.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

Field Summary
static SinProjection INSTANCE
          Singleton instance.
 
Fields inherited from class uk.ac.starlink.ttools.plot2.geom.SkyviewProjection
AIT, CAR1, TAN
 
Method Summary
 SkyAspect createAspect(boolean reflect, double[] r3, double radiusRad, Range[] vxyzRanges)
          Creates a SkyAspect from configuration information.
 double[] cursorRotate(double[] rot0, Point2D.Double pos0, Point2D.Double pos1)
          Returns null - rotation not implemented.
 String getProjectionDescription()
          Returns a short description of the projection.
 String getProjectionName()
          Returns the projection name.
 boolean project(double rx, double ry, double rz, Point2D.Double pos)
          Overridden for slight efficiency gain.
 double[] projRotate(double[] rot0, Point2D.Double pos0, 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 uk.ac.starlink.ttools.plot2.geom.SkyviewProjection
createProjection, getProjectionShape, getSkyviewProjecter, unproject
 
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

getProjectionName

public String getProjectionName()
Description copied from interface: Projection
Returns the projection name.

Specified by:
getProjectionName in interface Projection
Overrides:
getProjectionName in class SkyviewProjection
Returns:
user-directed projection name

getProjectionDescription

public String getProjectionDescription()
Description copied from interface: Projection
Returns a short description of the projection. return projection description

Specified by:
getProjectionDescription in interface Projection
Overrides:
getProjectionDescription in class SkyviewProjection

project

public boolean project(double rx,
                       double ry,
                       double rz,
                       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,
                             Point2D.Double pos0,
                             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,
                           Point2D.Double pos0,
                           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

useRanges

public boolean useRanges(boolean reflect,
                         double[] r3,
                         double radiusRad)
Description copied from class: SkyviewProjection
Returns false - ranging not used.

Specified by:
useRanges in interface Projection
Overrides:
useRanges in class SkyviewProjection
Parameters:
reflect - whether requested aspect will be reflected
r3 - central position of field of view (may be null)
radiusRad - radius of field of view (may be NaN)
Returns:
true if ranges would be useful given the other arguments
See Also:
SurfaceFactory.readRanges(P, uk.ac.starlink.ttools.plot2.PlotLayer[], uk.ac.starlink.ttools.plot2.data.DataStore)

createAspect

public SkyAspect createAspect(boolean reflect,
                              double[] r3,
                              double radiusRad,
                              Range[] vxyzRanges)
Description copied from interface: Projection
Creates a SkyAspect from configuration information. Either the supplied field of view or data ranges may be used, or neither.

Specified by:
createAspect in interface Projection
Overrides:
createAspect in class SkyviewProjection
Parameters:
reflect - whether requested aspect will be reflected
r3 - central position of field of view (may be null)
radiusRad - radius of field of view (may be NaN)
vxyzRanges - definite ranges for normalised X,Y,Z coordinates acquired from data
Returns:
new sky aspect
See Also:
SurfaceFactory.createAspect(P, uk.ac.starlink.ttools.plot2.config.ConfigMap, uk.ac.starlink.ttools.plot.Range[])

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


Copyright © 2015 Central Laboratory of the Research Councils. All Rights Reserved.